diff --git a/config/pelion/pelion_dm_public_openapi.yaml b/config/pelion/pelion_dm_public_openapi.yaml index 300c6e804..5718a52e3 100644 --- a/config/pelion/pelion_dm_public_openapi.yaml +++ b/config/pelion/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,7 +183,8 @@ 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 @@ -56,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 @@ -88,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 @@ -125,7 +271,7 @@ definitions: required: - end_market type: object - AccountInfo: + AccountCreationResp: description: Represents an account in requests and responses. properties: address_line1: @@ -167,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 @@ -182,7 +333,8 @@ 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 @@ -202,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 @@ -241,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 @@ -293,11 +445,10 @@ definitions: limits: additionalProperties: type: string - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -407,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' @@ -417,88 +573,345 @@ definitions: example: '2018-02-14T15:24:14Z' format: date-time type: string - required: - - end_market - - etag - - id - - object - - status - - tier type: object - AccountInfoList: + AccountInfo: + description: Represents an account in requests and responses. properties: - after: - description: The entity ID to fetch after the given one. - example: 01619571f3c00242ac12000600000000 - pattern: '[a-f0-9]{32}' + address_line1: + description: Postal address line 1. + example: 110 Fulbourn Rd + maxLength: 100 type: string - data: - description: A list of entities. + x-nullable: true + address_line2: + description: Postal address line 2. + example: ' ' + maxLength: 100 + type: string + x-nullable: true + aliases: + description: An array of aliases for the tenant account ID. The aliases must + be globally unique. items: - $ref: '#/definitions/AccountInfo' + pattern: '[\w\-._]{8,100}' + type: string + maxItems: 10 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 + 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 + 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 + company: + description: The name of the company used in billing. + example: ARM Holdings Plc + 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 - type: object - AccountLimitation: - description: This object represents an account limitation. - properties: - billing_period: - description: Billing period of the account limitation. - format: int32 - type: integer + x-nullable: true + contact: + 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. + 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 - description: - description: Description of the account limitation. - readOnly: true + custom_fields: + additionalProperties: + type: string + description: Account's custom properties as key-value pairs. + 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 tenant account. + example: ARM + maxLength: 100 + type: string + x-nullable: true + email: + description: The company email address for this account. + example: info@arm.com + pattern: ^(?=.{3,254}$).+\@.+ + type: string + x-nullable: true + end_market: + description: Account end market. + example: IT type: string etag: description: API resource entity version. example: '1' type: string - id: - description: Entity ID. - example: 01619571d01d0242ac12000600000000 + expiration: + description: Expiration time of the account, as UTC time RFC3339. + format: date-time type: string - inherited: - description: Flag indicating whether this limitation is inherited. - readOnly: true - type: boolean - inherited_from: + x-nullable: true + expiration_warning_threshold: + 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: 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`. + enum: + - enforced + - optional + type: string + x-nullable: true + notification_emails: + description: A list of notification email addresses. + items: + pattern: ^(?=.{3,254}$).+\@.+ + 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: The 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 + phone_number: + 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 + reason: + description: A note with the reason for account status update. + example: Subscription paid. + type: string + x-nullable: true + reference_note: + description: A reference note for updating the status of the account. + example: ARM-INT-0001 + type: string + x-nullable: true + sales_contact: + description: Email address of the sales contact. + example: sales@arm.com + pattern: ^(?=.{3,254}$).+\@.+ + type: string + x-nullable: true + state: + description: The state part of the postal address. + example: ' ' + maxLength: 100 + type: string + x-nullable: true + 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 + template_id: + description: Account template ID. + example: 01619571e7160242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + x-nullable: true + 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 + 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 + upgraded_at: + description: Time when upgraded to commercial account in UTC format RFC3339. + 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 retrieve 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 + AccountLimitation: + description: This object represents an account limitation. + properties: + billing_period: + description: Billing period of the account limitation. + format: int32 + type: integer + created_at: + description: Creation UTC time RFC3339. + example: '2018-02-13T09:35:20Z' + format: date-time + type: string + description: + description: Description of the account limitation. + readOnly: true + type: string + etag: + description: API resource entity version. + example: '1' + type: string + id: + description: Entity ID. + example: 01619571d01d0242ac12000600000000 + type: string + 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 @@ -549,7 +962,7 @@ definitions: 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 type: string data: @@ -592,28 +1005,116 @@ definitions: - object - total_count type: object - AccountUpdateReq: - description: Represents an account creation request. + AccountResponse: + description: This object represents an account in responses. properties: - address_line1: - description: Postal address line 1. Required for commercial accounts only. - example: 110 Fulbourn Rd - maxLength: 100 + alias: + description: Alias of the account. + example: cust-314159 + readOnly: true type: string - x-nullable: true - address_line2: - description: Postal address line 2. - example: ' ' - maxLength: 100 + display_name: + description: The display name for the account. + example: Customer 3.14159 + readOnly: true type: string - x-nullable: true - aliases: - description: An array of aliases. - items: - pattern: '[\w\-._]{8,100}' - type: string - maxItems: 10 - type: array + 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: + $ref: '#/definitions/LoginProfile' + type: array + 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 account. + enum: + - ENROLLING + - ACTIVE + - RESTRICTED + - SUSPENDED + example: ACTIVE + readOnly: true + type: string + type: object + AccountResponseList: + properties: + 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/AccountResponse' + readOnly: true + type: array + has_more: + description: Flag indicating whether there is more results. + example: false + readOnly: true + type: boolean + limit: + 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''' + enum: + - list + readOnly: true + 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 + readOnly: true + type: string + total_count: + description: The total number or records, if requested. It might be returned + also for small lists. + example: 5 + format: int32 + readOnly: true + type: integer + type: object + AccountUpdateReq: + description: Represents an account creation 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 + type: string + 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 @@ -623,7 +1124,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 @@ -650,7 +1152,7 @@ definitions: type: object 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 @@ -742,7 +1244,8 @@ 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 @@ -759,7 +1262,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 @@ -772,7 +1276,8 @@ definitions: type: string x-nullable: true contract_number: - description: Contract number of the customer. + description: Contract number of the customer. An administrator can set this + property on tenant accounts only. type: string x-nullable: true country: @@ -790,11 +1295,12 @@ definitions: type: object x-nullable: true customer_number: - description: Customer number of the customer. + description: Customer number of the customer. An administrator can set this + property on tenant accounts only. 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 @@ -877,6 +1383,13 @@ definitions: type: string 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: @@ -998,6 +1511,7 @@ definitions: - package_renewal - package_creation - package_termination + - package_tokens_edit type: string required: - account_id @@ -1016,7 +1530,9 @@ definitions: description: Represents an API key in requests towards Device Management. properties: groups: - description: A list of group IDs this API key belongs to. + 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 @@ -1025,10 +1541,12 @@ definitions: maxLength: 100 type: string owner: - description: The owner of this API key. + 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. + description: The status of the API key. Only an administrator can set the + status of an API key. enum: - ACTIVE - INACTIVE @@ -1114,7 +1632,7 @@ definitions: ApiKeyInfoRespList: 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 @@ -1160,7 +1678,8 @@ definitions: description: Represents an API key in requests towards Device Management. properties: groups: - description: A list of group IDs this API key belongs to. + 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 @@ -1169,17 +1688,170 @@ definitions: maxLength: 100 type: string owner: - description: The owner of this API key. + 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. + 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: + - ACTIVE + - INACTIVE + type: string + type: object + Application: + 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 + 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: + example: 01705c6383f6c85b76f92f4e00000000 + type: string + type: array + id: + description: The ID of the application. + example: 01619571f7020242ac12000600000000 + pattern: '[a-f0-9]{32}' + readOnly: true + type: string + last_used_at: + description: The time of the latest application usage. + example: '2020-02-14T15:24:14Z' + format: date-time + readOnly: true + type: string + name: + description: The display name for the application. + example: Application warp + maxLength: 100 + type: string + object: + description: 'Entity name: always ''application''' + enum: + - application + readOnly: true + type: string + 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: Last update UTC time RFC3339. + example: '2020-02-19T11:54:32Z' + format: date-time + readOnly: true type: string required: - name type: object + ApplicationList: + 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/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: + - 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 + ArchiveInfoResponse: + description: This object represents the response for the archive info request. + properties: + 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 + license_type: + description: The license agreement type required for downloading Factory Configurator + Utility. + example: fcu + type: string + license_version: + description: The license agreement version required for downloading Factory + Configurator Utility. + example: '1.0' + type: string + 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 + 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 AsyncID: properties: async-response-id: @@ -1217,29 +1889,40 @@ definitions: description: "\nStates whether sending a command to the device succeeded or\ \ failed.\n\n\n \n \n \n \n\ \ \n \n \n \n \n\ - \ \n \n \n \n\ - \ \n \n\ - \ \n \n \n\ - \ \n \n \n \n \n\ - \ \n \n \n \n \n \n \ - \ \n \n \n \n\ - \ \n \n\ - \ \n \n \n \n \n \n\ - \ \n \n \n
CodeDescription
200Operation succeeded. The playload contains result of the operation\ - \ from the device.
404Endpoint does not have requested resource.
412Precondition failed and\ - \ operation was not executed. Device responded with 4.12 CoAP response code.
413Request entity\ - \ is too large and could not be delivered to the device.
415Endpoint does not support\ - \ media type.
429Expired request was removed from queue (REQUEST_EXPIRED), device\ - \ requested deregistration (DEVICE_REMOVED_REGISTRATION), or device was\ - \ suspended (DEVICE_BLOCKED).
502Request to the device failed and retry count exceeded. Last retry\ - \ failed to establish TCP or TLS connection to endpoint.
503Request to the device failed\ - \ and retry count exceeded. Last retry failed because endpoint is currently\ - \ unavailable (NOT_CONNECTED).
504Request 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" + \ 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 + 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: @@ -1308,43 +1991,17 @@ definitions: - 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 + 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: color: @@ -1360,7 +2017,7 @@ definitions: type: string reference: description: Color name. - enum: &id020 + enum: &id001 - error_color - primary - secondary @@ -1388,7 +2045,7 @@ definitions: BrandingColorList: 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 @@ -1430,6 +2087,20 @@ definitions: - object - total_count type: object + BrandingColorUpdate: + properties: + color: + description: The color given as name (purple) or as a hex code. + example: '#f3f93e' + type: string + x-nullable: true + reference: + description: Color name. + enum: *id001 + type: string + required: + - reference + type: object BrandingImage: properties: object: @@ -1440,7 +2111,7 @@ definitions: type: string reference: description: Name of the image. - enum: &id021 + enum: &id026 - brand_logo_portrait - brand_logo_square - brand_logo_landscape @@ -1495,7 +2166,7 @@ definitions: BrandingImageList: 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 @@ -1563,6 +2234,7 @@ definitions: 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 + x-nullable: true etag: description: etag example: '1' @@ -1574,6 +2246,7 @@ definitions: 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: Bulk ID pattern: ^[A-Za-z0-9]{32} @@ -1639,7 +2312,7 @@ definitions: description: The device's campaign ID. example: 015bf72fccda00000000000100100280 type: string - created_at: &id013 + created_at: &id014 description: The time the entity was created. example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -1663,13 +2336,14 @@ definitions: description: The device ID. example: 015c2fec9bba0000000000010010036f type: string - etag: &id014 + etag: &id015 description: API resource entity version. example: '2017-05-22T12:37:58.753425Z' type: string id: description: The metadata record ID. example: 015c3029f6f7000000000001001000c3 + pattern: '[A-Fa-f0-9]{32}' type: string mechanism: description: How the firmware is delivered (connector or direct). @@ -1685,8 +2359,9 @@ definitions: type: string object: description: 'The entity name: always ''update-campaign-device-metadata''.' + example: update-campaign-device-metadata type: string - updated_at: &id015 + updated_at: &id016 description: The time the entity was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -1717,6 +2392,7 @@ definitions: type: integer object: description: 'The entity name: always ''list''.' + example: list type: string order: description: 'The order of the records to return. Acceptable values: ASC, @@ -1746,6 +2422,7 @@ definitions: 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 @@ -1886,7 +2563,7 @@ definitions: type: object CertificateIssuerConfigListResponse: properties: - after: &id001 + after: &id002 description: An offset token for current page. example: '01631667477600000000000100100374' type: string @@ -1895,27 +2572,26 @@ definitions: items: $ref: '#/definitions/CertificateIssuerConfigResponse' type: array - has_more: &id002 - description: Are there more results available. + has_more: &id003 + description: More results are 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. + 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: &id004 - description: The type of this API object is a `list`. + object: &id005 + description: The type of this API object is `list`. example: list type: string - order: &id005 - description: The creation time based order of the entries. + order: &id006 + description: Record order based on creation time. example: DESC type: string - total_count: &id006 + total_count: &id007 example: 1 format: integer type: integer @@ -1934,11 +2610,9 @@ definitions: CertificateIssuerConfigResponse: properties: certificate_issuer_id: - description: 'The ID of the certificate issuer. - - Null if Device Management internal HSM is used. + description: 'Certificate issuer ID. - ' + Null if Device Management internal HSM is used.' example: 01648415a2a30242ac18000500000000 type: string x-nullable: true @@ -1952,9 +2626,7 @@ definitions: example: '1' type: string id: - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. example: 01648415a2a30242ac18000500000000 type: string is_custom: @@ -1993,27 +2665,24 @@ definitions: example: '1' type: string id: - description: The ID of the certificate issuer. + description: Certificate issuer ID. example: 01234567890ABCDEF01234567890ABCDEF type: string issuer_attributes: - additionalProperties: &id007 + additionalProperties: &id008 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. + When the issuer_type is GLOBAL_SIGN, the value is empty. - ' - example: &id008 {} + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' + example: &id009 {} 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" + 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 @@ -2033,17 +2702,17 @@ definitions: type: object CertificateIssuerInfoListResponse: properties: - after: *id001 + after: *id002 data: description: List of certificate issuers. items: $ref: '#/definitions/CertificateIssuerInfo' type: array - has_more: *id002 - limit: *id003 - object: *id004 - order: *id005 - total_count: *id006 + has_more: *id003 + limit: *id004 + object: *id005 + order: *id006 + total_count: *id007 type: object CertificateIssuerRequest: example: @@ -2069,34 +2738,29 @@ definitions: type: string x-nullable: true issuer_attributes: - additionalProperties: *id007 + additionalProperties: *id008 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. + When the issuer_type is GLOBAL_SIGN, the value is empty. - ' - example: *id008 + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' + example: *id009 type: object issuer_credentials: - additionalProperties: &id009 + additionalProperties: &id010 type: string - description: 'The credentials required for connecting to the certificate issuer. + 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: &id010 {} + When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.' + example: &id011 {} 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" + 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 @@ -2121,26 +2785,22 @@ definitions: type: string x-nullable: true issuer_attributes: - additionalProperties: *id007 + additionalProperties: *id008 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. + When the issuer_type is GLOBAL_SIGN, the value is empty. - ' - example: *id008 + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' + example: *id009 type: object issuer_credentials: - additionalProperties: *id009 - description: 'The credentials required for connecting to the certificate issuer. + 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: *id010 + When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.' + example: *id011 type: object name: description: Certificate issuer name. @@ -2150,55 +2810,40 @@ definitions: CertificateIssuerVerifyResponse: properties: message: - description: 'Provides details in case of failure. - - ' - example: message describing the verification failure + description: Provides details in case of failure. + example: Message describing the verification failure type: string successful: - description: 'Indicates whether the certificate issuer was verified successfully. - - ' + 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. - - ' + 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. - - ' + description: The label that is used by CFSSL when creating the certificate. type: string cfssl_profile: - description: 'The profile that is configured on the CFSSL server and is used - by CFSSL when creating the certificate. - - ' + description: The profile that is configured on the CFSSL server and used by + CFSSL when creating the certificate. type: string host_url: - description: 'The URL to connect to the CFSSL server. - - ' + 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 + 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. - - ' + Must contain an even number of hexadecimal characters.' example: 0010203ABCD708EF maxLength: 64 pattern: ^([a-fA-F0-9][a-fA-F0-9]){1,32}$ @@ -2220,9 +2865,7 @@ definitions: CreateCertificateIssuerConfig: properties: certificate_issuer_id: - description: 'The ID of the certificate issuer. - - ' + description: Certificate issuer ID. example: 01648415a2a30242ac18000500000000 maxLength: 32 type: string @@ -2231,9 +2874,7 @@ definitions: 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. - - ' + The following names are reserved and cannot be configured: LwM2M, BOOTSTRAP.' example: customer.dlms maxLength: 100 pattern: (?!mbed\.)[\w-_.]{1,100} @@ -2242,6 +2883,64 @@ definitions: - 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: @@ -2252,57 +2951,17 @@ definitions: description: Server URI that the client connects to. type: string type: object - DenialAttemptsResponse: - properties: - after: - description: An offset token for current page. - type: string - data: - items: - $ref: '#/definitions/BlackListedDeviceData' - 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 - object: - description: The type of this API object is a "list". - example: list - type: string - order: - description: The creation time based order of the entries. - enum: - - ASC - - DESC - example: DESC - type: string - total_count: - example: 1 - format: integer - type: integer - required: - - object - - data - type: object DeveloperCertificateRequestData: properties: description: description: Description for the developer certificate. Maximum 500 characters. - Please see [TrustedCertificateReq](../current/api-references/account-management-api.html#trustedcertificatereq). + 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](../current/api-references/account-management-api.html#trustedcertificatereq). + characters. Please see [TrustedCertificateReq](https://www.pelion.com/docs/device-management-api/account-management/). maxLength: 100 type: string required: @@ -2418,6 +3077,17 @@ definitions: 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: description: The expiration date of the certificate used to connect to LwM2M server. @@ -2453,7 +3123,7 @@ definitions: type: string description: description: The description of the device. - example: description + example: Temperature measuring device maxLength: 2000 type: string device_class: @@ -2461,7 +3131,7 @@ definitions: example: '' maxLength: 32 type: string - device_execution_mode: &id011 + 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\ @@ -2483,7 +3153,8 @@ definitions: maxLength: 512 type: string endpoint_name: - description: The endpoint name given to the device. + 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 @@ -2514,7 +3185,8 @@ definitions: type: string type: array host_gateway: - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind Edge + has this host_gateway set. example: '' type: string id: @@ -2522,7 +3194,7 @@ definitions: Management APIs. example: '00000000000000000000000000000000' type: string - issuer_fingerprint: &id012 + issuer_fingerprint: &id013 description: SHA256 fingerprint of the certificate used to validate the signature of the device certificate. example: C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322 @@ -2563,7 +3235,12 @@ definitions: format: date-time type: string lifecycle_status: - description: The lifecycle status of the device. + 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 @@ -2579,33 +3256,62 @@ definitions: format: date-time type: string mechanism: - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: 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. + description: 'NOT USED: The address of the connector to use.' example: '' type: string name: - description: The name of the device. + 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: Is the device suspended by the operator? + description: Device has been suspended by operator. type: boolean serial_number: - description: The serial number of the device. + 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. + 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 @@ -2617,7 +3323,7 @@ definitions: description: Is the device suspended by the system? type: boolean updated_at: - description: The time the object was updated. + description: The time this data object was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string @@ -2674,7 +3380,7 @@ definitions: description: An ID representing the model and hardware revision of the device. maxLength: 32 type: string - device_execution_mode: *id011 + 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 @@ -2695,7 +3401,7 @@ definitions: description: The ID of the host gateway, if appropriate. example: '' type: string - issuer_fingerprint: *id012 + issuer_fingerprint: *id013 manifest: description: 'DEPRECATED: The URL for the current device manifest.' example: '' @@ -2740,7 +3446,8 @@ definitions: description: 'DEPRECATED: Mark this device for automatic firmware update.' type: boolean ca_id: - description: The certificate issuer's 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 @@ -2762,12 +3469,14 @@ definitions: maxLength: 2000 type: string device_key: - description: The fingerprint of the device certificate. + 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. + 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 @@ -2794,8 +3503,8 @@ definitions: auto_update: type: boolean bootstrap_expiration_date: - example: '2017-05-22T12:37:55.576563Z' - format: date-time + example: '2017-05-22' + format: date type: string bootstrapped_timestamp: example: '2017-05-22T12:37:55.576563Z' @@ -2803,9 +3512,13 @@ definitions: type: string ca_id: type: string + component_attributes: + additionalProperties: + type: string + type: object connector_expiration_date: - example: '2017-05-22T12:37:55.576563Z' - format: date-time + example: '2017-05-22' + format: date type: string created_at: example: '2017-05-22T12:37:55.576563Z' @@ -2911,7 +3624,7 @@ definitions: maxLength: 100 type: string event_type_category: - description: Category code which groups the event type by a summary category. + description: Category code that groups the event type by a summary category. example: FAIL_MANIFEST_REJECTED type: string event_type_description: @@ -2996,11 +3709,11 @@ definitions: DeviceGroup: properties: created_at: - description: The time the campaign was created. + description: The time the group was created. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string - custom_attributes: &id023 + custom_attributes: &id028 additionalProperties: maxLength: 128 pattern: ^[A-Za-z].* @@ -3012,10 +3725,10 @@ definitions: key: value maxProperties: 10 type: object - description: &id024 + description: &id029 description: The description of the group. example: Devices on the factory floor. - maxLength: 2000 + maxLength: 1024 type: string devices_count: description: The number of devices in this group. @@ -3029,7 +3742,7 @@ definitions: description: The group ID. example: 015c3029f6f7000000000001001000c3 type: string - name: &id025 + name: &id030 description: Name of the group. example: My devices maxLength: 128 @@ -3039,7 +3752,7 @@ definitions: example: device-group type: string updated_at: - description: The time the object was updated. + description: The time this object was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string @@ -3089,16 +3802,16 @@ definitions: DeviceGteLteFilter: properties: bootstrap_expiration_date: - example: '2017-05-22T12:37:55.576563Z' - format: date-time + example: '2017-05-22' + format: date 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 + example: '2017-05-22' + format: date type: string created_at: example: '2017-05-22T12:37:55.576563Z' @@ -3128,8 +3841,8 @@ definitions: auto_update: type: boolean bootstrap_expiration_date: - example: '2017-05-22T12:37:55.576563Z' - format: date-time + example: '2017-05-22' + format: date type: string bootstrapped_timestamp: example: '2017-05-22T12:37:55.576563Z' @@ -3137,9 +3850,13 @@ definitions: type: string ca_id: type: string + component_attributes: + additionalProperties: + type: string + type: object connector_expiration_date: - example: '2017-05-22T12:37:55.576563Z' - format: date-time + example: '2017-05-22' + format: date type: string created_at: example: '2017-05-22T12:37:55.576563Z' @@ -3240,7 +3957,7 @@ definitions: DeviceQuery: properties: created_at: - description: The timestamp of when the device was created in Device Directory. + description: The timestamp of when the query was created. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string @@ -3251,11 +3968,11 @@ definitions: type: string id: description: The ID of the query. - example: '00000000000000000000000000000000' + example: 015c30671894000000000001001001e9 type: string name: description: The name of the query. - example: '00000000000000000000000000000000' + example: example-stored-device-query type: string object: description: The API resource entity. @@ -3263,7 +3980,7 @@ definitions: type: string query: description: The device query. - example: id=00000000000000000000000000000000 + example: id=0158d38771f70000000000010010038c type: string updated_at: description: The time the object was updated. @@ -3383,7 +4100,10 @@ definitions: maxLength: 200 type: string query: - description: The device 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 required: @@ -3416,6 +4136,147 @@ definitions: - 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: + description: Response creation UTC time. + example: 2020-10-20 10:30:55.123000 + format: date-time + type: string + device_id: + description: The device ID. + example: 015f3850a657000000000001001002ab + type: string + endpoint_name: + description: The endpoint name. + example: Sensor3222454 + type: string + 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 + 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: + 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 + required: + - id + type: object + EchoResource: + description: The representation of a single resource of the device stored in Device + Echo. + properties: + 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 + 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 + value: + description: The desired value in base64 encoded format. + example: RGVzaXJlZCB2YWx1ZS4= + format: byte + type: string + type: object + EchoResourceReported: + description: Reported single resource data received from the device. + properties: + content_type: + description: Content type of the reported resource value. + example: text/plain + type: string + 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 + reported_at: + description: The time the last value was reported. + format: date-time + type: string + value: + description: The reported value in base64 encoded format. + example: UmVwb3J0ZWQgdmFsdWUu + format: byte + type: string + type: object EndpointData: properties: ep: @@ -3633,11 +4494,17 @@ definitions: - request_id - type type: object + EstRequestsCounter: + description: The number of certificate creation requests received from devices + during bootstrap. + format: int64 + minimum: 0 + type: integer EventType: properties: campaign_id: description: ID of the associated campaign. - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 type: string count: example: 10 @@ -3657,6 +4524,7 @@ definitions: type: string object: description: 'Entity name: always ''event-type''.' + example: event-type type: string summary_status: example: FAIL @@ -3672,6 +4540,11 @@ definitions: example: 'null' type: string data: + enum: + - fail + - skipped + - info + - success items: $ref: '#/definitions/EventType' type: array @@ -3706,7 +4579,7 @@ definitions: properties: campaign_id: description: ID of the associated campaign. - example: '00000000000000000000000000000000' + example: 016e652be6710000000000010010013d type: string count: example: 10 @@ -3726,6 +4599,7 @@ definitions: type: string object: description: 'Entity name: always ''summary_status''.' + example: summary_status type: string summary_status: description: The event type description. @@ -3758,6 +4632,7 @@ definitions: type: integer object: description: 'The entity name: always ''list''.' + example: list type: string order: description: 'The order of the records to return. Acceptable values: ASC, @@ -3839,14 +4714,14 @@ definitions: type: object FirmwareImage: properties: - created_at: *id013 + created_at: *id014 datafile: - description: The firmware image file URL - example: http://example.com/00000000000000000000000000000000 + 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: '0000000000000000000000000000000000000000000000000000000000000000' + example: e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e type: string datafile_size: description: The size of the datafile in bytes. @@ -3855,21 +4730,25 @@ definitions: description: description: The description of the object. example: a description + format: free text maxLength: 2000 type: string - etag: *id014 + etag: *id015 id: description: The firmware image ID. - example: '00000000000000000000000000000000' + 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: *id015 + updated_at: *id016 FirmwareImageEqNeqFilter: properties: created_at: @@ -3889,6 +4768,8 @@ definitions: format: date-time type: string id: + example: 015c3029f6f7000000000001001000c3 + pattern: '[A-Fa-f0-9]{32}' type: string name: type: string @@ -3929,6 +4810,8 @@ definitions: format: date-time type: string id: + example: 015c3029f6f7000000000001001000c3 + pattern: '[A-Fa-f0-9]{32}' type: string name: type: string @@ -3952,6 +4835,7 @@ definitions: type: integer object: description: 'Entity name: always ''list''.' + example: list type: string order: description: The order of the records based on creation time, `ASC` or `DESC`; @@ -3966,48 +4850,104 @@ definitions: type: integer FirmwareManifest: properties: - created_at: *id013 + created_at: *id014 datafile: - description: The URL of the firmware manifest binary - example: http://example.com/12345678901234567890123456789012 + 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 datafile in bytes + 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: The description of the firmware manifest. example: '' + format: free text maxLength: 2000 type: string device_class: - description: The class of the device. - example: 00000000-0000-0000-0000-000000000000 + description: The device class ID. + example: 42c4d8de-704d-546e-b9d3-1ce1eb316167 + format: uuid + type: string + device_vendor: + description: The device vendor ID. + example: 5d645eae-c231-5a89-9764-2e655cd94fa8 + format: uuid type: string - etag: *id014 + 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 + example: http://example.com/key-table format: uri type: string + manifest_schema_version: + description: Version of the manifest schema (1 or 3). + enum: + - '1' + - '3' + type: string name: - description: The name of the object. - example: default_object_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 - updated_at: *id015 + 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: created_at: @@ -4027,8 +4967,12 @@ definitions: 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' @@ -4075,8 +5019,12 @@ definitions: 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' @@ -4102,6 +5050,7 @@ definitions: type: integer object: description: 'Entity name: always ''list''.' + example: list type: string order: description: 'The order of the records to return. Acceptable values: ASC, @@ -4114,6 +5063,12 @@ definitions: 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: @@ -4145,25 +5100,58 @@ definitions: - type - code type: object + GetTrustAnchorsResponse: + properties: + after: + description: An offset token for the current page. + example: '01631667477600000000000100100374' + pattern: '[A-Fa-f0-9]{32}' + type: string + data: + description: The list of trust anchors of the account. + items: + $ref: '#/definitions/TrustAnchorResponse' + type: array + has_more: + description: Indicates whether additional results are available. + example: false + type: boolean + limit: + 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`. + example: list + type: string + order: + description: Indicates how to order the entries based on when they were created. + enum: + - ASC + - DESC + example: DESC + type: string + total_count: + example: 1 + format: integer + type: integer + 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. + description: 'The credentials required to connect to the GlobalSign account. - ' + The values should be taken from GlobalSign support upon account creation.' properties: api_key: - description: 'Unique ID for API client (provided by GlobalSign). - - ' + description: Unique ID for API client (provided by GlobalSign). example: e510e289e6cd8947 maxLength: 1000 type: string api_secret: - description: 'API Secret matching the API key (provided by GlobalSign). - - ' + description: API secret matching the API key (provided by GlobalSign). example: a477a8393d17a55ecb2ba6a61f58feb84770b621 format: password maxLength: 250 @@ -4175,9 +5163,7 @@ definitions: The certificate wraps a public key that matches a private key provided by the customer. - The certificate must be in PEM format. - - ' + 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 @@ -4185,9 +5171,7 @@ definitions: passphrase: description: 'The passphrase to decrypt the private key in case it is encrypted. - Empty if the private key is not encrypted. - - ' + Empty if the private key is not encrypted.' example: helloworld format: password maxLength: 1000 @@ -4199,9 +5183,7 @@ definitions: The private key may be encrypted using a symmetric encryption key derived from a passphrase. - The private key must be in PEM format. - - ' + 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-----"' @@ -4228,6 +5210,7 @@ definitions: type: object GroupIdList: items: + example: 01705c6383f6c85b76f92f4e00000000 type: string type: array GroupSummary: @@ -4243,6 +5226,16 @@ definitions: 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' @@ -4289,7 +5282,7 @@ definitions: GroupSummaryList: 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 @@ -4369,6 +5362,7 @@ definitions: description: Identity provider type. enum: - SAML2 + - OIDC type: string required: - name @@ -4412,6 +5406,9 @@ definitions: enum: - identity-provider type: string + oidc_attributes: + $ref: '#/definitions/OIDCInfo' + description: OIDC specific attributes. saml2_attributes: $ref: '#/definitions/SAML2Info' description: SAML2 specific attributes. @@ -4444,7 +5441,7 @@ definitions: 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 @@ -4513,6 +5510,7 @@ definitions: description: Identity provider type. enum: - SAML2 + - OIDC type: string required: - name @@ -4563,6 +5561,15 @@ definitions: - type - code type: object + KeyValue: + properties: + key: + type: string + value: + type: string + required: + - key + - value ListOfPreSharedKeysWithoutSecret: properties: after: @@ -4605,6 +5612,67 @@ definitions: - has_more - data type: object + Log: + properties: + account_id: + description: The ID of the account associated with the device. + example: 0168e7bff4f2263cf4be560700000000 + type: string + app_name: + description: A tag indicating which application or software module produced + the log message. + example: modbus + type: string + 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 + device_id: + description: Device ID. + example: 00005a4e027f0a580a01081c00000000 + type: string + etag: + description: Entity instance signature, or Unix timestamp of last customer + update. + example: stdout + type: string + id: + description: mUUID Entity ID. Each device log has a unique ID. + example: 2d238a89038b4ddb84699dd36a901063 + pattern: /^[(0-9)(a-f)]{32}$/ + type: string + level: + description: Log entry severity level. + enum: + - DEBUG + - TRACE + - INFO + - WARNING + - ERROR + - CRITICAL + example: ERROR + type: string + message: + description: Log message body. + example: 'ModbusRTU Driver: Failed to start undefined' + type: string + object: + description: Device log resource name. + example: device-log + type: string + 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 + type: + description: Device log type. + example: syslog + type: string + type: object LoginHistory: description: Represents an entry in login history. properties: @@ -4635,11 +5703,18 @@ definitions: LoginProfile: description: Represents a user login profile in Device Management. properties: + foreign_id: + description: The ID of the user in the identity provider's service. + example: fed/user_007 + readOnly: true + type: string 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: @@ -4649,11 +5724,46 @@ definitions: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: - id type: object + LogsPage: + properties: + after: + description: An offset token for current page. + type: string + 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 + order: + description: Entry order based on creation time. + example: DESC + type: string + total_count: + example: 1 + format: integer + type: integer + type: object NotificationData: properties: ct: @@ -4741,7 +5851,7 @@ definitions: NotificationEntryList: 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 @@ -4824,30 +5934,37 @@ definitions: x-nullable: true email_verified: description: Custom claim name for 'email_verified'. + example: email_verified type: string x-nullable: true family_name: description: Custom claim name for 'family_name'. + example: family_name type: string x-nullable: true given_name: description: Custom claim name for 'given_name'. + example: given_name type: string 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 x-nullable: true sub: description: Custom claim name for 'sub'. + example: sub type: string x-nullable: true updated_at: description: Custom claim name for 'updated_at'. + example: updated_at type: string x-nullable: true updated_at_pattern: @@ -4938,6 +6055,11 @@ definitions: required: - issuer type: object + 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: @@ -4970,6 +6092,29 @@ definitions: required: - minimum_length type: object + PelionToDeviceMessagesCounter: + description: The number of messages from Device Management to the device. + properties: + 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: + - total_count + - proxy_requests + - subscriptions + type: object + 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: @@ -5053,7 +6198,7 @@ definitions: Presubscription: properties: endpoint-name: - description: The device ID. + description: Device Management device ID. example: 015f3850a657000000000001001002ab type: string endpoint-type: @@ -5129,6 +6274,16 @@ definitions: - firmware_update_count - reason type: object + 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: @@ -5155,6 +6310,7 @@ definitions: - package_renewal - package_creation - package_termination + - package_tokens_edit type: string required: - amount @@ -5164,11 +6320,23 @@ definitions: RegisterWebsocketChannel: properties: serialization: - description: Serialization configuration for a channel - schema: - $ref: '#/definitions/SerializationConfigData' - type: object + $ref: '#/definitions/SerializationConfigData' type: object + 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: @@ -5176,6 +6344,15 @@ definitions: 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: @@ -5184,6 +6361,9 @@ definitions: type: string country: type: string + customer_subtenant_id: + description: Account tenant ID, valid only for tenants. + type: string email: type: string id: @@ -5202,18 +6382,20 @@ definitions: ReportBillingData: properties: active_devices: - format: int64 - minimum: 0 - type: integer + $ref: '#/definitions/ActiveDevicesCounter' + device_to_pelion_messages: + $ref: '#/definitions/DeviceToPelionMessagesCounter' firmware_updates: - format: int64 - minimum: 0 - type: integer + $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. @@ -5224,10 +6406,12 @@ definitions: 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: - format: int64 - minimum: 0 - type: integer + $ref: '#/definitions/SdaTokensCounter' required: - generated - period_start @@ -5275,7 +6459,7 @@ definitions: description: Account contact information. aggregated: $ref: '#/definitions/ReportBillingData' - description: Aggregated report billing data including all subtenant accounts, + description: Aggregated report billing data including all tenant accounts, if any. billing_data: $ref: '#/definitions/ReportBillingData' @@ -5294,10 +6478,10 @@ definitions: type: string service_package: $ref: '#/definitions/ServicePackageReport' - description: Report service package. + description: Service package report. subtenants: - description: List of billing reports for subtenant accounts. Empty list if - account does not have any subtenant account. + description: List of billing reports for tenant accounts. Empty list if account + does not have any tenant account. items: $ref: '#/definitions/SubtenantAccountReport' type: array @@ -5306,8 +6490,6 @@ definitions: - object - account - billing_data - - subtenants - - aggregated - month type: object Resource: @@ -5318,8 +6500,8 @@ definitions: 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). + 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 @@ -5328,16 +6510,31 @@ definitions: 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).' + 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 uri: - description: The resource URL. + 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 required: - uri type: object + ResourceArray: + items: + $ref: '#/definitions/Resource' + type: array ResourcePath: description: A resource URI. example: /sen/light @@ -5364,13 +6561,25 @@ definitions: 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). + 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 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: @@ -5439,21 +6648,25 @@ definitions: description: URL of the identity provider's SSO endpoint. type: string type: object + 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: cfg: - description: Serialization configuration object according to configuration - type. - schema: - $ref: '#/definitions/SerializationConfigObjectV2' - type: object + $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](../integrate-web-app/event-notification.html#notification-sending-logic) + 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 @@ -5470,6 +6683,7 @@ definitions: - type type: object SerializationConfigObjectV2: + description: Serialization configuration object according to configuration type. properties: deregistrations_as_object: default: false @@ -5613,16 +6827,17 @@ definitions: - package_creation - package_renewal - package_termination + - package_tokens_edit type: string reservation: $ref: '#/definitions/ServicePackageQuotaHistoryReservation' - description: Reservation details if reason is `reservation`, `reservation_releasem` + 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` - or `package_termination`. + description: Service package details if reason is `package_creation`, `package_renewal`, + `package_termination`, or `package_tokens_edit`. type: object required: - id @@ -5669,8 +6884,7 @@ definitions: 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. + description: Maximum number of quota history entries in one paged response. format: int32 maximum: 1000 minimum: 2 @@ -5680,6 +6894,9 @@ definitions: enum: - service-package-quota-history type: string + order: + 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 @@ -5691,6 +6908,7 @@ definitions: - has_more - limit - total_count + - order type: object ServicePackageQuotaHistoryServicePackage: description: Service package quota history service package object. @@ -5736,9 +6954,7 @@ definitions: $ref: '#/definitions/QuotaUsageReport' type: array required: - - metadata - quota_usage - - aggregated_quota_usage type: object ServicePackagesResponse: description: Contains service package information for currently active service @@ -5766,6 +6982,174 @@ definitions: required: - object - previous + StatisticsReportListResponse: + properties: + after: + description: An offset token for the current page. + example: '01631667477600000000000100100374' + type: string + data: + description: List of manufacturing statistics. + items: + $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: + 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: 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: + example: 100 + format: integer + type: integer + type: object + StatisticsReportResponse: + properties: + 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: 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 + 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: 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 + required: + - object + - id + - timestamp + - active_devices + - firmware_updates + - sda_tokens + type: object + StatisticsViewResponse: + description: Contains the statistics view of Device Management usage information. + properties: + after: + 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/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: + description: Always `list`. + enum: + - list + type: string + order: + description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.' + type: string + total_count: + 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 + required: + - object + - data + - has_more + - limit + - order + type: object SubjectList: description: Represents arrays of user and API key IDs. properties: @@ -5774,39 +7158,63 @@ definitions: 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 subtenant account. + description: Billing report for tenant account. properties: account: $ref: '#/definitions/SubtenantReportAccountContactInfo' - description: Subtenant account contact information. + description: Tenant account contact information. billing_data: $ref: '#/definitions/ReportBillingData' description: Report billing data. service_package: $ref: '#/definitions/SubtenantServicePackageReport' - description: Report service package for subtenant account. + description: service package report for the tenant. required: - account - billing_data type: object SubtenantReportAccountContactInfo: - description: Subtenant account contact information. + 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: @@ -5816,7 +7224,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 @@ -5843,6 +7251,108 @@ definitions: 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/AudienceItem' + maxItems: 50 + minItems: 1 + type: array + 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: @@ -5857,8 +7367,14 @@ definitions: type: string x-nullable: true enrollment_mode: - description: Certificate is used in enrollment mode. Default value is false. + 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 @@ -5917,9 +7433,15 @@ definitions: format: int32 type: integer enrollment_mode: - description: If true, signature is not required. Default value false. + 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' @@ -5998,7 +7520,7 @@ definitions: 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 @@ -6061,7 +7583,8 @@ definitions: maxLength: 100 type: string service: - description: Service name where the certificate must be used. + description: Service name where the certificate must be used. Service cannot + be updated for developer certificates. enum: - lwm2m - bootstrap @@ -6139,7 +7662,7 @@ definitions: example: '85.00' format: double type: number - campaign_strategy: &id016 + 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 @@ -6149,17 +7672,18 @@ definitions: - one-shot - continuous type: string - created_at: *id013 + 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 device_filter: - description: The filter for the devices the campaign is targeting at. - example: id__eq=00000000000000000000000000000000 + description: The filter for the devices the campaign targets. Refer to this + using the filter ID. + example: state__eq=registered type: string - etag: *id014 + etag: *id015 finished: description: The time the campaign finished. example: '2017-05-22T12:37:55.576563Z' @@ -6167,7 +7691,8 @@ definitions: type: string id: description: The campaign ID. - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 + pattern: '[A-Fa-f0-9]{32}' type: string name: description: The campaign name. @@ -6176,6 +7701,7 @@ definitions: type: string object: description: 'Entity name: always ''update-campaign''.' + example: update-campaign type: string phase: description: The phase of the campaign. @@ -6193,12 +7719,12 @@ definitions: root_manifest_id: description: The ID of the manifest that will be sent to the device as part of the campaign. - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 type: string root_manifest_url: description: The URL for the manifest that will be sent to the device as part of the campaign. - example: http://example.com/00000000000000000000000000000000 + example: https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102 type: string started_at: description: The time the campaign was started. @@ -6248,7 +7774,7 @@ definitions: example: '2017-05-22T12:37:55.576563Z' format: date-time type: string - updated_at: *id015 + 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. @@ -6275,10 +7801,12 @@ definitions: format: date-time type: string id: + pattern: '[A-Fa-f0-9]{32}' type: string name: type: string root_manifest_id: + pattern: '[A-Fa-f0-9]{32}' type: string started_at: example: '2017-05-22T12:37:55.576563Z' @@ -6340,10 +7868,14 @@ definitions: format: date-time type: string id: + example: 015c3029f6f7000000000001001000c3 + pattern: '[A-Fa-f0-9]{32}' type: string 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' @@ -6374,6 +7906,7 @@ definitions: type: integer object: description: 'Entity name: always ''list''.' + example: list type: string order: description: 'The order of the records to return. Acceptable values: ASC, @@ -6396,15 +7929,16 @@ definitions: autostop_success_percent: default: 100.0 type: number - campaign_strategy: *id016 + 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 is targeted at. - example: id__eq=00000000000000000000000000000000 + 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 @@ -6412,10 +7946,26 @@ definitions: maxLength: 128 type: string root_manifest_id: - example: '12345678901234567890123456789012' - maxLength: 32 - minLength: 32 + 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: @@ -6431,26 +7981,102 @@ definitions: type: number description: description: An optional description of the campaign. - example: '' + example: description + format: free text maxLength: 2000 type: string device_filter: - description: The filter for the devices the campaign is targeting at. - example: id__eq=00000000000000000000000000000000 + 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: '00000000000000000000000000000000' - maxLength: 32 + 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: *id013 - etag: *id014 + 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. @@ -6467,7 +8093,7 @@ definitions: description: 'Entity name: always ''upload-info''.' example: upload-info type: string - updated_at: *id015 + updated_at: *id016 upload_job_id: description: The upload job ID. example: '00000000000000000000000000000000' @@ -6489,6 +8115,7 @@ definitions: type: integer object: description: 'Entity name: always ''list''.' + example: list type: string order: description: 'The order of the records to return. Acceptable values: ASC, @@ -6507,22 +8134,24 @@ definitions: description: A flag that indicates job completion. example: false type: boolean - created_at: *id013 - description: &id028 + created_at: *id014 + description: &id035 description: Human-readable description. example: New Linux update for my devices maxLength: 2000 type: string - etag: *id014 + etag: *id015 firmware_image_id: description: ID of the firmware image - empty until the upload job is complete. - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001a8 + pattern: '[A-Fa-f0-9]{32}' type: string id: description: The upload job ID. - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 + pattern: '[A-Fa-f0-9]{32}' type: string - name: &id029 + name: &id036 description: Human-readable name. example: New Linux update maxLength: 128 @@ -6535,7 +8164,7 @@ definitions: description: Status of the upload job. example: in_progress type: string - updated_at: *id015 + updated_at: *id016 type: object UploadJobPage: properties: @@ -6553,6 +8182,7 @@ definitions: type: integer object: description: 'Entity name: always ''list''.' + example: list type: string order: description: 'The order of the records to return. Acceptable values: ASC, @@ -6783,7 +8413,7 @@ definitions: UserInfoRespList: 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 @@ -6924,7 +8554,7 @@ definitions: UserInvitationRespList: 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 @@ -7002,8 +8632,9 @@ definitions: type: boolean x-nullable: true is_totp_enabled: - description: A flag indicating whether mandatory two-factor authentication - (TOTP) is 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: @@ -7050,10 +8681,7 @@ definitions: example: '{"authorization" : "f4b93d6e-4652-4874-82e4-41a3ced0cd56"}' type: object serialization: - description: Serialization configuration for a channel. - schema: - $ref: '#/definitions/SerializationConfigData' - type: object + $ref: '#/definitions/SerializationConfigData' url: description: The URL to which the notifications are sent. We recommend that you serve this URL over HTTPS. @@ -7067,21 +8695,21 @@ definitions: 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: - description: Serialization configuration for a channel. - schema: - $ref: '#/definitions/SerializationConfigData' - type: object + $ref: '#/definitions/SerializationConfigData' 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. + 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 @@ -7147,14 +8775,24 @@ definitions: 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. + 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 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: @@ -7169,7 +8807,7 @@ definitions: 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) + subscribed to the device resources using [Connect API](https://www.pelion.com/docs/device-management-api/connect/) endpoints. ' @@ -7179,7 +8817,7 @@ definitions: 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) + to device resources using [Connect API](https://www.pelion.com/docs/device-management-api/connect/) endpoints. ' @@ -7189,7 +8827,7 @@ definitions: 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) + or write values to device resources using [Connect API](https://www.pelion.com/docs/device-management-api/connect/) endpoints. ' @@ -7199,7 +8837,7 @@ definitions: 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) + subscribe to a resource path using [Connect API](https://www.pelion.com/docs/device-management-api/connect/) endpoints. ' @@ -7209,7 +8847,7 @@ definitions: 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) + try to subscribe to a resource path using [Connect API](https://www.pelion.com/docs/device-management-api/connect/) endpoints. ' @@ -7295,157 +8933,478 @@ info: title: Pelion Device Management API version: '3' paths: - /v2/device-requests/{device-id}: + //ace-auth/token: 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 - - the queue are delivered in the order of insertion, one at a time, and not - concurrently. + 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. - One delivery attempt consist from protocol specific retrasmission logic, where - is multiple trasmissions. In case + Returns the standard error object detailing the error message and, optionally, + the invalid fields. - of CoAP, the retrasmissions exponential backoff 2, 4, 8, 16 to 64 seconds, - taking total over 2 minutes. + ' + 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. - If the device does not respond within this two-minute period, delivery fails, - and the request is put back +
- in the queue so long as the retry count is less than its maximum. + Authorized for roles: Service, ServiceAdministrator +
- For a queue-mode device, the request delivery is not attempted immediately, - but only when the device next time + **Usage example:** - contacts the server. + ``` + curl -X GET https://api.us-east-1.mbedcloud.com/v3/trust-anchors \ - If retries are exhausted or the expiry time has passed, then the server discards - the request and sends an error + -H ''Authorization: '' - in **AsyncIDResponse**. The retries could be exhausted, for example, if the - device periodically contacts + ``` - the server and receives the request from the queue, but then fails to respond - back to the server. + ' + 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. - On the other hand, the device might lose its network connectivity, and the - requests in the queue might expire + ' + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: 'Authentication failure. The provided header is invalid or + missing. - and get discarded before the device regains the connectivity. + 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. - You can write [Notification Rules](../connecting/resource-change-webapp.html#notification-rules) - for a + ' + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: 'Authentication failure. The provided header is invalid or + missing. - resource with PUT command. Please see example of the payload below. + 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. - { "method": "PUT", "uri": "/5/0/1?lt=10>=60&pmax=120" } + 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. +
- POST `method` can be used to either execute or create resource on a LWM2M - supporting device. When creating + Authorized for roles: Service, ServiceAdministrator - a resource, `uri` must refer to an object, and `payload-b64` must be in LWM2M - TLV format, as in +
- the following example. + **Usage example:** ``` - { "method": "POST", "uri": "/123", "content-type": "application/vnd.oma.lwm2m+tlv", - "payload-b64": "BwHFAnZhbHVl" } - - ``` + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trust-anchors/8e0a9494cc95b750ec6c81464eb06725 + \ + -H ''Authorization: '' \ ``` - Example URIs: - - 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 - + ' + 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. - Example payload to read value from resource /5/0/1: + ' + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: 'Authentication failure. The provided header is invalid or + missing. - { "method": "GET", "uri": "/5/0/1" } + 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. - Example payload to set notification rules for resource /5/0/1: + 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. - { "method": "PUT", "uri": "/5/0/1?lt=10>=60&pmax=120" } +
+ **Example:** - Example payload to write value "value1" to resource /5/0/1: +
- { "method": "PUT", "uri": "/5/0/1?k1=v1&k2=v2", "accept": "text/plain", "content-type": - "text/plain", "payload-b64": "dmFsdWUxCg==" } + ``` + curl -X GET https://api.us-east-1.mbedcloud.com/downloads/fcu/factory_configurator_utility.zip + \ - Example payload to execute LWM2M resource /123/1/1: + -H ''Authorization: Bearer '' - { "method": "POST", "uri": "/123/1/1" } + ``` + ' + 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. - Immediate response: +
- 202 Accepted + **Example:** +
- Examples of AsyncIDResponse, delivered via the notification channel: + ``` - { "async-responses": [ { "id": "123e4567-e89b-12d3-a456-426655440000", "status": - 200, "payload": "dmFsdWUxCg==", "ct": "text/plain", "max-age": 600 } ] } + curl -X GET https://api.us-east-1.mbedcloud.com/downloads/fcu/release_notes + \ - { "async-responses": [ { "id": "123e4567-e89b-12d3-a456-426655440000", "status": - 504, "error": "TIMEOUT" } ] } + -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. @@ -7454,19 +9413,22 @@ paths: name: device-id required: true type: string - - description: The client-generated ID for matching the correct response delivered - by notification. + - 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 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. + - 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 @@ -7474,16 +9436,32 @@ paths: 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. + 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. + - 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 @@ -7495,8 +9473,10 @@ paths: 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 + 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: @@ -7505,16 +9485,16 @@ paths: description: "Contains one of the following errors:\n\n \n\ \ \n \n \n\ \ \n \n \n \n \n\ - \ \n\ + \ \n\ \ \n \n \n\ \ \n \n \n
Error messageDescription
DEVICE_NOT_FOUNDDevice is not in Device reqistry. Either device has requestd\ - \ register delete or device has not connected in time and expired.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.
URI_PATH_DOES_NOT_EXISTSThe device does not have requested resource. Check the resource\ \ path is correct.
" schema: type: string - summary: Send an async request to device + summary: Send an asynchronous request to read, write or post to a device resource. tags: - - DeviceRequests + - Device data - requests x-origin: /home/circleci/project/device-server/public/swagger.yaml /v2/device-shared-keys: get: @@ -7531,13 +9511,17 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' operationId: listPreSharedKeys parameters: - - description: The number of entries per page. + - 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 @@ -7559,7 +9543,7 @@ paths: or INVALID_LIMIT. summary: List PSKs. tags: - - PreSharedKeys + - Security and identity - pre-shared keys x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml post: consumes: @@ -7569,7 +9553,7 @@ paths: \ 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\"\ + -H \"Authorization: Bearer \" \\\n-H \"content-type: application/json\"\ \ \\\n -d '{ \"endpoint_name\": \"my-endpoint-0001\", \"secret_hex\"\ : \"4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a\" }'\n```" operationId: uploadPreSharedKey @@ -7602,7 +9586,7 @@ paths: type: string summary: Upload a PSK to Pelion Device Management. tags: - - PreSharedKeys + - Security and identity - pre-shared keys x-origin: /home/circleci/project/connector-bootstrap/public/swagger.yaml /v2/device-shared-keys/{endpoint_name}: delete: @@ -7617,7 +9601,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' operationId: deletePreSharedKey @@ -7642,7 +9626,7 @@ paths: description: Authentication failure. summary: Remove a PSK. tags: - - PreSharedKeys + - 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 @@ -7657,7 +9641,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' operationId: getPreSharedKey @@ -7685,12 +9669,12 @@ paths: description: The PSK does not exist. summary: Get a PSK. tags: - - PreSharedKeys + - Security and identity - pre-shared keys 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. + description: 'Retrieves information about the resource structure for a device + from Device Management. This call does not reach the device. **Example:** @@ -7699,13 +9683,13 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getEndpointResources parameters: - - description: A unique device ID for an endpoint. The ID must be an exact match. - Do not use wildcards. + - 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 @@ -7716,14 +9700,12 @@ paths: 200: description: Successful response with an array of resources. schema: - items: - $ref: '#/definitions/Resource' - type: array + $ref: '#/definitions/ResourceArray' 404: description: Endpoint not found. - summary: List the resources on an endpoint. + summary: List the resources on a device. tags: - - Endpoints + - Device data - resources x-origin: /home/circleci/project/device-server/public/swagger.yaml /v2/endpoints/{device-id}/{resourcePath}: delete: @@ -7746,13 +9728,13 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/{resourcePath} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteResourcePath parameters: - - description: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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 @@ -7767,7 +9749,7 @@ paths: 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 + 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`.' @@ -7795,13 +9777,13 @@ paths: description: TCP or TLS connection to endpoint cannot be established. summary: (DEPRECATED) Delete a resource path. tags: - - Resources + - 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/current/service-api-references/device-management-connect.html#createAsyncRequest + - https://www.pelion.com/docs/device-management-api/connect/ x-origin: /home/circleci/project/device-server/public/swagger.yaml get: deprecated: true @@ -7811,8 +9793,8 @@ paths: 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 + 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. @@ -7825,12 +9807,12 @@ paths: is on and connected to Device Management. - See also how [resource caching](../connecting/device-guidelines.html#resource-cache) + See also how [resource caching](https://www.pelion.com/docs/device-management/current/connecting/device-guidelines.html#resource-cache) works. - 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. + 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:** @@ -7840,7 +9822,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/{resourcePath} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getResourceValue @@ -7858,8 +9840,8 @@ paths: 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.' + 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 @@ -7885,7 +9867,7 @@ paths: schema: $ref: '#/definitions/AsyncID' 205: - description: No cache available for resource. + description: No cache available for the resource. 400: description: Bad request. 404: @@ -7901,7 +9883,7 @@ paths: description: TCP or TLS connection to endpoint cannot be established. summary: (DEPRECATED) Read from a resource. tags: - - Resources + - 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, @@ -7910,7 +9892,7 @@ paths: 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/current/service-api-references/device-management-connect.html#createAsyncRequest + - https://www.pelion.com/docs/device-management-api/connect/ x-origin: /home/circleci/project/device-server/public/swagger.yaml post: consumes: @@ -7927,7 +9909,7 @@ paths: - application/vnd.oma.lwm2m+tlv - application/vnd.oma.lwm2m+json deprecated: true - description: '(DEPRECATED) [Execute a function](../connecting/handle-resource-webapp.html#the-execute-operation) + 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. @@ -7954,13 +9936,13 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v2/endpoints/{device-id}/3303/0/5605 \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: executeOrCreateResource parameters: - - description: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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 @@ -7971,8 +9953,8 @@ paths: 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 + 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 @@ -7984,7 +9966,7 @@ paths: 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 + 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`.' @@ -8013,13 +9995,13 @@ paths: summary: (DEPRECATED) Execute a function on a Resource or create new Object instance. tags: - - Resources + - 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/current/service-api-references/device-management-connect.html#createAsyncRequest + - https://www.pelion.com/docs/device-management-api/connect/ x-origin: /home/circleci/project/device-server/public/swagger.yaml put: consumes: @@ -8037,8 +10019,8 @@ paths: - application/vnd.oma.lwm2m+json deprecated: true description: '(DEPRECATED) 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) + 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. @@ -8078,15 +10060,15 @@ paths: -H "content-type: text/plain" \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -d ''1'' ```' operationId: updateResourceValue parameters: - - description: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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 @@ -8107,8 +10089,8 @@ paths: 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 + 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 @@ -8134,19 +10116,23 @@ paths: summary: (DEPRECATED) Write to a Resource or use write-attributes (notification rules) for a Resource. tags: - - Resources + - 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/current/service-api-references/device-management-connect.html#createAsyncRequest + - 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:** ``` @@ -8154,23 +10140,23 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/callback \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deregisterWebhook responses: - 204: &id019 + 204: &id025 description: Successfully deleted. - 401: &id017 + 401: &id023 description: Unauthorized. - 403: &id018 - description: Forbidden. The authorization token used is not an API key. + 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: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - Device data - notifications + x-origin: /home/circleci/project/notification-service/public/swagger.yaml get: description: 'Shows the current callback URL if it exists. @@ -8181,7 +10167,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/callback \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getWebhook @@ -8192,57 +10178,61 @@ paths: description: URL found. schema: $ref: '#/definitions/Webhook' - 401: *id017 - 403: *id018 + 401: *id023 + 403: *id024 404: description: The callback URL does not exist. summary: Check callback URL. tags: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - 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\ + \ 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.\ + \ 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\ + \ 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 (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**Configuration options:**\n\ - \nThe event notification channel provides configurations options defined in\ - \ [Serialization config](#SerializationConfigObjectV2).\n\n**Example:**\n\n\ - This 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\ + \ 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-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\"\ @@ -8263,19 +10253,19 @@ paths: 400: description: Given URL is not accessible, or other type of channel already exists. - 401: *id017 - 403: *id018 + 401: *id023 + 403: *id024 415: description: Unsupported Media Type. summary: Register a callback URL. tags: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - 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" + \ -H 'Authorization: Bearer '\n" operationId: getChannelMetadata responses: 200: @@ -8286,8 +10276,8 @@ paths: description: Channel was not found. summary: Get channel metadata. tags: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - Device data - notifications + x-origin: /home/circleci/project/notification-service/public/swagger.yaml /v2/notification/pull: delete: deprecated: true @@ -8305,7 +10295,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/pull \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteLongPollChannel @@ -8314,25 +10304,25 @@ paths: 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: *id017 + 401: *id023 summary: Delete notification Long Poll channel. tags: - - Notifications + - Device data - notifications x-deprecation: comment: Long polling is deprecated and should be used for development purposes only. - end_of_life_at: '2020-03-31T00:00:00+00:00' + 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/device-server/public/swagger.yaml + 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 API key can be ongoing + 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. @@ -8351,9 +10341,9 @@ paths: proper method to receive notifications is a **notification callback**. - 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. + 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:** @@ -8362,7 +10352,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/pull \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: longPollNotifications @@ -8377,7 +10367,7 @@ paths: description: No new notifications. 400: description: Other type of channel already exists. - 401: *id017 + 401: *id023 409: description: Conflict. Long poll request exists already. 410: @@ -8391,22 +10381,24 @@ paths: "channel exists" state. summary: Get notifications using Long Poll tags: - - Notifications + - Device data - notifications x-deprecation: comment: Long polling is deprecated and should be used for development purposes only. - end_of_life_at: '2020-03-31T00:00:00+00:00' + 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/device-server/public/swagger.yaml + x-origin: /home/circleci/project/notification-service/public/swagger.yaml /v2/notification/websocket: 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: '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:** @@ -8415,23 +10407,28 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/notification/websocket \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteWebsocket responses: - 204: *id019 - 401: *id017 - 403: *id018 + 204: *id025 + 401: *id023 + 403: *id024 404: description: Websocket channel doesn't exist. - summary: (PREVIEW) Delete websocket channel. + summary: Delete websocket channel. tags: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - Device data - notifications + x-origin: /home/circleci/project/notification-service/public/swagger.yaml get: - description: '(PREVIEW) Returns 200 with websocket connection status, if websocket - channel exists. + 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:** @@ -8442,7 +10439,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/notification/websocket \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getWebsocket @@ -8453,39 +10450,44 @@ paths: description: Websocket found. schema: $ref: '#/definitions/WebsocketChannel' - 401: *id017 - 403: *id018 + 401: *id023 + 403: *id024 404: description: No channel has been registered. - summary: (PREVIEW) Get websocket channel information. + summary: Get websocket channel information. tags: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - Device data - notifications + x-origin: /home/circleci/project/notification-service/public/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).\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**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\n\ - More about [notification sending logic](../integrate-web-app/event-notification.html#notification-sending-logic).\n\ + 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\"\ + \ \\\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 @@ -8502,34 +10504,48 @@ paths: $ref: '#/definitions/WebsocketChannel' 400: description: Other type of channel already exists. - 401: *id017 - 403: *id018 - summary: (PREVIEW) Register a websocket channel. + 401: *id023 + 403: *id024 + summary: Register a websocket channel. tags: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - Device data - notifications + x-origin: /home/circleci/project/notification-service/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\ + 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\nOnce the socket has been opened, it may be closed with one\ - \ of the following status codes.\n\n\n \n \n \n\ - \ \n \n \n \n \n\ - \ \n \n\ - \ \n \n \n \n \n \n\ - \ \n \n \n \n \n\ - \ \n \n \n
CodeDescription
1000Socket closed by the client.
1001Going away. Set\ - \ when another socket opens on the used channel, the channel is deleted with\ - \ a REST call, or the server is shutting down.
1008Policy violation. Set when the API\ - \ key is missing or invalid.
1011Unexpected 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**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```" + \ 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\ + \ \n \n \n \n\ + \ \n \n \n \n \n \n \n \ + \ \n\ + \ \n \n \n \n \n \n \n\ + \ \n \n \n \ + \ \n \n \n\ + \ \n \n \n\ + \ \n \n
CodeDescription
1000Socket closed\ + \ normally by the client, or by the server when the channel is deleted with\ + \ a REST call.
1001Going away. Set when another socket opens on the used channel.
1006Abnormal closure.\ + \ The client should reconnect after receiving this status code. A short reconnect\ + \ delay is recommended.
1008Policy violation. Set if the access key is lost or invalidated\ + \ after a successful WebSocket handshake.
1011Unexpected 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.
1012Service 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**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 @@ -8542,8 +10558,8 @@ paths: name: Upgrade 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}"`. + - 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 @@ -8573,16 +10589,19 @@ paths: description: Switching protocols. 400: description: Required header(s) missing. - 401: *id017 + 401: *id023 426: description: Upgrade required. Connect and/or Upgrade headers missing. - summary: (PREVIEW) Open the websocket. + 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: - - Notifications - x-origin: /home/circleci/project/device-server/public/swagger.yaml + - Device data - notifications + x-origin: /home/circleci/project/notification-service/public/swagger.yaml /v2/subscriptions: delete: - description: 'Removes pre-subscriptions. + description: 'Remove presubscriptions. **Example:** @@ -8591,7 +10610,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deletePreSubscriptions @@ -8601,14 +10620,14 @@ paths: 401: description: Unauthorized. 403: - description: 'Forbidden: the authorization token used is not an API key.' - summary: Remove pre-subscriptions. + description: 'Forbidden: the authorization token used is not an access key.' + summary: Remove presubscriptions. tags: - - Subscriptions + - Device data - subscriptions x-origin: /home/circleci/project/device-server/public/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 presubscription data. The server returns a JSON structure. + If there are no presubscribed resources, the server returns an empty array. **Example:** @@ -8617,7 +10636,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/subscriptions \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getPreSubscriptions @@ -8631,32 +10650,32 @@ paths: 401: description: Unauthorized. 403: - description: 'Forbidden: the authorization token used is not an API key.' - summary: Get pre-subscriptions. + description: 'Forbidden: the authorization token used is not an access key.' + summary: View presubscriptions. tags: - - Subscriptions + - Device data - subscriptions x-origin: /home/circleci/project/device-server/public/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\"\ + 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\"\ @@ -8666,14 +10685,19 @@ paths: \ 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." + \ 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 pre-subscriptions. + - description: Array of presubscriptions. in: body - name: presubsription + name: presubscription required: true schema: $ref: '#/definitions/PresubscriptionArray' @@ -8687,14 +10711,14 @@ paths: 401: description: Unauthorized. 403: - description: 'Forbidden: the authorization token used is not an API key.' - summary: Set pre-subscriptions + description: 'Forbidden: the authorization token used is not an access key.' + summary: Set presubscriptions. tags: - - Subscriptions + - Device data - subscriptions x-origin: /home/circleci/project/device-server/public/swagger.yaml /v2/subscriptions/{device-id}: delete: - description: 'Deletes all resource subscriptions in a single endpoint. + description: 'Delete all resource subscriptions in a single device. **Example:** @@ -8704,13 +10728,13 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteEndpointSubscriptions parameters: - - description: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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 @@ -8718,12 +10742,12 @@ paths: responses: 204: description: Successfully removed. - summary: Delete subscriptions from an endpoint. + summary: Delete all subscriptions on a device. tags: - - Subscriptions + - Device data - subscriptions x-origin: /home/circleci/project/device-server/public/swagger.yaml get: - description: 'Lists all subscribed resources from a single endpoint. + description: 'Retrieve a list of all subscribed resources on a single device. **Example:** @@ -8733,13 +10757,13 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getEndpointSubscriptions parameters: - - description: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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 @@ -8756,13 +10780,13 @@ paths: 404: description: Endpoint not found, or there are no subscriptions for that endpoint. - summary: Read endpoints subscriptions + summary: View all subscriptions on a device. tags: - - Subscriptions + - Device data - 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. + description: 'Remove an existing subscription to a resource. **Example:** @@ -8772,18 +10796,29 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}/{resourcePath} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteResourceSubscription parameters: - - description: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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. + - 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 @@ -8791,22 +10826,33 @@ paths: responses: 204: description: Successfully removed subscription. - 404: - description: Endpoint or resource not found. summary: Remove a subscription. tags: - - Subscriptions + - 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: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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. + - 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 @@ -8816,38 +10862,27 @@ paths: description: Resource is subscribed. 404: description: Resource is not subscribed. - summary: Read subscription status + summary: Read the subscription status for a specific resource. tags: - - Subscriptions + - Device data - 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. + description: ' + Subscribe to a resource to receive updated resource content, periodically + or based on a more sophisticated solution-dependent logic. - 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. + 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). - **Notification rules** + **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. - 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). - - 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. + You can subscribe to resources, objects and object instances. **Example:** @@ -8857,18 +10892,33 @@ paths: curl -X PUT https://api.us-east-1.mbedcloud.com/v2/subscriptions/{device-id}/{resourcePath} \ - -H ''Authorization: Bearer '' + -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: A unique Device Management device ID for the endpoint. The ID - must be an exact match. Do not use wildcards. + - 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. + - 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 @@ -8882,109 +10932,1944 @@ paths: 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 path. + $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. + + Note: This endpoint is restricted to administrators. + + + **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"}'' + + ```' + 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. + + + **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 + 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. + + + **Example:** + + ``` + + 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. + + Note: This endpoint is restricted to administrators. + + + **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"]'' + + ```' + 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. + + Note: This endpoint is restricted to administrators. + + + **Example:** + + ``` + + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups/add + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + + ```' + 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. + + Note: This endpoint is restricted to administrators. + + + **Example:** + + ``` + + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups/remove + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + + ```' + 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. + + Note: This endpoint is restricted to administrators. + + + **Example:** + + ``` + + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/reset-secret + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: resetAccountApiKeySecret + parameters: + - description: Account ID. + in: path + name: account_id + required: true + type: string + - description: The ID of the API key to reset. + in: path + 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: + '200': + description: Successful operation. + schema: + $ref: '#/definitions/ApiKeyInfoResp' + '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: An account or API key with the specified ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Reset the secret key. + tags: + - 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: + 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/accounts/{account_id}/applications + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getAllAccountApplications + 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 + produces: + - application/json + responses: + '200': + description: Successful operation. + schema: + $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: + - 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: 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/Application' + produces: + - application/json + responses: + '201': + description: New entity created. + schema: + $ref: '#/definitions/Application' + '400': + description: Error in input data, for example, missing 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 specified ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Create a new application. + tags: + - Tenant accounts - applications + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/accounts/{account_id}/applications/{application_id}: + delete: + description: 'Delete the application. + + Note: This endpoint is restricted to administrators. + + + **Example:** + + ``` + + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id} + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: deleteAccountApplication + 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 delete. + in: path + name: application_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 application with the specified ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Delete application. + tags: + - Tenant accounts - applications + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + get: + description: 'Retrieve details of an application. + + Note: This endpoint is restricted to administrators. + + + **Example:** + + ``` + + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id} + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getAccountApplication + 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 retrieve. + in: path + name: application_id + required: true + type: string + produces: + - application/json + responses: + '200': + description: Successful operation. + schema: + $ref: '#/definitions/Application' + '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 application. + tags: + - 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} + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"name": "TestApplication25"}'' + + ```' + operationId: updateAccountApplication + 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 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 operation. + schema: + $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: - - Subscriptions - x-origin: /home/circleci/project/device-server/public/swagger.yaml - /v3/accounts: + - 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: 'Returns an array of account objects, optionally filtered by status - and tier level. + description: 'Retrieve an array of access keys associated with the application. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts \ + 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: getAllAccounts + operationId: getAllAccountApplicationAccessKeys 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 + - description: The ID of the account to retrieve. + in: path + name: account_id + required: true 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 + - description: The ID of the application. + in: path + name: application_id + required: true type: string - - default: 1000 - description: The number of results to return (2-1000). Default 1000. + - 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. + - 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.' + 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: - limits, policies, sub_accounts, history.' + total_count.' 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. + - description: Status filter. in: query - name: properties + name: status__eq required: false type: string produces: @@ -8993,7 +12878,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/AccountInfoList' + $ref: '#/definitions/AccessKeyList' '401': description: Authentication failure. schema: @@ -9002,79 +12887,64 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get all accounts. + '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: - - Tenant accounts - accounts + - Tenant accounts - applications 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. + description: 'Create a new access key for the application. + + 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}/applications/{application_id}/access-keys + -d ''{"name": "MyKey1"}'' \ - -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: application/json'' ```' - operationId: createAccount + operationId: createAccountApplicationAccessKey parameters: - - description: Details of the account to create. + - 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/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 + $ref: '#/definitions/AccessKey' produces: - application/json responses: '201': - description: Successful operation. + description: New entity created. schema: - $ref: '#/definitions/AccountInfo' + $ref: '#/definitions/AccessKey' '400': - description: Error in input data, for example, invalid username. + description: Error in input data, for example, missing display name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -9085,45 +12955,53 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Create a new account. + '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 - accounts + - Tenant accounts - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/me: - get: - description: 'Retrieve detailed information about the account. + /v3/accounts/{account_id}/applications/{application_id}/access-keys/{access_key_id}: + delete: + description: 'Delete the access key associated with the application. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/me?include=policies + 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: getMyAccountInfo + operationId: deleteAccountApplicationAccessKey parameters: - - description: 'Comma-separated additional data to return. Currently supported: - limits, policies, sub_accounts.' - in: query - name: include - required: false + - description: The ID of the account to retrieve. + in: path + name: account_id + required: true type: string - - description: Property name to return from account-specific properties. - in: query - name: properties - required: false + - description: The ID of the application. + in: path + name: application_id + required: true + type: string + - 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: Successful operation. - schema: - $ref: '#/definitions/AccountInfo' + '204': + description: Deleted successfully. '401': description: Authentication failure. schema: @@ -9132,48 +13010,55 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get account info. + '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: - - Account - profile + - Tenant accounts - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: - consumes: - - application/json - description: 'Update the account. + get: + description: 'Retrieve details of an access key associated with the application. + + 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}/applications/{application_id}/access-keys/{access_key_id} + \ - -d ''{"phone_number": "12345678"}'' + -H ''Authorization: Bearer '' ```' - operationId: updateMyAccount + operationId: getAccountApplicationAccessKey parameters: - - description: Details of the account to update. - in: body - name: body + - description: The ID of the account to retrieve. + in: path + name: account_id required: true - schema: - $ref: '#/definitions/AccountUpdateReq' + type: string + - description: The ID of the application. + in: path + name: application_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/AccountInfo' - '400': - description: Error in input data format. - schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/AccessKey' '401': description: Authentication failure. schema: @@ -9182,76 +13067,65 @@ paths: 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 notifications for an account. - 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 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 - 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 + '404': + description: An account, application or access key with the specified ID + does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get notification events for an account. + summary: Get access key. tags: - - Account - email notification logs + - Tenant accounts - applications 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 + put: + description: 'Update access key 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}/access-keys/{access_key_id} + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"name": "TestAccessKey"}'' + + ```' + operationId: updateAccountApplicationAccessKey parameters: - - description: The ID of the notification entry to be retrieved. + - description: The ID of the account to retrieve. in: path - name: notification_id + name: account_id + required: true + type: string + - description: The ID of the application. + in: path + name: application_id + required: true + type: string + - 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: body + required: true + schema: + $ref: '#/definitions/AccessKey' produces: - application/json responses: '200': - description: successful operation + description: Successful operation. schema: - $ref: '#/definitions/NotificationEntry' + $ref: '#/definitions/AccessKey' '400': - description: Error in input data, missing or invalid parameters. + description: Error in input data, for example, invalid display name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -9259,48 +13133,70 @@ paths: 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, application or access key with the specified ID + does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get notification event details. + summary: Update access key details. tags: - - Account Admin + - Tenant accounts - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}: + /v3/accounts/{account_id}/applications/{application_id}/groups: get: - description: 'Retrieve detailed information about an account. + description: 'Retrieve an array of policy groups associated with an application. + 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 GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups + \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAccountInfo + operationId: getGroupsOfAccountApplication parameters: - - description: The ID of the account to fetch. + - 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.' + - 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: include + 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: Property name to return from account-specific properties. + - default: ASC + description: 'Record order based on creation. Acceptable values: ASC, DESC. + Default: ASC.' in: query - name: properties + 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: @@ -9309,7 +13205,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/AccountInfo' + $ref: '#/definitions/GroupSummaryList' '401': description: Authentication failure. schema: @@ -9319,55 +13215,61 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account with the given ID not found. + description: An account or application with the given ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get account info. + summary: Get policy groups of an application. tags: - - Tenant accounts - accounts + - Tenant accounts - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: + /v3/accounts/{account_id}/applications/{application_id}/groups/add: + post: consumes: - application/json - description: 'Update an account. + description: 'Add application to groups. + Note: This endpoint is restricted to administrators. - **Example:** + **Example:** ``` - curl -X PUT 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}/applications/{application_id}/groups/add + \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''{"phone_number": "12345678"}'' + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: updateAccount + operationId: addAccountApplicationToGroups parameters: - - description: The ID of the account to update. + - description: The ID of the account to retrieve. in: path name: account_id required: true type: string - - description: Details of the account to update. + - 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/AccountUpdateRootReq' + $ref: '#/definitions/GroupIdList' produces: - application/json responses: - '200': + '204': description: Successful operation. - schema: - $ref: '#/definitions/AccountInfo' '400': - description: Error in input data format. + description: Error in input data. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -9379,70 +13281,183 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account with the given ID not found. + description: An account, a group or application with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Update attributes of an existing account. + '409': + description: The application is a member of the group already. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Add application to a list of groups. tags: - - Tenant accounts - accounts + - Tenant accounts - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/api-keys: - get: - description: 'Retrieve API keys in an array, optionally filtered by the owner. + /v3/accounts/{account_id}/applications/{application_id}/groups/remove: + post: + consumes: + - application/json + description: 'Remove application from groups. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups/remove \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: getAllAccountApiKeys + operationId: removeAccountApplicationFromGroups parameters: - - description: Account ID. + - 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 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 application to remove from the group. + in: path + name: application_id + required: true type: string - - description: 'Comma-separated additional data to return. Currently supported: - total_count.' - in: query - name: include - required: false + - description: A list of IDs of the groups to update. + in: body + name: body + required: true + schema: + $ref: '#/definitions/GroupIdList' + produces: + - application/json + responses: + '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/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: + - Tenant accounts - applications + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/accounts/{account_id}/branding-colors: + delete: + description: 'Delete account branding colors 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-colors + -H ''Authorization: Bearer ''`' + operationId: deleteAllAccountColors + parameters: + - description: The ID of the account. + in: path + name: account_id + required: true 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 + 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 all 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: + delete: + description: 'Delete account dark theme branding colors. + + Note: This endpoint is restricted to administrators. + + + **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 - - description: Owner name filter. - in: query - name: owner__eq - required: false + 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. + + 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 + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getAccountDarkColors + parameters: + - description: The ID of the account. + in: path + name: account_id + required: true type: string produces: - application/json @@ -9450,7 +13465,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/ApiKeyInfoRespList' + $ref: '#/definitions/BrandingColorList' '401': description: Authentication failure. schema: @@ -9460,61 +13475,43 @@ 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 dark theme branding colors. tags: - - Tenant accounts - API keys - x-filter: - key: - - eq - owner: - - eq + - Tenant user interface configuration - colors x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - post: + put: 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"}'' - - ```' - operationId: createAccountApiKey + 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: Account ID. + - description: The ID of the account. in: path name: account_id required: true type: string - - description: Details of the API key to create. + - description: List of branding colors. in: body name: body required: true schema: - $ref: '#/definitions/ApiKeyInfoReq' + items: + $ref: '#/definitions/BrandingColorUpdate' + type: array produces: - application/json responses: - '201': - description: New entity created. - schema: - $ref: '#/definitions/ApiKeyInfoResp' + '204': + description: Colors have been set successfully. '400': - description: Error in input data, for example, missing display name. + description: Error in input data format. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -9526,38 +13523,41 @@ 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: Updates an array of dark theme branding colors. tags: - - Tenant accounts - API keys + - Tenant user interface configuration - colors x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/api-keys/{apikey_id}: + /v3/accounts/{account_id}/branding-colors/dark/{reference}: delete: - description: 'Delete an API key. + description: 'Resets the branding color to its dark theme default. + + 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} + 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: deleteAccountApiKey + operationId: resetAccountDarkColor parameters: - - description: Account ID. + - description: The ID of the account. in: path name: account_id required: true type: string - - description: The ID of the API key to delete. + - description: The name of the branding color. + enum: *id001 in: path - name: apikey_id + name: reference required: true type: string produces: @@ -9574,98 +13574,49 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or API key with the specified ID does not exist. + description: Color or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete the API key. + summary: Reset branding color to default. tags: - - Tenant accounts - API keys + - Tenant user interface configuration - colors 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 - 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-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: - description: 'Update API key details. + description: 'Retrieve the requested dark theme branding color. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id} + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference} \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''{"name": "TestApiKey25"}'' + -H ''Authorization: Bearer '' ```' - operationId: updateAccountApiKey + operationId: getAccountDarkColor parameters: - - description: Account ID. + - description: The ID of the account. in: path name: account_id required: true type: string - - description: The ID of the API key to update. + - description: The name of the branding color. + enum: *id001 in: path - name: apikey_id + name: reference 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, missing display name. - schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/BrandingColor' '401': description: Authentication failure. schema: @@ -9675,64 +13626,63 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account ID or API key with the specified ID does not exist. + description: Color or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Update API key details. + summary: Get dark theme branding color. tags: - - Tenant accounts - API keys + - Tenant user interface configuration - colors x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/api-keys/{apikey_id}/groups: - delete: + put: consumes: - application/json - deprecated: true - description: 'Remove API key from groups. + description: 'Update a dark theme branding color. + + 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}/groups + 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 ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -d ''{ "color": "#f3f93e" }'' ```' - operationId: removeAccountApiKeyFromGroups + operationId: setAccountDarkColor parameters: - - description: Account ID. + - 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. + - description: The name of the branding color. + enum: *id001 in: path - name: apikey_id + name: reference required: true type: string - - description: A list of IDs of the groups to update. + - description: The branding color. in: body name: body required: true schema: - items: - type: string - type: array + $ref: '#/definitions/BrandingColor' produces: - application/json responses: '200': - description: Successful operation. + description: Color has been set successfully. schema: - $ref: '#/definitions/ApiKeyInfoResp' + $ref: '#/definitions/BrandingColor' '400': - description: Error in input data. + description: Error in input data format. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -9744,76 +13694,36 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or API key with the specified ID does not exist. + description: Color or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API key from groups. + summary: Updates a dark theme branding color. 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: [] + - Tenant user interface configuration - colors x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - get: - description: 'Retrieve groups associated with the API key. - - - **Example:** + /v3/accounts/{account_id}/branding-colors/light: + delete: + description: 'Delete account light theme branding colors. - ``` + Note: This endpoint is restricted to administrators. - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups - \ - -H ''Authorization: Bearer '' + **Example usage:** - ```' - operationId: getGroupsOfAccountApikey + `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light + -H ''Authorization: Bearer ''`' + operationId: deleteAllAccountLightColors 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 - 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. + - description: The ID of the account. in: path - name: apikey_id + name: account_id required: true type: string produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/GroupSummaryList' + '204': + description: Colors have been deleted successfully. '401': description: Authentication failure. schema: @@ -9823,65 +13733,43 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or API key with the specified ID does not exist. + description: Account or branding colors not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get groups associated with the API key. + summary: Delete colors in the light theme. tags: - - Tenant accounts - API keys + - Tenant user interface configuration - colors x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - post: - consumes: - - application/json - deprecated: true - description: 'Add API key to groups. + get: + description: 'Retrieve light theme branding colors for an account. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''Authorization: Bearer '' ```' - operationId: addAccountApiKeyToGroups + operationId: getAccountLightColors parameters: - - description: Account ID. + - 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: - 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' + $ref: '#/definitions/BrandingColorList' '401': description: Authentication failure. schema: @@ -9891,70 +13779,43 @@ paths: 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: Account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Add API key to a list of groups. + summary: Get light theme branding colors. 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: [] + - Tenant user interface configuration - colors x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/api-keys/{apikey_id}/groups/add: - post: + put: consumes: - application/json - description: 'Add an API key to groups. - - - **Example:** - - ``` - - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups/add - \ - - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' - - ```' - operationId: addAccountApiKeyToListedGroups + 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: The ID of the Account. + - 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. + - description: List of branding colors. in: body name: body required: true schema: - $ref: '#/definitions/GroupIdList' + items: + $ref: '#/definitions/BrandingColorUpdate' + type: array produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/ApiKeyInfoResp' + '204': + description: Colors have been set successfully. '400': - description: Error in input data. + description: Error in input data format. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -9966,67 +13827,48 @@ paths: 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: Account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Add API key to a list of groups. + summary: Updates an array of light theme branding colors. tags: - - Tenant accounts - API keys + - Tenant user interface configuration - colors 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 - description: 'Remove an API key from groups. + /v3/accounts/{account_id}/branding-colors/light/{reference}: + delete: + description: 'Resets the branding color to its 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}/api-keys/{apikey_id}/groups/remove + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''Authorization: Bearer '' ```' - operationId: removeAccountApiKeyFromListedGroups + operationId: resetAccountLightColor 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. + - description: The name of the branding color. + enum: *id001 in: path - name: apikey_id + name: reference 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' + '204': + description: Deleted successfully. '401': description: Authentication failure. schema: @@ -10036,57 +13878,48 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or API key with the specified ID does not exist. + description: Color or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API key from groups. + summary: Reset branding color to default. tags: - - Tenant accounts - API keys + - Tenant user interface configuration - colors 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. + get: + description: 'Retrieve the requested light theme branding color. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/reset-secret - \ + 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: resetAccountApiKeySecret + operationId: getAccountLightColor parameters: - - description: Account ID. + - description: The ID of the account. in: path name: account_id required: true type: string - - description: The ID of the API key to reset. + - description: The name of the branding color. + enum: *id001 in: path - name: apikey_id + name: reference 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. schema: - $ref: '#/definitions/ApiKeyInfoResp' - '400': - description: Error in input data format. - schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/BrandingColor' '401': description: Authentication failure. schema: @@ -10096,34 +13929,65 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or API key with the specified ID does not exist. + description: Color or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Reset the secret key. + summary: Get light theme branding color. tags: - - Tenant accounts - API keys + - Tenant user interface configuration - colors x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-colors: - delete: - description: 'Delete account branding colors for all themes. + put: + consumes: + - application/json + description: 'Update a light theme branding color. + Note: This endpoint is restricted to administrators. - **Example usage:** - `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors - -H ''Authorization: Bearer API_KEY''`' - operationId: deleteAllAccountColors + **Example:** + + ``` + + curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id)/branding-colors/light/primary + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{ "color": "purple" }'' + + ```' + operationId: setAccountLightColor 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 + - description: The branding color. + in: body + name: body + required: true + schema: + $ref: '#/definitions/BrandingColor' produces: - application/json responses: - '204': - description: Colors have been deleted successfully. + '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: @@ -10133,23 +13997,25 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or branding colors not found. + description: Color or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete all colors. + summary: Updates light 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/dark: + /v3/accounts/{account_id}/branding-images: delete: - description: 'Delete account dark theme branding colors. + 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-colors/dark - -H ''Authorization: Bearer API_KEY''`' - operationId: deleteAllAccountDarkColors + **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: The ID of the account. in: path @@ -10160,7 +14026,7 @@ paths: - application/json responses: '204': - description: Colors have been deleted successfully. + description: Images have been deleted successfully. '401': description: Authentication failure. schema: @@ -10170,28 +14036,25 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or branding colors not found. + description: Account or branding images not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete colors in the dark theme. + summary: Delete all images. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - get: - description: 'Retrieve dark theme branding colors for an account. - - - **Example:** + /v3/accounts/{account_id}/branding-images/dark: + delete: + description: 'Delete account dark theme branding images. - ``` + Note: This endpoint is restricted to administrators. - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark - \ - -H ''Authorization: Bearer '' + **Example usage:** - ```' - operationId: getAccountDarkColors + `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 @@ -10201,10 +14064,8 @@ paths: produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/BrandingColorList' + '204': + description: Images have been deleted successfully. '401': description: Authentication failure. schema: @@ -10214,44 +14075,43 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account not found. + description: Account or branding images not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get dark theme branding colors. + summary: Delete images in the dark theme. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: - 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 + get: + description: 'Retrieve the metadata of all dark theme branding images. + + 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 + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getAllAccountDarkImageData 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/BrandingColor' - type: array produces: - application/json responses: - '204': - description: Colors have been set successfully. - '400': - description: Error in input data format. + '200': + description: Successful operation. schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/BrandingImageList' '401': description: Authentication failure. schema: @@ -10264,35 +14124,36 @@ paths: description: Account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Updates an array of dark theme branding colors. + summary: Get metadata of all dark theme images. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-colors/dark/{reference}: - delete: - description: 'Resets the branding color of a tenant account to its dark theme - default. + /v3/accounts/{account_id}/branding-images/dark/{reference}: + get: + description: 'Retrieve metadata of one account dark theme branding image. + + 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 GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: resetAccountDarkColor + operationId: getAccountDarkImageData parameters: - description: The ID of the account. in: path name: account_id required: true type: string - - description: The name of the branding color. - enum: *id020 + - description: Name of the branding images (icon or picture). + enum: *id026 in: path name: reference required: true @@ -10300,8 +14161,10 @@ paths: produces: - application/json responses: - '204': - description: Deleted successfully. + '200': + description: Successful operation. + schema: + $ref: '#/definitions/BrandingImage' '401': description: Authentication failure. schema: @@ -10311,36 +14174,39 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Color or account not found. + description: Unknown image reference, or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Reset branding color to default. + summary: Get metadata of a dark theme image. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - get: - description: 'Retrieve the requested dark theme branding color. + /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/{account_id}/branding-colors/dark/{reference} + 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: getAccountDarkColor + operationId: clearAccountDarkImage parameters: - description: The ID of the account. in: path name: account_id required: true type: string - - description: The name of the branding color. - enum: *id020 + - description: Name of the branding images (icon or picture). + enum: *id026 in: path name: reference required: true @@ -10348,10 +14214,8 @@ paths: produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/BrandingColor' + '204': + description: Image reverted successfully. '401': description: Authentication failure. schema: @@ -10361,61 +14225,71 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Color or account not found. + description: Unknown image reference, or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get dark theme branding color. + summary: Revert an image to dark theme default. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: + /v3/accounts/{account_id}/branding-images/dark/{reference}/upload: + post: consumes: - - application/json - description: 'Update a dark theme branding color of a tenant 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 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}/branding-images/dark/{reference}/upload \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ + -H ''Authorization: Bearer '' - -d ''{ "color": "#f3f93e" }'' + -H ''content-type: image/png'' --data-binary ''@myimage.png'' ```' - operationId: setAccountDarkColor + operationId: uploadAccountDarkImage parameters: - description: The ID of the account. in: path name: account_id required: true type: string - - description: The name of the branding color. - enum: *id020 + - description: Name of the branding images (icon or picture). + enum: *id026 in: path name: reference required: true type: string - - description: The branding color. + - description: The image in PNG or JPEG format. in: body name: body required: true schema: - $ref: '#/definitions/BrandingColor' + $ref: '#/definitions/Image' produces: - application/json responses: - '200': - description: Color has been set successfully. + '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/BrandingColor' + $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': @@ -10427,34 +14301,57 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Color or account not found. + description: Unknown image reference, or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Updates a dark theme branding color. + summary: Upload a dark theme image. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-colors/light: - delete: - description: 'Delete account light theme branding colors. - - - **Example usage:** + /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. - `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light - -H ''Authorization: Bearer API_KEY''`' - operationId: deleteAllAccountLightColors + 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: - '204': - description: Colors have been deleted successfully. + '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: @@ -10464,28 +14361,25 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or branding colors not found. + description: Unknown image reference. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete colors in the light theme. + summary: Upload a dark theme image. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - get: - description: 'Retrieve light theme branding colors for an 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/{account_id}/branding-colors/light - \ - -H ''Authorization: Bearer '' + **Example usage:** - ```' - operationId: getAccountLightColors + `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light + -H ''Authorization: Bearer ''`' + operationId: deleteAllAccountLightImages parameters: - description: The ID of the account. in: path @@ -10495,10 +14389,8 @@ paths: produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/BrandingColorList' + '204': + description: Images have been deleted successfully. '401': description: Authentication failure. schema: @@ -10508,44 +14400,43 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account not found. + description: Account or branding images not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get light theme branding colors. + summary: Delete images in the light theme. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images 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 + get: + description: 'Retrieve the metadata of all light theme branding images. + + 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 + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getAllAccountLightImageData 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/BrandingColor' - type: array produces: - application/json responses: - '204': - description: Colors have been set successfully. - '400': - description: Error in input data format. + '200': + description: Successful operation. schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/BrandingImageList' '401': description: Authentication failure. schema: @@ -10558,35 +14449,36 @@ paths: description: Account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Updates an array of light theme branding colors. + summary: Get metadata of all light theme images. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-colors/light/{reference}: - delete: - description: 'Resets the branding color of a tenant account to its light theme - default. + /v3/accounts/{account_id}/branding-images/light/{reference}: + get: + description: 'Retrieve metadata for one account light theme branding image. + + 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 GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: resetAccountLightColor + operationId: getAccountLightImageData parameters: - description: The ID of the account. in: path name: account_id required: true type: string - - description: The name of the branding color. - enum: *id020 + - description: Name of the branding images (icon or picture). + enum: *id026 in: path name: reference required: true @@ -10594,8 +14486,10 @@ paths: produces: - application/json responses: - '204': - description: Deleted successfully. + '200': + description: Successful operation. + schema: + $ref: '#/definitions/BrandingImage' '401': description: Authentication failure. schema: @@ -10605,35 +14499,37 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Color or account not found. + description: Unknown image reference, or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Reset branding color to default. + summary: Get metadata of a light theme image. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - get: - description: 'Retrieve the requested light theme branding color. + /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:** - ``` + **Example:** - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference} + ```curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/clear + \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAccountLightColor + operationId: clearAccountLightImage parameters: - description: The ID of the account. in: path name: account_id required: true type: string - - description: The name of the branding color. - enum: *id020 + - description: Name of the branding images (icon or picture). + enum: *id026 in: path name: reference required: true @@ -10641,10 +14537,8 @@ paths: produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/BrandingColor' + '204': + description: Image reverted successfully. '401': description: Authentication failure. schema: @@ -10654,61 +14548,71 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Color or account not found. + description: Unknown image reference, or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get light theme branding color. + summary: Revert an image to light theme default. tags: - - Tenant user interface configuration - colors + - 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: + post: consumes: - - application/json - description: 'Update a light theme branding color of a tenant account. + - 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:** ``` - 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}/branding-images/light/{reference}/upload \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ + -H ''Authorization: Bearer '' \ - -d ''{ "color": "purple" }'' + -H ''content-type: image/png'' --data-binary ''@myimage.png'' ```' - operationId: setAccountLightColor + operationId: uploadAccountLightImage parameters: - description: The ID of the account. in: path name: account_id required: true type: string - - description: The name of the branding color. - enum: *id020 + - description: Name of the branding images (icon or picture). + enum: *id026 in: path name: reference required: true type: string - - description: The branding color. + - description: The image in PNG or JPEG format. in: body name: body required: true schema: - $ref: '#/definitions/BrandingColor' + $ref: '#/definitions/Image' produces: - application/json responses: - '200': - description: Color set successfully. + '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/BrandingColor' + $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': @@ -10720,34 +14624,57 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Color or account not found. + description: Unknown image reference, or account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Updates light theme branding color. + summary: Upload a light theme image. tags: - - Tenant user interface configuration - colors + - Tenant user interface configuration - images 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. - - - **Example usage:** + /v3/accounts/{account_id}/branding-images/light/{reference}/upload-multipart: + post: + consumes: + - multipart/form-data + description: 'Upload a new account branding image as form data in PNG or JPEG + format. - `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images - -H ''Authorization: Bearer API_KEY''`' - operationId: deleteAllAccountImages + Note: This endpoint is restricted to administrators.' + operationId: uploadAccountLightImageMultipart 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: - '204': - description: Images have been deleted successfully. + '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: @@ -10757,34 +14684,59 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or branding images not found. + description: Unknown image reference. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete all images. + summary: Upload a light 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: - delete: - description: 'Delete account dark theme branding images. - - - **Example usage:** + /v3/accounts/{account_id}/identity-providers: + get: + consumes: + - application/json + description: 'Retrieve an array of identity providers. - `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark - -H ''Authorization: Bearer API_KEY''`' - operationId: deleteAllAccountDarkImages + Note: This endpoint is restricted to administrators.' + operationId: getAllAccountIdentityProviders parameters: - description: The ID of the account. 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 produces: - application/json responses: - '204': - description: Images have been deleted successfully. + '200': + description: Successful operation. + schema: + $ref: '#/definitions/IdentityProviderList' '401': description: Authentication failure. schema: @@ -10794,41 +14746,58 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or branding images not found. + description: Account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete images in the dark theme. + summary: Get all identity providers. tags: - - Tenant user interface configuration - images + - Tenant accounts - identity providers x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - get: - description: 'Retrieve the metadata of all dark theme branding images. - - - **Example:** - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark - \ - - -H ''Authorization: Bearer '' + post: + consumes: + - application/json + description: 'Create a new identity provider. - ```' - operationId: getAllAccountDarkImageData + Note: This endpoint is restricted to administrators.' + operationId: createAccountIdentityProvider parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true - type: string + 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. + in: body + name: body + required: true + schema: + $ref: '#/definitions/IdentityProviderCreationReq' produces: - application/json responses: - '200': - description: Successful operation. + '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/BrandingImageList' + $ref: '#/definitions/IdentityProviderInfo' + '400': + description: Error in input data, for example, too long name. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -10841,94 +14810,71 @@ paths: description: Account not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get metadata of all dark theme images. + summary: Create a new identity provider. tags: - - Tenant user interface configuration - images + - Tenant accounts - identity providers 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. - - - **Example:** - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference} - \ - - -H ''Authorization: Bearer '' + /v3/accounts/{account_id}/identity-providers/{identity_provider_id}: + delete: + description: 'Delete an identity provider by ID. - ```' - operationId: getAccountDarkImageData + Note: This endpoint is restricted to administrators.' + operationId: deleteAccountIdentityProvider parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: Name of the branding images (icon or picture). - enum: *id021 + - description: The ID of the identity provider to delete. in: path - name: reference + name: identity_provider_id required: true type: string produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/BrandingImage' + '204': + description: Deleted successfully. '401': description: Authentication failure. schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. + description: Forbidden, or identity provider is in use. schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference, or account not found. + description: An account or identity provider not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get metadata of a dark theme image. + summary: Delete an identity provider by ID. tags: - - Tenant user interface configuration - images + - Tenant accounts - identity providers 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. - - - **Example:** - - ``` - - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}/clear - \ - - -H ''Authorization: Bearer '' + get: + description: 'Retrieve an identity provider. - ```' - operationId: clearAccountDarkImage + Note: This endpoint is restricted to administrators.' + operationId: getAccountIdentityProvider parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: Name of the branding images (icon or picture). - enum: *id021 + - description: The ID of the identity provider to retrieve. in: path - name: reference + name: identity_provider_id required: true type: string produces: - application/json responses: - '204': - description: Image reverted successfully. + '200': + description: Successful operation. + schema: + $ref: '#/definitions/IdentityProviderInfo' '401': description: Authentication failure. schema: @@ -10938,69 +14884,54 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference, or account not found. + description: An account or identity provider not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Revert an image to dark theme default. + summary: Get an identity provider. tags: - - Tenant user interface configuration - images + - Tenant accounts - identity providers x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-images/dark/{reference}/upload: - post: + put: consumes: - - image/png - - image/jpeg - description: 'Upload a new account dark theme branding image in PNG or JPEG - format. - - - **Example:** - - ``` - - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}/upload - \ - - -H ''Authorization: Bearer '' - - -H ''content-type: image/png'' --data-binary ''@myimage.png'' + - application/json + description: 'Update an existing identity provider. - ```' - operationId: uploadAccountDarkImage + Note: This endpoint is restricted to administrators.' + operationId: updateAccountIdentityProvider parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: Name of the branding images (icon or picture). - enum: *id021 + - description: The ID of the identity provider to update. in: path - name: reference + name: identity_provider_id required: true type: string - - description: The image in PNG or JPEG format. + - 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 schema: - $ref: '#/definitions/Image' + $ref: '#/definitions/IdentityProviderUpdateReq' 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/IdentityProviderInfo' '400': - description: Error in input data format, for example, image is too large. + description: Error in input data, for example, missing name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11012,55 +14943,43 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference, or account not found. + description: An account or identity provider not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Upload a dark theme image. + summary: Update an existing identity provider. tags: - - Tenant user interface configuration - images + - Tenant accounts - identity providers 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}/identity-providers/{identity_provider_id}/delete-sp-certificate: 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: 'Delete a service provider certificate. + + Note: This endpoint is restricted to administrators.' + operationId: deleteAccountSpCertificate parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: Name of the branding images (icon or picture). - enum: *id021 + - description: The ID of the identity provider whose certificate should be deleted. in: path - name: reference + name: identity_provider_id 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: Image uploaded successfully. + '200': + description: Successful operation. headers: Content-Location: - description: Location of the image metadata. - type: string - Location: - description: Location of the image binary. + description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id} type: string schema: - $ref: '#/definitions/BrandingImage' - '400': - description: Error in input data format, for example, image is too large. - schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/IdentityProviderInfo' '401': description: Authentication failure. schema: @@ -11070,34 +14989,54 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference. + description: An account or identity provider not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Upload a dark theme image. + summary: Delete the service provider certificate. tags: - - Tenant user interface configuration - images + - Tenant accounts - identity providers x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-images/light: - delete: - description: 'Delete account light theme branding images. - - - **Example usage:** + /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/generate-sp-certificate: + post: + consumes: + - application/json + description: 'Generate a new service provider certificate. - `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light - -H ''Authorization: Bearer API_KEY''`' - operationId: deleteAllAccountLightImages + Note: This endpoint is restricted to administrators.' + operationId: generateAccountSpCertificate parameters: - - description: The ID of the account. + - 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. + in: body + name: body + required: true + schema: + $ref: '#/definitions/CertificateGenerationReq' produces: - application/json responses: - '204': - description: Images have been deleted successfully. + '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: @@ -11107,41 +15046,48 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or branding images not found. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Delete images in the light theme. - tags: - - Tenant user interface configuration - images - x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - 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 '' + description: An 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: 'Refresh an OIDC IdP''s signing keys. - ```' - operationId: getAllAccountLightImageData + Note: This endpoint is restricted to administrators.' + operationId: refreshAccountJwks parameters: - - description: The ID of the account. + - 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 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/BrandingImageList' + $ref: '#/definitions/IdentityProviderInfo' + '400': + description: Not an OIDC IdP or JWKS URI is unspecified. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -11151,48 +15097,38 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account not found. + description: An account or identity provider not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get metadata of all light theme images. + summary: Refresh the OIDC signing keys. tags: - - Tenant user interface configuration - images + - Tenant accounts - identity providers x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-images/light/{reference}: + /v3/accounts/{account_id}/limitations: get: - description: 'Retrieve metadata for one account light theme branding image. - - - **Example:** - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference} - \ - - -H ''Authorization: Bearer '' + description: 'Retrieve an array of entitlement limitations. - ```' - operationId: getAccountLightImageData + Note: This endpoint is restricted to administrators.' + operationId: aggregatorGetAccountLimitations 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: *id021 - in: path - name: reference - required: true + - description: Filter for finding account limitations by inheritance. True returns + also inherited limitations. False returns only non-inherited ones. + in: query + name: inherited__eq + required: false type: string produces: - application/json responses: '200': - description: Successful operation. + description: successful operation schema: - $ref: '#/definitions/BrandingImage' + $ref: '#/definitions/AccountLimitationList' '401': description: Authentication failure. schema: @@ -11202,44 +15138,40 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference, or account not found. + description: An account with the given ID not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get metadata of a light theme image. + summary: Get entitlement limitations. tags: - - Tenant user interface configuration - images + - Tenant accounts - entitlement limitations + x-filter: + inherited: + - eq 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. - - - **Example:** - - ```curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/clear - \ - - -H ''Authorization: Bearer '' + /v3/accounts/{account_id}/limitations/{limitation_id}: + get: + description: 'Retrieve an entitlement limitation. - ```' - operationId: clearAccountLightImage + 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: Name of the branding images (icon or picture). - enum: *id021 + - description: The ID of the limitation to be fetched. in: path - name: reference + name: limitation_id required: true type: string produces: - application/json responses: - '204': - description: Image reverted successfully. + '200': + description: successful operation + schema: + $ref: '#/definitions/AccountLimitation' '401': description: Authentication failure. schema: @@ -11249,69 +15181,53 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference, or account not found. + description: Limitation or account with the given ID not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Revert an image to light theme default. + summary: Get an entitlement limitation. tags: - - Tenant user interface configuration - images + - Tenant accounts - entitlement limitations x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /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. - - - **Example:** - - ``` - - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/upload - \ - - -H ''Authorization: Bearer '' \ - - -H ''content-type: image/png'' --data-binary ''@myimage.png'' + /v3/accounts/{account_id}/notifications: + get: + description: 'Retrieve an array of email notification logs. - ```' - operationId: uploadAccountLightImage + Note: This endpoint is restricted to administrators.' + operationId: getAccountNofificationEntries parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: Name of the branding images (icon or picture). - enum: *id021 - in: path - name: reference - 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: The image in PNG or JPEG format. - in: body - name: body - required: true - schema: - $ref: '#/definitions/Image' 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/NotificationEntryList' '400': - description: Error in input data format, for example, image is too large. + description: Error in input data, or missing or invalid parameters. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11319,57 +15235,43 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. + description: Forbidden schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference, or account not found. + description: An account with the given ID not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Upload a light theme image. + summary: Get email notifications. tags: - - Tenant user interface configuration - images + - Tenant accounts - email notification logs x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/branding-images/light/{reference}/upload-multipart: - post: - consumes: - - multipart/form-data - description: Upload a new account branding image as form data in PNG or JPEG - format. - operationId: uploadAccountLightImageMultipart + /v3/accounts/{account_id}/notifications/{notification_id}: + get: + description: 'Retrieve an email notifications log entry. + + Note: This endpoint is restricted to administrators.' + operationId: getAccountNofificationEntry parameters: - - description: The ID of the account. + - description: The ID of the account for which this notification should be retrieved. in: path name: account_id required: true type: string - - description: Name of the branding images (icon or picture). - enum: *id021 + - description: The ID of the notification entry to be retrieved. in: path - name: reference + name: notification_id 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: 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/NotificationEntry' '400': - description: Error in input data format, for example, image is too large. + description: Error in input data, missing or invalid parameters. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11377,25 +15279,37 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. + description: Forbidden schema: $ref: '#/definitions/ErrorResponse' '404': - description: Unknown image reference. + description: No entry found for the given ID. schema: $ref: '#/definitions/ErrorResponse' - summary: Upload a light theme image. + summary: Get an email notification. tags: - - Tenant user interface configuration - images + - Tenant accounts - email notification logs x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/identity-providers: + /v3/accounts/{account_id}/policy-groups: get: - consumes: - - application/json - description: Retrieve identity providers in an array. - operationId: getAllAccountIdentityProviders + 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}/policy-groups + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getAllAccountGroups parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true @@ -11407,14 +15321,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 @@ -11425,13 +15339,18 @@ paths: 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/IdentityProviderList' + $ref: '#/definitions/GroupSummaryList' '401': description: Authentication failure. schema: @@ -11441,54 +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 all identity providers. + summary: Get policy groups. tags: - - Tenant accounts - identity providers + - Tenant accounts - policy groups + x-filter: + name: + - 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: '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 - - 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: Details of the group to create. in: body name: body required: true schema: - $ref: '#/definitions/IdentityProviderCreationReq' + $ref: '#/definitions/GroupCreationInfo' 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/GroupSummary' '400': - description: Error in input data, for example, too long name. + description: Error in input data, for example, invalid group name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11500,26 +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: Create a new identity provider. + '409': + description: A group with that name already exists. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Create a new group. tags: - - Tenant accounts - identity providers + - Tenant accounts - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/identity-providers/{identity_provider_id}: + /v3/accounts/{account_id}/policy-groups/{group_id}: delete: - description: Delete an identity provider by ID. - operationId: deleteAccountIdentityProvider + 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}/policy-groups/{group_id} + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: deleteAccountGroup 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 group to delete. in: path - name: identity_provider_id + name: group_id required: true type: string produces: @@ -11532,29 +15475,43 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden, or identity provider is in use. + description: Forbidden, or Administrators group cannot be removed. schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or identity provider not found. + description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete an identity provider by ID. + summary: Delete a group. tags: - - Tenant accounts - identity providers + - Tenant accounts - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: Manage identity providers of a tenant account. - operationId: getAccountIdentityProvider + 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}/policy-groups/{group_id} + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getAccountGroupSummary 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 group to retrieve. in: path - name: identity_provider_id + name: group_id required: true type: string produces: @@ -11563,7 +15520,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/IdentityProviderInfo' + $ref: '#/definitions/GroupSummary' '401': description: Authentication failure. schema: @@ -11573,52 +15530,63 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or identity provider not found. + description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Retrieve identity provider by ID. + summary: Get policy group. tags: - - Tenant accounts - identity providers + - Tenant accounts - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: + post: consumes: - application/json - description: Update an existing identity provider. - operationId: updateAccountIdentityProvider + description: 'Add users and API keys to 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} + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' + + ```' + operationId: addSubjectsToAccountGroup 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 group to update. in: path - name: identity_provider_id + name: group_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 list of users and API keys to add to the group. in: body name: body required: true schema: - $ref: '#/definitions/IdentityProviderUpdateReq' + $ref: '#/definitions/SubjectList' produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/IdentityProviderInfo' + $ref: '#/definitions/GroupSummary' '400': - description: Error in input data, for example, missing name. + description: Error in input data, for example, the user or API key does + not exist. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11630,94 +15598,66 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or identity provider not found. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Update an existing identity provider. - 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}/delete-sp-certificate: - post: - consumes: - - application/json - description: Delete a service provider certificate. - operationId: deleteAccountSpCertificate - 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 - 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' - '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 or identity provider not found. + '409': + description: The user of this API key is a member of the group already. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete the service provider certificate. + summary: Add members to a group. tags: - - Tenant accounts - identity providers + - Tenant accounts - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/generate-sp-certificate: - post: + put: consumes: - application/json - description: Generate a new service provider certificate. - operationId: generateAccountSpCertificate + 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: The ID of the identity provider for which to generate a certificate. + - description: The ID of the group to update. in: path - name: identity_provider_id + name: group_id required: true type: string - - description: Details of the service provider certificate to be generated. + - description: Details of the group to create. in: body name: body required: true schema: - $ref: '#/definitions/CertificateGenerationReq' + $ref: '#/definitions/GroupUpdateInfo' 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/GroupSummary' '400': - description: Error in input data, for example, invalid certificate validity - value. + description: Error in input data, for example, the group name is too long. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11729,44 +15669,65 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or identity provider not found. + description: A group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Generate a new service provider certificate. + summary: Update the group name. tags: - - Tenant accounts - identity providers + - Tenant accounts - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/identity-providers/{identity_provider_id}/refresh-jwks: - post: + /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys: + delete: consumes: - application/json - description: Refreshes an OIDC IdP's signing keys. - operationId: refreshAccountJwks + 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}/policy-groups/{group_id}/api-keys + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' + + ```' + operationId: removeApiKeysFromAccountGroup parameters: - - description: The ID of the account to be managed. + - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the identity provider for which to refresh the signing - keys. + - description: The ID of the group to remove API keys from. in: path - name: identity_provider_id + 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. - headers: - Content-Location: - description: /v3/accounts/{account_id}/identity-providers/{identity_provider_id} - type: string schema: - $ref: '#/definitions/IdentityProviderInfo' + $ref: '#/definitions/GroupSummary' '400': - description: Not an OIDC IdP or JWKS URI is unspecified. + description: Error in input data, for example, the array of API keys is + missing. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11778,36 +15739,79 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or identity provider not found. + description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Refreshes the OIDC signing keys. + summary: Remove API keys from a group. tags: - - Tenant accounts - identity providers + - 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 - /v3/accounts/{account_id}/limitations: get: - description: An endpoint for retrieving all limitations of an account. - operationId: aggregatorGetAccountLimitations + 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}/policy-groups/{group_id}/api-keys + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getApiKeysOfAccountGroup parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: Filter for finding account limitations by inheritance. True returns - also inherited limitations. False returns only non-inherited ones. + - description: The ID of the group to retrieve API keys for. + in: path + 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: inherited__eq + 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 + description: Successful operation. schema: - $ref: '#/definitions/AccountLimitationList' + $ref: '#/definitions/ApiKeyInfoRespList' '401': description: Authentication failure. schema: @@ -11817,38 +15821,64 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account with the given ID not found. + description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get all limitations of an account. + summary: Get API keys in a group. tags: - - Tenant accounts - limitations - x-filter: - inherited: - - eq + - 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 - /v3/accounts/{account_id}/limitations/{limitation_id}: - get: - description: An endpoint for retrieving a limitation of an account. - operationId: aggregatorGetAccountLimitation + post: + deprecated: true + description: 'Add API keys to account 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}/api-keys + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: addApiKeysToAccountGroup parameters: - description: The ID of the account. in: path name: account_id required: true type: string - - description: The ID of the limitation to be fetched. + - description: The ID of the group to retrieve API keys for. in: path - name: limitation_id + 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 + description: Successful operation. schema: - $ref: '#/definitions/AccountLimitation' + $ref: '#/definitions/GroupSummary' + '400': + description: Successful operation. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -11858,51 +15888,71 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Limitation or account with the given ID not found. + description: An account or group with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + '409': + description: The API Key is a member of the group or account already. schema: $ref: '#/definitions/ErrorResponse' - summary: Get a limitation of an account. + summary: Add API keys to Account group. tags: - - Tenant accounts - limitations + - 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}/notifications: - get: - description: Retrieve notifications. - operationId: getAccountNofificationEntries + /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 POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/add + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' + + ```' + operationId: addListedApiKeysToAccountGroup parameters: - - description: Account ID. + - description: The ID of the account. 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 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/NotificationEntryList' + $ref: '#/definitions/GroupSummary' '400': - description: Error in input data, or missing or invalid parameters. + description: Successful operation. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11910,41 +15960,78 @@ paths: 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 group with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + '409': + description: The API key is a member of the account group already. schema: $ref: '#/definitions/ErrorResponse' - summary: Get the notification events of an account. + summary: Add API keys to account group. tags: - - Tenant accounts - email notification logs + - 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}/notifications/{notification_id}: - get: - description: An endpoint for retrieving notification event details of an account. - operationId: getAccountNofificationEntry + /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 POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/remove + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' + + ```' + operationId: removeListedApiKeysFromAccountGroup parameters: - - description: The ID of the account for which this notification should be retrieved. + - description: The ID of the account. in: path name: account_id required: true type: string - - description: The ID of the notification entry to be retrieved. + - description: The ID of the group to remove API keys from. in: path - name: notification_id + 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 + description: Successful operation. schema: - $ref: '#/definitions/NotificationEntry' + $ref: '#/definitions/GroupSummary' '400': - description: Error in input data, missing or invalid parameters. + description: Error in input data, for example, the array of API keys is + missing. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -11952,39 +16039,49 @@ paths: 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 group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get a notification event of an account. + summary: Remove API keys from a group. tags: - - Aggregator Account Admin + - 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}/policy-groups: + /v3/accounts/{account_id}/policy-groups/{group_id}/applications: get: - description: 'Retrieve all group information. + description: 'Retrieve an array of applications associated with a policy group. **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}/policy-groups/{group_id}/applications \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAllAccountGroups + operationId: getApplicationsOfAccountGroup 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 applications for. + in: path + name: group_id + required: true + type: string - default: 50 description: The number of results to return (2-1000). Default 50. format: int32 @@ -11992,14 +16089,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 @@ -12010,18 +16107,13 @@ paths: 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/GroupSummaryList' + $ref: '#/definitions/ApplicationList' '401': description: Authentication failure. schema: @@ -12031,58 +16123,59 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account with the specified ID does not exist. + description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get all group information. + summary: Get applications in a group. tags: - Tenant accounts - policy groups - x-filter: - name: - - eq x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/accounts/{account_id}/policy-groups/{group_id}/applications/add: post: - consumes: - - application/json - description: 'Create a new group. + description: 'Add applications to account groups. **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}/policy-groups/{group_id}/applications/add \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''{"name": "MyGroup1"}'' + -d ''{"applications": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' ```' - operationId: createAccountGroup + operationId: addListedApplicationsToAccountGroup parameters: - - description: Account ID. + - description: The ID of the account. in: path name: account_id required: true type: string - - description: Details of the group to create. + - description: The ID of the group to add applications to. + in: path + name: group_id + required: true + type: string + - description: A list of applications to add to the group. in: body name: body required: true schema: - $ref: '#/definitions/GroupCreationInfo' + $ref: '#/definitions/SubjectList' produces: - application/json responses: - '201': - description: New entity created. + '200': + description: Successful operation. schema: $ref: '#/definitions/GroupSummary' '400': - description: Error in input data, for example, invalid group name. + description: Successful operation. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -12094,98 +16187,221 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account with the specified ID does not exist. + description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' '409': - description: A group with that name already exists. + description: The application is a member of the group already. schema: $ref: '#/definitions/ErrorResponse' - summary: Create a new group. + summary: Add applications to account group. tags: - Tenant accounts - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/policy-groups/{group_id}: - delete: - description: 'Delete a group. + /v3/accounts/{account_id}/policy-groups/{group_id}/applications/remove: + post: + consumes: + - application/json + description: 'Remove applications from groups. **Example:** ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id} + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications/remove \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"applications": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' ```' - operationId: deleteAccountGroup + operationId: removeListedApplicationsFromAccountGroup + parameters: + - description: The ID of the account. + in: path + name: account_id + required: true + type: string + - description: The ID of the group to remove applications from. + in: path + name: group_id + required: true + type: string + - description: A list of applications 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/GroupSummary' + '400': + description: Error in input data, for example, the array of applications + is missing. + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: Authentication failure. + schema: + $ref: '#/definitions/ErrorResponse' + '403': + description: Forbidden. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: An account or group with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Remove applications from a group. + tags: + - Tenant accounts - policy groups + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /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 delete. + - 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: - '204': - description: Deleted successfully. + '200': + description: Successful operation. + schema: + $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: $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. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete a group. + summary: Remove users from a group. tags: - 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 get: - description: 'Retrieve general information about the group. + 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}/policy-groups/{group_id} + 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: getAccountGroupSummary + operationId: getUsersOfAccountGroup 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 group to retrieve users for. in: path 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/GroupSummary' + $ref: '#/definitions/UserInfoRespList' '401': description: Authentication failure. schema: @@ -12198,43 +16414,45 @@ paths: description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get group information. + summary: Get users in a policy group. tags: - Tenant accounts - policy groups + x-filter: + status: + - eq + - in + - nin x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml post: - consumes: - - application/json - description: 'Add users and API keys to groups. + 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}/policy-groups/{group_id} + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''{"users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' + -H ''Authorization: Bearer '' ```' - operationId: addSubjectsToAccountGroup + operationId: addUsersToAccountGroup 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 update. + - description: The ID of the group to add users to. in: path name: group_id required: true type: string - - description: A list of users and API keys to add to the group. + - description: A list of user IDs to add to the group. in: body name: body required: true @@ -12248,8 +16466,7 @@ paths: schema: $ref: '#/definitions/GroupSummary' '400': - description: Error in input data, for example, the user or API key does - not exist. + description: Successful operation. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -12265,51 +16482,53 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '409': - description: The user of this API key is a member of the group already. + description: The user is a member of the account group already. schema: $ref: '#/definitions/ErrorResponse' - summary: Add members to a group. + summary: Add users to account group. tags: - 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 - put: - consumes: - - application/json - description: 'Update a group name. + /v3/accounts/{account_id}/policy-groups/{group_id}/users/add: + post: + description: 'Add users to account group. + + 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 POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users/add \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''{"name": "TestGroup2"}'' + -H ''Authorization: Bearer '' ```' - operationId: updateAccountGroupName + operationId: addListedUsersToAccountGroup 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 update. + - description: The ID of the group to retrieve users for. in: path name: group_id required: true type: string - - description: Details of the group to create. + - description: A list of users to add to the group. in: body name: body required: true schema: - $ref: '#/definitions/GroupUpdateInfo' + $ref: '#/definitions/SubjectList' produces: - application/json responses: @@ -12318,7 +16537,7 @@ paths: schema: $ref: '#/definitions/GroupSummary' '400': - description: Error in input data, for example, the group name is too long. + description: Successful operation. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -12330,48 +16549,39 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: A group with that ID does not exist. + description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Update the group name. + '409': + description: The user is a member of the account group already. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Add users to account group. tags: - Tenant accounts - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys: - delete: + /v3/accounts/{account_id}/policy-groups/{group_id}/users/remove: + post: consumes: - application/json - deprecated: true - description: 'Remove API keys from groups. - - - **Example:** - - ``` - - curl -X DELETE 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 ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' - - ```' - operationId: removeApiKeysFromAccountGroup + 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: The ID of the group to remove API keys from. + - description: The ID of the group to remove users from. in: path name: group_id required: true type: string - - description: A list of API keys to remove from the group. + - description: A list of users to remove from the group. in: body name: body required: true @@ -12385,8 +16595,8 @@ paths: schema: $ref: '#/definitions/GroupSummary' '400': - description: Error in input data, for example, the array of API keys is - missing. + description: Error in input data, for example, the last user to remove from + Administrators group. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -12401,41 +16611,34 @@ paths: description: An account or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API keys from a group. + summary: Remove users from a group. tags: - 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 + /v3/accounts/{account_id}/trusted-certificates: get: - description: 'List the API keys of the group with details. + 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}/policy-groups/{group_id}/api-keys + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getApiKeysOfAccountGroup + operationId: getAllAccountCertificates parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the group to retrieve API keys for. - in: path - name: group_id - required: true - type: string - default: 50 description: The number of results to return (2-1000). Default 50. format: int32 @@ -12443,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 @@ -12461,267 +16664,325 @@ 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/ApiKeyInfoRespList' + $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: An account or group with that ID does not exist. + description: An account with the given ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get API keys of a group. + summary: Get trusted certificates. tags: - - Tenant accounts - policy groups + - 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: - deprecated: true - description: 'Add API keys to account groups. + consumes: + - application/json + 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}/policy-groups/{group_id}/api-keys + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d {"name": "myCert1", "description": "very important cert", "certificate": + "certificate_data", "service": "lwm2m"} ```' - operationId: addApiKeysToAccountGroup + operationId: addAccountCertificate parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the group to retrieve API keys for. - in: path - name: group_id - required: true - type: string - - description: A list of API keys to add to the group. + - description: A trusted certificate object with attributes. Signature is optional. in: body name: body required: true schema: - $ref: '#/definitions/SubjectList' + $ref: '#/definitions/TrustedCertificateReq' produces: - application/json responses: - '200': - description: Successful operation. + '201': + description: New entity created. schema: - $ref: '#/definitions/ApiKeyInfoRespList' + $ref: '#/definitions/TrustedCertificateResp' '400': - description: Successful operation. + description: Invalid certificate data, certificate validation failed, certificate + already expired or certificate uses unsupported, or weak cipher. schema: - $ref: '#/definitions/ApiKeyInfoRespList' + $ref: '#/definitions/ErrorResponse' '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: An account or group with that ID does not exist. - schema: - $ref: '#/definitions/ErrorResponse' - '409': - description: The API Key is a member of the group or account already. + description: An account with the given ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Add API keys to Account group. + summary: Upload new trusted certificate. tags: - - 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: [] + - Tenant security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/add: - post: - description: 'Add API keys to account groups. + /v3/accounts/{account_id}/trusted-certificates/{cert_id}: + delete: + description: 'Delete a trusted certificate. + + 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}/api-keys/add + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: addListedApiKeysToAccountGroup + operationId: deleteAccountCertificate parameters: - - description: The ID of the account. + - description: Account ID. 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 trusted certificate to delete. in: path - name: group_id + name: cert_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/ApiKeyInfoRespList' - '400': - description: Successful operation. - schema: - $ref: '#/definitions/ApiKeyInfoRespList' + '204': + description: Deleted successfully. '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: An account or group with that ID does not exist. - schema: - $ref: '#/definitions/ErrorResponse' - '409': - description: The API key is a member of the account group already. + description: An account or certificate with the given ID not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Add API keys to account group. + summary: Delete a trusted certificate by ID. tags: - - Tenant accounts - policy groups + - Tenant security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/policy-groups/{group_id}/api-keys/remove: - post: - consumes: - - application/json - description: 'Remove API keys from groups. + get: + description: 'Retrieve a trusted certificate. + + 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}/api-keys/remove + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''{"apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]}'' + -H ''Authorization: Bearer '' ```' - operationId: removeListedApiKeysFromAccountGroup + operationId: getAccountCertificate parameters: - - description: The ID of the account. + - 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 trusted certificate to retrieve. in: path - name: group_id + name: cert_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/GroupSummary' - '400': - description: Error in input data, for example, the array of API keys is - missing. - schema: - $ref: '#/definitions/ErrorResponse' + $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: An account or group with that ID does not exist. + description: An account or certificate with the given ID not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API keys from a group. + summary: Get a trusted certificate. tags: - - Tenant accounts - policy groups + - Tenant security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/policy-groups/{group_id}/users: - delete: + put: consumes: - application/json - deprecated: true - 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: "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 group to remove users from. + - description: The ID of the trusted certificate to update. in: path - name: group_id + name: cert_id required: true type: string - - description: A list of users to remove from the group. + - description: A trusted certificate object with attributes. in: body name: body required: true schema: - $ref: '#/definitions/SubjectList' + $ref: '#/definitions/TrustedCertificateUpdateReq' produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/GroupSummary' + $ref: '#/definitions/TrustedCertificateResp' '400': - description: Error in input data, for example, the last user to remove from - Administrators group. + description: Invalid certificate data, certificate validation failed, certificate + already expired or certificate uses unsupported, or weak cipher. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -12729,48 +16990,42 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. + description: Forbidden, only available for administrators of commercial + accounts. schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or group with that ID does not exist. + description: An account or certificate with the given ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove users from a group. + summary: Update trusted certificate. tags: - - 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: [] + - Tenant security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/accounts/{account_id}/user-invitations: get: - description: 'List a group''s users, with details. + 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}/policy-groups/{group_id}/users + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getUsersOfAccountGroup + operationId: getAllAccountInvitations parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the group to retrieve users for. - in: path - name: group_id - required: true - type: string - default: 50 description: The number of results to return (2-1000). Default 50. format: int32 @@ -12778,38 +17033,21 @@ 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 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. + - description: Filter to retrieve user invitations by a specified login profile. in: query - name: status__nin + name: login_profiles__eq required: false type: string produces: @@ -12818,7 +17056,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInfoRespList' + $ref: '#/definitions/UserInvitationRespList' '401': description: Authentication failure. schema: @@ -12828,62 +17066,62 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or group with that ID does not exist. + description: An account with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get users of a group. + summary: Get user invitations. tags: - - Tenant accounts - policy groups + - Tenant accounts - user invitations x-filter: - status: + login_profiles: - eq - - in - - nin x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml post: - deprecated: true - description: 'Add users to account group. + consumes: + - application/json + 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/accounts/{account_id}/policy-groups/{group_id}/users + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accouns/{account_id}/user-invitations \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d {"email": "myemail@company.com"} ```' - operationId: addUsersToAccountGroup + operationId: createAccountInvitation parameters: - - description: The ID of the account. + - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the group to retrieve API keys for. - in: path - name: group_id - required: true - type: string - - description: A list of API keys to add to the group. + - description: A user invitation object with attributes. in: body name: body required: true schema: - $ref: '#/definitions/SubjectList' + $ref: '#/definitions/UserInvitationReq' produces: - application/json responses: - '200': - description: Successful operation. + '201': + description: New entity created. schema: - $ref: '#/definitions/ApiKeyInfoRespList' + $ref: '#/definitions/UserInvitationResp' '400': - description: Successful operation. + description: Error in input data, for example, invalid email address. schema: - $ref: '#/definitions/ApiKeyInfoRespList' + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -12892,67 +17130,44 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - '404': - description: An account or group with that ID does not exist. - schema: - $ref: '#/definitions/ErrorResponse' - '409': - description: The user is a member of the account group already. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Add users to account group. + summary: Create a user invitation. tags: - - 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: [] + - Tenant accounts - user invitations x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/policy-groups/{group_id}/users/add: - post: - description: 'Add users to account group. + /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 POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users/add + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: addListedUsersToAccountGroup + operationId: deleteAccountInvitation parameters: - - description: The ID of the account. + - description: Account ID. 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 invitation to delete. in: path - name: group_id + name: invitation_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/ApiKeyInfoRespList' - '400': - description: Successful operation. - schema: - $ref: '#/definitions/ApiKeyInfoRespList' + '204': + description: Deleted successfully. '401': description: Authentication failure. schema: @@ -12962,55 +17177,49 @@ 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 is a member of the account group already. + description: An account or invitation with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Add users to account group. + summary: Delete a user invitation. tags: - - Tenant accounts - policy groups + - Tenant accounts - user invitations x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/policy-groups/{group_id}/users/remove: - post: - consumes: - - application/json - description: "Remove users from groups.\n\n**Example:**\n```\ncurl -X POST 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: removeListedUsersFromAccountGroup + get: + 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. + - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the group to remove users from. + - description: The ID of the invitation to retrieve. in: path - name: group_id + name: invitation_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/GroupSummary' - '400': - description: Error in input data, for example, the last user to remove from - Administrators group. - schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/UserInvitationResp' '401': description: Authentication failure. schema: @@ -13020,29 +17229,31 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or group with that ID does not exist. + description: An account or invitation with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove users from a group. + summary: Details of a user invitation. tags: - - Tenant accounts - policy groups + - Tenant accounts - user invitations x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/trusted-certificates: + /v3/accounts/{account_id}/users: get: - description: 'Retrieve trusted certificates in an array. + 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}/trusted-certificates + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAllAccountCertificates + operationId: getAllAccountUsers parameters: - description: Account ID. in: path @@ -13056,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 @@ -13074,158 +17285,115 @@ 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. + - description: Filter for email address. in: query - name: owner__eq + name: email__eq required: false type: string - - description: Enrollment mode filter. - in: query - name: enrollment_mode__eq - required: false - type: boolean - - description: Filter for certificate status. + - description: Filter for 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.' + - description: An optional filter to retrieve users with a specified set of + statuses. in: query - name: issuer__like + name: status__in 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.' + - description: An optional filter to exclude users with a specified set of statuses. in: query - name: subject__like + name: status__nin 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. + - description: An optional filter to retrieve users with a specified login profile. in: query - name: valid__eq + name: login_profiles__eq required: false - type: boolean + type: string produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/TrustedCertificateRespList' + $ref: '#/definitions/UserInfoRespList' '401': description: Authentication failure. schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' '404': description: An account with the given ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get all trusted certificates. + summary: Get users. tags: - - Tenant device security - certificates + - Tenant accounts - users x-filter: - device_execution_mode: - - eq - - neq - enrollment_mode: - - eq - expire: - - eq - issuer: - - like - name: - - eq - owner: + email: - eq - service: + login_profiles: - eq status: - eq - subject: - - like - valid: - - eq + - in + - nin x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml post: consumes: - application/json - description: 'Upload new trusted certificates. + 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}/trusted-certificates + 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": "myCert1", "description": "very important cert", "certificate": - "certificate_data", "service": "lwm2m"} + -d {"email": "myemail@company.com"} ```' - operationId: addAccountCertificate + operationId: createAccountUser parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: A trusted certificate object with attributes. Signature is optional. + - description: A user object with attributes. in: body name: body required: true schema: - $ref: '#/definitions/TrustedCertificateReq' + $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/TrustedCertificateResp' + $ref: '#/definitions/UserInfoResp' '400': - description: Invalid certificate data, certificate validation failed, certificate - already expired or certificate uses unsupported, or weak cipher. + description: Error in input data, for example, an invalid email address. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -13233,42 +17401,48 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account with the given ID does not exist. + description: An account with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Upload new trusted certificate. + '409': + description: A user with the given username or email already exists. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Create a new user. tags: - - Tenant device security - certificates + - Tenant accounts - users x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/trusted-certificates/{cert_id}: + /v3/accounts/{account_id}/users/{user_id}: delete: - description: 'Delete the trusted certificate. + 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}/trusted-certificates/{cert_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: deleteAccountCertificate + operationId: deleteAccountUser parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the trusted certificate to delete. + - description: The ID of the user to delete. in: path - name: cert_id + name: user_id required: true type: string produces: @@ -13276,46 +17450,52 @@ 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, only available for admins of commercial accounts. + description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or certificate with the given ID not found. + description: An account or user with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete trusted certificate by ID. + summary: Delete a user. tags: - - Tenant device security - certificates + - Tenant accounts - users x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: 'Retrieve a trusted certificate by ID. + 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}/trusted-certificates/{cert_id} + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAccountCertificate + operationId: getAccountUser parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the trusted certificate to retrieve. + - description: The ID of the user to retrieve. in: path - name: cert_id + name: user_id required: true type: string produces: @@ -13324,58 +17504,147 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/TrustedCertificateResp' + $ref: '#/definitions/UserInfoResp' '401': description: Authentication failure. schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' '404': - description: Account or certificate with the given ID not found. + description: An account or user with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get trusted certificate by ID. + summary: Details of the user. tags: - - Tenant device security - certificates + - Tenant accounts - users 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 + description: 'Update user details. + + Note: This endpoint is restricted to administrators. + + + **Example:** + + ``` + + curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"username": "myusername"}'' + + ```' + operationId: updateAccountUser + parameters: + - description: Account ID. + in: path + name: account_id + required: true + type: string + - description: The ID of the user to update. + in: path + 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/UserInfoResp' + '400': + description: Error in input data, for example, an invalid email address. + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: Authentication failure. + schema: + $ref: '#/definitions/ErrorResponse' + '403': + description: Forbidden. + 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. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Update user details. + tags: + - Tenant accounts - users + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/accounts/{account_id}/users/{user_id}/groups: + delete: + consumes: + - application/json + deprecated: true + description: 'Remove user 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 + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + + ```' + operationId: removeAccountUserFromGroups parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the trusted certificate to update. + - description: The ID of the user to remove from the group. in: path - name: cert_id + name: user_id required: true type: string - - description: A trusted certificate object with attributes. + - description: A list of IDs of the groups to update. in: body name: body required: true schema: - $ref: '#/definitions/TrustedCertificateUpdateReq' + items: + type: string + type: array produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/TrustedCertificateResp' + $ref: '#/definitions/UserInfoResp' '400': - description: Invalid certificate data, certificate validation failed, certificate - already expired or certificate uses unsupported, or weak cipher. + description: Error in input data. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -13383,40 +17652,40 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or certificate with the given ID does not exist. + description: An account, user, or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Update trusted certificate. + summary: Remove user from groups. tags: - - Tenant device security - certificates + - 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 - /v3/accounts/{account_id}/user-invitations: get: - description: 'Retrieve details of all active user invitations sent for new or - existing users. + description: 'Retrieve an array of policy groups associated with a 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 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAllAccountInvitations + operationId: getGroupsOfAccountUser 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 @@ -13424,30 +17693,41 @@ 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 type: string - - description: Filter to retrieve user invitations by a specified login profile. + - description: 'Comma-separated additional data to return. Currently supported: + total_count.' in: query - name: login_profiles__eq + name: include required: false type: string + - description: Account ID. + in: path + name: account_id + required: true + type: string + - description: The ID of the user. + in: path + name: user_id + required: true + type: string produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInvitationRespList' + $ref: '#/definitions/GroupSummaryList' '401': description: Authentication failure. schema: @@ -13457,58 +17737,65 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account with the specified ID does not exist. + description: An account or user with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get the details of all user invitations. + summary: Get policy groups for a user. tags: - - Tenant accounts - user invitations - x-filter: - login_profiles: - - eq + - Tenant accounts - users x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml post: consumes: - application/json - description: 'Invite a new or existing user. + deprecated: true + description: 'Add user to groups. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accouns/{account_id}/user-invitations + 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 {"email": "myemail@company.com"} + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: createAccountInvitation + operationId: addAccountUserToGroups parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: A user invitation object with attributes. + - description: The ID of the user to add to the group. + in: path + name: user_id + required: true + type: string + - description: A list of IDs of the groups to update. in: body name: body required: true schema: - $ref: '#/definitions/UserInvitationReq' + items: + type: string + type: array produces: - application/json responses: - '201': - description: New entity created. + '200': + description: Successful operation. schema: - $ref: '#/definitions/UserInvitationResp' + $ref: '#/definitions/UserInfoResp' '400': - description: Error in input data, for example, invalid email address. + description: Error in input data. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -13519,42 +17806,75 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Create a user invitation. + '404': + 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: Add user to a list of groups. tags: - - Tenant accounts - user invitations + - 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 - /v3/accounts/{account_id}/user-invitations/{invitation_id}: - delete: - description: 'Delete an active user invitation sent to a new or existing user. + /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 DELETE 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/accounts/{account_id}/users/{user_id}/groups/add \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: deleteAccountInvitation + 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 invitation to delete. + - description: The ID of the user to add to the group. in: path - name: invitation_id + name: user_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: - '204': - description: Deleted successfully. + '200': + description: Successful operation. + schema: + $ref: '#/definitions/UserInfoResp' + '400': + description: Error in input data. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -13564,47 +17884,119 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or invitation with the specified ID does not exist. + description: An account, user, or group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete a user invitation. + '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 - user invitations + - Tenant accounts - users 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. + /v3/accounts/{account_id}/users/{user_id}/groups/remove: + post: + consumes: + - application/json + description: 'Remove a user from groups. + + 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} + curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups/remove \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: getAccountInvitation + operationId: removeAccountUserFromListedGroups + parameters: + - description: The ID of the account. + in: path + name: account_id + required: true + type: string + - description: The ID of the user to remove from the group. + in: path + name: user_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/UserInfoResp' + '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, user, or group with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Remove user from groups. + tags: + - Tenant accounts - users + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/accounts/{account_id}/users/{user_id}/validate-email: + post: + description: 'Validate user email. + + 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}/validate-email + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: validateAccountUserEmail parameters: - description: Account ID. in: path name: account_id required: true type: string - - description: The ID of the invitation to retrieve. + - description: The ID of the user. in: path - name: invitation_id + name: user_id required: true type: string produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/UserInvitationResp' + '204': + description: Email validation successfully requested. '401': description: Authentication failure. schema: @@ -13614,35 +18006,30 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or invitation with the specified ID does not exist. + description: An account or user with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Details of a user invitation. + summary: Validate the user email. tags: - - Tenant accounts - user invitations + - Tenant accounts - users x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/users: + /v3/api-keys: get: - description: 'Retrieve details of all users. + 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}/users - \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAllAccountUsers + 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 @@ -13650,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 @@ -13668,30 +18055,17 @@ paths: 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. + - description: API key filter. Do not include the private portion of the API + key (the last 32 characters). in: query - name: status__nin + name: key__eq required: false type: string - - description: An optional filter to retrieve users with a specified login profile. + - description: 'Owner name filter. + + Note: This parameter is restricted to administrators.' in: query - name: login_profiles__eq + name: owner__eq required: false type: string produces: @@ -13700,7 +18074,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInfoRespList' + $ref: '#/definitions/ApiKeyInfoRespList' '401': description: Authentication failure. schema: @@ -13709,128 +18083,56 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - '404': - description: An account with the given ID does not exist. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Get the details of all users. + summary: Get all API keys. 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 + end_of_life_at: '2021-08-01T00:00:00+00:00' + issued_at: '2020-08-01T00:00:00+00:00' + links: [] x-filter: - email: - - eq - login_profiles: + key: - eq - status: + owner: - eq - - in - - nin x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml 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: 'Create a new API key. **Example:** ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users - \ - - -H ''Authorization: Bearer '' \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys -d ''{"name": + "MyKey1"}'' \ - -H ''content-type: application/json'' \ + -H ''Authorization: Bearer '' \ - -d {"email": "myemail@company.com"} + -H ''content-type: application/json'' ```' - operationId: createAccountUser + operationId: createApiKey parameters: - - description: Account ID. - in: path - name: account_id - required: true - type: string - - description: A user object with attributes. + - description: The details of the API key to create. 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/ApiKeyInfoReq' produces: - application/json responses: '201': description: New entity created. schema: - $ref: '#/definitions/UserInfoResp' - '400': - description: Error in input data, for example, an invalid email address. - 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 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. - tags: - - Tenant accounts - users - x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/accounts/{account_id}/users/{user_id}: - delete: - description: 'Delete a user. - - - **Example:** - - ``` - - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} - \ - - -H ''Authorization: Bearer '' - - ```' - operationId: deleteAccountUser - parameters: - - description: Account ID. - in: path - name: account_id - required: true - type: string - - description: The ID of the user to delete. - in: path - name: user_id - required: true - type: string - produces: - - application/json - responses: - '204': - description: Deleted successfully. + $ref: '#/definitions/ApiKeyInfoResp' '400': - description: Bad request, for example, trying to delete an active user. + description: Error in input data, for example, missing API key name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -13841,47 +18143,39 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - '404': - description: An account or user with the specified ID does not exist. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Delete a user. + summary: Create a new API key. 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}/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 user details. + deprecated: true + description: 'Retrieve details of current 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/me \ - -H ''Authorization: Bearer '' + -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 + operationId: getMyApiKey + parameters: [] produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInfoResp' + $ref: '#/definitions/ApiKeyInfoResp' '401': description: Authentication failure. schema: @@ -13890,61 +18184,50 @@ paths: 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. + summary: Get current API 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 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/me \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''{"username": "myusername"}'' + -d ''{"name": "TestApiKey25"}'' ```' - operationId: updateAccountUser + operationId: updateMyApiKey parameters: - - description: Account ID. - in: path - name: account_id - required: true - type: string - - description: The ID of the user to update. - in: path - name: user_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': @@ -13955,67 +18238,51 @@ paths: description: Forbidden. 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. - 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. + 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/me/groups: delete: consumes: - application/json deprecated: true - description: 'Remove user from groups. + description: 'Remove API key from groups. **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/me/groups \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: removeAccountUserFromGroups + operationId: removeMyApiKeyListedGroups parameters: - - description: Account ID. - in: path - name: account_id - required: true - type: string - - description: The ID of the user to remove from the group. - in: path - name: user_id - required: true - type: string - - description: A list of IDs of the groups to update. + - description: A list of IDs of groups to update. in: body name: body required: true schema: - items: - type: string - type: array + $ref: '#/definitions/GroupIdList' produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInfoResp' + $ref: '#/definitions/ApiKeyInfoResp' '400': description: Error in input data. schema: @@ -14028,34 +18295,31 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - '404': - description: An account, user, or group 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/accounts/{account_id}/users/{user_id}/groups/remove/ + 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 get: - description: 'Retrieve user''s groups. + deprecated: true + description: 'Retrieve an array of policy groups associated with the current + API key. **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/me/groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getGroupsOfAccountUser + operationId: getGroupsOfMyApiKey parameters: - default: 50 description: The number of results to return (2-1000). Default 50. @@ -14064,14 +18328,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 @@ -14082,16 +18346,6 @@ 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. - in: path - name: user_id - required: true - type: string produces: - application/json responses: @@ -14107,47 +18361,37 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - '404': - description: An account or user with the specified ID does not exist. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Get user's groups. + summary: Get policy groups of the current API 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 post: consumes: - application/json deprecated: true - description: 'Add user to groups. + description: 'Add API key to groups. **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/me/groups \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: addAccountUserToGroups + operationId: addMyApiKeyToGroups parameters: - - description: Account ID. - in: path - name: account_id - required: true - type: string - - description: The ID of the user to add to the group. - in: path - name: user_id - required: true - type: string - description: A list of IDs of the groups to update. in: body name: body @@ -14162,7 +18406,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInfoResp' + $ref: '#/definitions/ApiKeyInfoResp' '400': description: Error in input data. schema: @@ -14172,59 +18416,47 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. - schema: - $ref: '#/definitions/ErrorResponse' - '404': - description: An account, user, or group with that ID does not exist. + description: Forbidden. Adding API key to the 'Administrators' group is + restricted to administrators. 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 user to a list of groups. + summary: Add API key to a list of 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/accounts/{account_id}/users/{user_id}/groups/add/ + 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/{user_id}/groups/add: + /v3/api-keys/me/groups/add: post: consumes: - application/json - description: 'Add a user to groups. + deprecated: true + description: 'Add API key to groups. **Example:** ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups/add + 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: addAccountUserToListedGroups + operationId: addMyApiKeyToListedGroups parameters: - - description: The ID of the account. - in: path - name: account_id - required: true - type: string - - description: The ID of the user to add to the group. - in: path - name: user_id - required: true - type: string - description: A list of IDs of the groups to update. in: body name: body @@ -14237,11 +18469,169 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInfoResp' + $ref: '#/definitions/ApiKeyInfoResp' + '400': + description: Error in input data. + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: Authentication failure. + schema: + $ref: '#/definitions/ErrorResponse' + '403': + description: Forbidden. Adding API key to the 'Administrators' group is + restricted to administrators. + 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/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 + deprecated: true + description: 'Remove API key from groups. + + + **Example:** + + ``` + + curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups/remove + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + + ```' + operationId: removeMyApiKeyFromListedGroups + parameters: + - 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' + $ref: '#/definitions/ErrorResponse' + '401': + description: Authentication failure. + schema: + $ref: '#/definitions/ErrorResponse' + '403': + description: Forbidden. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Remove API key from 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/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/api-keys/{apikey_id}: + delete: + deprecated: true + description: 'Delete the API key. + + + **Example:** + + ``` + + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: deleteApiKey + parameters: + - 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. Only the owner of the API key or an administrator + can delete an API key. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: An API key with the specified ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Delete API key. + tags: + - 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: + deprecated: true + description: 'Retrieve details of an API key. + + + **Example:** + + ``` + + curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getApiKey + parameters: + - 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: @@ -14251,65 +18641,56 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - 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. + description: An API key with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Add user to a list of groups. + 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 - /v3/accounts/{account_id}/users/{user_id}/groups/remove: - post: - consumes: - - application/json - description: 'Remove a user from groups. + put: + deprecated: true + description: 'Update API key details. **Example:** - ``` - - curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups/remove - \ + `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 ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -d ''{"name": "TestApiKey25"}'' ```' - operationId: removeAccountUserFromListedGroups + operationId: updateApiKey parameters: - - description: The ID of the account. - 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 update. in: path - name: user_id + name: apikey_id required: true type: string - - description: A list of IDs of the groups to update. + - description: New API key attributes to store. in: body name: body required: true schema: - $ref: '#/definitions/GroupIdList' + $ref: '#/definitions/ApiKeyUpdateReq' produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/UserInfoResp' + $ref: '#/definitions/ApiKeyInfoResp' '400': - description: Error in input data. + description: Error in input data, for example, invalid API key name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -14317,49 +18698,73 @@ 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, user, or group with that ID does not exist. + description: An API key with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove user from groups. + 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}/validate-email: - post: - description: 'Validate user email. + /v3/api-keys/{apikey_id}/groups: + delete: + 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/accounts/{account_id}/users/{user_id}/validate-email + 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: validateAccountUserEmail + operationId: removeApiKeyFromGroups parameters: - - description: Account ID. + - description: The ID of the API key to remove from the group. in: path - name: account_id + name: apikey_id required: true type: string - - description: The ID of the user. - in: path - name: user_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: - '204': - description: Email validation successfully requested. + '200': + description: Successful operation. + schema: + $ref: '#/definitions/ApiKeyInfoResp' + '400': + description: Error in input data. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -14369,28 +18774,36 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An account or user with the specified ID does not exist. + description: An API key with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Validate the user email. + 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 - /v3/api-keys: get: - description: 'Retrieve API keys in an array, optionally filtered by the owner. + 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/api-keys \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups + \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getAllApiKeys + operationId: getGroupsOfApikey parameters: - default: 50 description: The number of results to return (2-1000). Default 50. @@ -14399,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 @@ -14417,16 +18830,10 @@ 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 + - description: The ID of the API key. + in: path + name: apikey_id + required: true type: string produces: - application/json @@ -14434,7 +18841,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/ApiKeyInfoRespList' + $ref: '#/definitions/GroupSummaryList' '401': description: Authentication failure. schema: @@ -14443,50 +18850,66 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get all API keys. + '404': + description: An API key with the given ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Get policy groups of an API key. tags: - Account - API keys - x-filter: - key: - - eq - owner: - - eq + 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: 'Create a new API key. + 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 -d ''{"name": - "MyKey1"}'' \ + 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'' + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: createApiKey + operationId: addApiKeyToGroups parameters: - - description: The details of the API key to create. + - 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/ApiKeyInfoReq' + items: + type: string + type: array produces: - application/json responses: - '201': - description: New entity created. + '200': + description: Successful operation. schema: $ref: '#/definitions/ApiKeyInfoResp' '400': - description: Error in input data, for example, missing display name. + description: Error in input data. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -14497,26 +18920,60 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Create a new API key. + '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/me: - get: - description: 'Retrieve API key details. + /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 GET https://api.us-east-1.mbedcloud.com/v3/api-keys/me \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups/add + \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: getMyApiKey - parameters: [] + 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: @@ -14524,6 +18981,10 @@ paths: description: Successful operation. schema: $ref: '#/definitions/ApiKeyInfoResp' + '400': + description: Error in input data. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -14532,35 +18993,60 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get API key details. + '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/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 - put: - description: 'Update API key details. + /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 PUT https://api.us-east-1.mbedcloud.com/v3/api-keys/me \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups/remove + \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''{"name": "TestApiKey25"}'' + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: updateMyApiKey + operationId: removeApiKeyFromListedGroups parameters: - - description: New API key attributes to store. + - 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/ApiKeyUpdateReq' + $ref: '#/definitions/GroupIdList' produces: - application/json responses: @@ -14569,7 +19055,7 @@ paths: schema: $ref: '#/definitions/ApiKeyInfoResp' '400': - description: Error in input data, for example, missing display name. + description: Error in input data. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -14580,39 +19066,48 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Update API key details. + '404': + description: An API key with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Remove API key from 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/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/api-keys/me/groups: - delete: - consumes: - - application/json + /v3/api-keys/{apikey_id}/reset-secret: + post: deprecated: true - description: 'Remove API key from groups. + description: 'Reset the secret key of the API key. **Example:** ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups \ - - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/reset-secret + \ - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''Authorization: Bearer '' ```' - operationId: removeMyApiKeyListedGroups + operationId: resetSecret parameters: - - description: A list of IDs of groups to update. + - description: The ID of the API key to reset. + in: path + name: apikey_id + required: true + type: string + - description: New API key attributes to be stored. in: body name: body - required: true + required: false schema: - $ref: '#/definitions/GroupIdList' + $ref: '#/definitions/ApiKeyUpdateReq' produces: - application/json responses: @@ -14621,7 +19116,7 @@ paths: schema: $ref: '#/definitions/ApiKeyInfoResp' '400': - description: Error in input data. + description: Error in input data format. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -14632,29 +19127,36 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API key from groups. + '404': + description: An API key with the specified ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Reset the secret key. tags: - 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' + 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/applications: get: - description: 'Retrieve groups associated with the API key. + 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/me/groups \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/applications \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getGroupsOfMyApiKey + operationId: getAllApplications parameters: - default: 50 description: The number of results to return (2-1000). Default 50. @@ -14663,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 @@ -14681,13 +19183,18 @@ paths: name: include required: false type: string + - description: Status filter. + in: query + name: status__eq + required: false + type: string produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/GroupSummaryList' + $ref: '#/definitions/ApplicationList' '401': description: Authentication failure. schema: @@ -14696,49 +19203,50 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get groups of the API key. + summary: Get all applications. tags: - - Account - API keys + - Account - applications + x-filter: + status: + - eq x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml post: consumes: - application/json - deprecated: true - description: 'Add API key to groups. + 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/me/groups \ - - -H ''Authorization: Bearer '' \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/applications -d ''{"name": + "MyApplication1"}'' \ - -H ''content-type: application/json'' \ + -H ''Authorization: Bearer '' \ - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''content-type: application/json'' ```' - operationId: addMyApiKeyToGroups + operationId: createApplication parameters: - - description: A list of IDs of the groups to update. + - description: The details of the application to create. in: body name: body required: true schema: - items: - type: string - type: array + $ref: '#/definitions/Application' produces: - application/json responses: - '200': - description: Successful operation. + '201': + description: New entity created. schema: - $ref: '#/definitions/ApiKeyInfoResp' + $ref: '#/definitions/Application' '400': - description: Error in input data. + description: Error in input data, for example, missing name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -14749,59 +19257,39 @@ paths: description: Forbidden. 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. + summary: Create a new application. tags: - - 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: [] + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/api-keys/me/groups/add: - post: - consumes: - - application/json - description: 'Add API key to groups. + /v3/applications/{application_id}: + delete: + description: 'Delete the application. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups/add/ + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/applications/{application_id} \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''Authorization: Bearer '' ```' - operationId: addMyApiKeyToListedGroups + operationId: deleteApplication parameters: - - description: A list of IDs of the groups to update. - in: body - name: body + - description: The ID of the application to delete. + in: path + name: application_id required: true - schema: - $ref: '#/definitions/GroupIdList' + type: string produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/ApiKeyInfoResp' - '400': - description: Error in input data. - schema: - $ref: '#/definitions/ErrorResponse' + '204': + description: Deleted successfully. '401': description: Authentication failure. schema: @@ -14810,54 +19298,44 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - '409': - description: The API key is a member of the group already. + '404': + description: An application with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Add API key to a list of groups. + summary: Delete application. tags: - - Account - API keys + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/api-keys/me/groups/remove: - post: - consumes: - - application/json - description: 'Remove API key from groups. + get: + description: 'Retrieve details of an application. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/me/groups/remove + curl -X GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id} \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''Authorization: Bearer '' ```' - operationId: removeMyApiKeyFromListedGroups + operationId: getApplication parameters: - - description: A list of IDs of groups to update. - in: body - name: body + - description: The ID of the application to retrieve. + in: path + name: application_id required: true - schema: - $ref: '#/definitions/GroupIdList' + type: string produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/ApiKeyInfoResp' - '400': - description: Error in input data. - schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/Application' '401': description: Authentication failure. schema: @@ -14866,37 +19344,56 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API key from groups. + '404': + description: An application with the specified ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Get application. tags: - - Account - API keys + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/api-keys/{apikey_id}: - delete: - description: 'Delete the API key. + put: + description: 'Update application details. + Note: This endpoint is restricted to administrators. - **Example:** - ``` + **Example:** - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} + `curl -X PUT https://api.us-east-1.mbedcloud.com/v3/applications/{application_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{"name": "TestApplication25"}'' ```' - operationId: deleteApiKey + operationId: updateApplication parameters: - - description: The ID of the API key to delete. + - description: The ID of the application to update. in: path - name: apikey_id + 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: - '204': - description: Deleted successfully. + '200': + description: Successful operation. + schema: + $ref: '#/definitions/ApiKeyInfoResp' + '400': + description: Error in input data, for example, invalid display name. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Authentication failure. schema: @@ -14906,40 +19403,74 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: The API key with the specified ID does not exist. + description: An application with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Delete API key. + summary: Update applicationdetails. tags: - - Account - API keys + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/applications/{application_id}/access-keys: get: - description: 'Retrieve API key details. + description: 'Retrieve an array of access keys associated with the application. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys + \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getApiKey + operationId: getAllApplicationAccessKeys parameters: - - description: The ID of the API key to retrieve. + - description: The ID of the application. in: path - name: apikey_id + 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 + - description: Status filter. + in: query + name: status__eq + required: false + type: string produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/ApiKeyInfoResp' + $ref: '#/definitions/AccessKeyList' '401': description: Authentication failure. schema: @@ -14949,48 +19480,56 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: API key with the specified ID does not exist. + description: An application with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get API key details. + summary: Get all access keys associated with the application. tags: - - Account - API keys + - Account - applications + x-filter: + status: + - eq x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: - description: 'Update API key details. + post: + consumes: + - application/json + description: 'Create a new access key for the application. + + Note: This endpoint is restricted to administrators. **Example:** - `curl -X PUT https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \ + ``` - -H ''Authorization: Bearer '' \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys + -d ''{"name": "MyKey1"}'' \ - -H ''content-type: application/json'' \ + -H ''Authorization: Bearer '' \ - -d ''{"name": "TestApiKey25"}'' + -H ''content-type: application/json'' ```' - operationId: updateApiKey + operationId: createApplicationAccessKey parameters: - - description: The ID of the API key to update. + - description: The ID of the application. in: path - name: apikey_id + name: application_id required: true type: string - - description: New API key attributes to store. + - description: The details of the access key to create. in: body name: body required: true schema: - $ref: '#/definitions/ApiKeyUpdateReq' + $ref: '#/definitions/AccessKey' produces: - application/json responses: - '200': - description: Successful operation. + '201': + description: New entity created. schema: - $ref: '#/definitions/ApiKeyInfoResp' + $ref: '#/definitions/AccessKey' '400': description: Error in input data, for example, missing display name. schema: @@ -15004,61 +19543,47 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: The API key with the specified ID does not exist. + description: An application with the specified ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Update API key details. + summary: Create a new applicationaccess key. tags: - - Account - API keys + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/api-keys/{apikey_id}/groups: + /v3/applications/{application_id}/access-keys/{access_key_id}: delete: - consumes: - - application/json - deprecated: true - description: 'Remove API key from groups. + description: 'Delete the access key associated with the application. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id} \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''Authorization: Bearer '' ```' - operationId: removeApiKeyFromGroups + operationId: deleteApplicationAccessKey parameters: - - description: The ID of the API key to remove from the group. + - description: The ID of the application. in: path - name: apikey_id + name: application_id required: true type: string - - description: A list of IDs of the groups to update. - in: body - name: body + - description: The ID of the access key to delete. + in: path + name: access_key_id required: true - schema: - items: - type: string - type: array + type: string produces: - application/json responses: - '200': - description: Successful operation. - schema: - $ref: '#/definitions/ApiKeyInfoResp' - '400': - description: Error in input data. - schema: - $ref: '#/definitions/ErrorResponse' + '204': + description: Deleted successfully. '401': description: Authentication failure. schema: @@ -15068,62 +19593,40 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An API key with that ID does not exist. + description: An application or access key with the specified ID does not + exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API key from groups. + summary: Delete access key associated with the application. 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/remove/ - end_of_life_at: '2020-07-11T11:04:57+00:00' - issued_at: '2019-07-11T11:04:57+00:00' - links: [] + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: 'Retrieve groups associated with the API key. + description: 'Retrieve details of an access key associated with the application. + + Note: This endpoint is restricted to administrators. **Example:** ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups + curl -X GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' - operationId: getGroupsOfApikey + operationId: getApplicationAccessKey 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 - type: string - - description: 'Comma-separated additional data to return. Currently supported: - total_count.' - in: query - name: include - required: false + - description: The ID of the application. + in: path + name: application_id + required: true type: string - - description: The ID of the API key. + - description: The ID of the access key to retrieve. in: path - name: apikey_id + name: access_key_id required: true type: string produces: @@ -15132,7 +19635,7 @@ paths: '200': description: Successful operation. schema: - $ref: '#/definitions/GroupSummaryList' + $ref: '#/definitions/AccessKey' '401': description: Authentication failure. schema: @@ -15142,58 +19645,59 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An API key with the given ID does not exist. + description: An application or access key with the specified ID does not + exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get groups of the API key. + summary: Get access key. tags: - - Account - API keys + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - post: - consumes: - - application/json - deprecated: true - description: 'Add API key to groups. + put: + description: 'Update access key details. + Note: This endpoint is restricted to administrators. - **Example:** - ``` + **Example:** - curl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups + `curl -X PUT https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -d ''{"name": "TestAccessKey"}'' ```' - operationId: addApiKeyToGroups + operationId: updateApplicationAccessKey parameters: - - description: The ID of the API key to add to the group. + - description: The ID of the application. in: path - name: apikey_id + name: application_id required: true type: string - - description: A list of IDs of the groups to update. + - 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: body required: true schema: - items: - type: string - type: array + $ref: '#/definitions/AccessKey' produces: - application/json responses: '200': description: Successful operation. schema: - $ref: '#/definitions/ApiKeyInfoResp' + $ref: '#/definitions/AccessKey' '400': - description: Error in input data. + description: Error in input data, for example, invalid display name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -15205,67 +19709,70 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: A group or API key with that ID does not exist. + description: An application or access 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. + summary: Update access key details. 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: [] + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/api-keys/{apikey_id}/groups/add: - post: - consumes: - - application/json - description: 'Add API key to groups. + /v3/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 POST https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups/add + curl -X GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups \ - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -H ''Authorization: Bearer '' ```' - operationId: addApiKeyToListedGroups + operationId: getGroupsOfApplication parameters: - - description: The ID of the API key to add to the group. + - description: The ID of the application. in: path - name: apikey_id + 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' + - 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/ApiKeyInfoResp' - '400': - description: Error in input data. - schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/GroupSummaryList' '401': description: Authentication failure. schema: @@ -15275,43 +19782,41 @@ paths: 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. + description: An application with the given ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Add API key to a list of groups. + summary: Get policy groups of an application. tags: - - Account - API keys + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/api-keys/{apikey_id}/groups/remove: + /v3/applications/{application_id}/groups/add: post: consumes: - application/json - description: 'Remove API key from groups. + description: 'Add application 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/remove + curl -X POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups/add \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: removeApiKeyFromListedGroups + operationId: addApplicationToGroups parameters: - - description: The ID of the API key to remove from the group. + - description: The ID of the application to add to the group. in: path - name: apikey_id + name: application_id required: true type: string - description: A list of IDs of the groups to update. @@ -15323,10 +19828,8 @@ paths: produces: - application/json responses: - '200': + '204': description: Successful operation. - schema: - $ref: '#/definitions/ApiKeyInfoResp' '400': description: Error in input data. schema: @@ -15340,50 +19843,60 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: An API key with that ID does not exist. + description: A group or application with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Remove API key from groups. + '409': + description: The application is a member of the group already. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Add application to a list of groups. tags: - - Account - API keys + - Account - applications x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/api-keys/{apikey_id}/reset-secret: + /v3/applications/{application_id}/groups/remove: post: - description: 'Reset the secret key of the API key. + consumes: + - application/json + description: 'Remove application 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}/reset-secret + curl -X POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups/remove \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' ```' - operationId: resetSecret + operationId: removeApplicationFromGroups parameters: - - description: The ID of the API key to reset. + - description: The ID of the application to remove from the group. in: path - name: apikey_id + name: application_id required: true type: string - - description: New API key attributes to be stored. + - description: A list of IDs of the groups to update. in: body name: body - required: false + required: true schema: - $ref: '#/definitions/ApiKeyUpdateReq' + $ref: '#/definitions/GroupIdList' produces: - application/json responses: - '200': + '204': description: Successful operation. - schema: - $ref: '#/definitions/ApiKeyInfoResp' '400': - description: Error in input data format. + description: Error in input data, for example, invalid API key name. schema: $ref: '#/definitions/ErrorResponse' '401': @@ -15391,36 +19904,29 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. - schema: - $ref: '#/definitions/ErrorResponse' - '404': - description: An API key with the specified ID does not exist. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Reset the secret key. - tags: - - Account - API keys - x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/billing-report: - get: - description: 'Fetch the billing report generated for the currently authenticated - commercial non-subtenant account. - - Billing reports for subtenant accounts are included in their aggregator''s - billing report response. - - - **Example:** - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/billing-report?month=2018-07 - \ - - -H ''Authorization: Bearer '' - - ```' + description: Forbidden. Only the owner of the API key or an administrator + can reset an API key. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: An application with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Remove application from groups. + tags: + - Account - applications + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/billing-report: + get: + description: "Fetch the billing report generated for the currently authenticated\ + \ commercial account. The billing reports for\ntenant accounts are also included\ + \ in their aggregator's billing report response. The response contains below\ + \ additional counters\nwhen the account's business model is set to `API calls`\ + \ by the account administrator.\n - rest_api_requests_with_user_token\n \ + \ - rest_api_requests_with_api_key_token\n - pelion_to_webapp_notifications\n\ + \ - device_to_pelion_messages\n - pelion_to_device_messages\n\n**Example:**\n\ + ```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/billing-report?month=2018-07\ + \ \\\n-H 'Authorization: Bearer '\n```" operationId: getBillingReport parameters: - description: Queried year and month of billing report. @@ -15475,14 +19981,14 @@ paths: campaign_name: example-account-campaign-name time: 2016-09-02T00:00.000Z type: reservation - - account_id: example-subtenant-account-1 + - account_id: example-tenant-account-1 amount: -20 - campaign_name: example-subtenant-account-1-campaign-name + campaign_name: example-tenant-account-1-campaign-name time: 2016-09-03T00:00.000Z type: reservation - - account_id: example-subtenant-account-2 + - account_id: example-tenant-account-2 amount: -30 - campaign_name: example-subtenant-account-2-campaign-name + campaign_name: example-tenant-account-2-campaign-name time: 2016-09-04T00:00.000Z type: reservation metadata: @@ -15504,12 +20010,12 @@ paths: address_line1: null address_line2: null city: null - company: example-subtenant-company-1 + company: example-tenant-company-1 contact: null country: null - customer_subtenant_id: example-customer-subtenant-id-1 + customer_subtenant_id: example-customer-tenant-id-1 email: null - id: example-subtenant-account-1 + id: example-tenant-account-1 phone_number: null postal_code: null state: null @@ -15523,19 +20029,19 @@ paths: service_package: quota_usage: - amount: -20 - campaign_name: example-subtenant-account-1-campaign-name + campaign_name: example-tenant-account-1-campaign-name time: 2016-09-03T00:00.000Z type: reservation - account: address_line1: null address_line2: null city: null - company: example-subtenant-company-2 + company: example-tenant-company-2 contact: null country: null - customer_subtenant_id: example-customer-subtenant-id-2 + customer_subtenant_id: example-customer-tenant-id-2 email: null - id: example-subtenant-account-2 + id: example-tenant-account-2 phone_number: null postal_code: null state: null @@ -15549,7 +20055,7 @@ paths: service_package: quota_usage: - amount: -30 - campaign_name: example-subtenant-account-2-campaign-name + campaign_name: example-tenant-account-2-campaign-name time: 2016-09-04T00:00.000Z type: reservation schema: @@ -15580,7 +20086,7 @@ paths: schema: $ref: '#/definitions/UnauthorizedErrorResponse' 403: - description: Access forbidden if account is not commercial or subtenant. + description: Access forbidden if account is not commercial. examples: application/json: code: 403 @@ -15615,16 +20121,18 @@ paths: schema: $ref: '#/definitions/InternalServerErrorResponse' summary: Get billing report. + tags: + - Usage - billing reports x-origin: /home/circleci/project/billing/public/swagger-public-apis.yaml /v3/billing-report-active-devices: get: description: 'Fetch raw billing data for active devices for the currently authenticated - commercial non-subtenant account. + commercial account. - This is supplementary data for the billing report. The raw billing data of - the active devices for subtenant accounts - are included in their aggregator''s raw billing data of the active devices. + This is supplementary data for the billing report. The raw billing data of + the active devices for tenant accounts are included in their aggregator''s + raw billing data of the active devices. The endpoint returns the URL to download the gzipped CSV file. The first line @@ -15639,7 +20147,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/billing-report-active-devices?month=2018-07 \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getBillingReportActiveDevices @@ -15687,7 +20195,7 @@ paths: schema: $ref: '#/definitions/UnauthorizedErrorResponse' 403: - description: Access forbidden if account is not commercial or subtenant. + description: Access forbidden if account is not commercial. examples: application/json: code: 403 @@ -15720,16 +20228,18 @@ paths: schema: $ref: '#/definitions/InternalServerErrorResponse' summary: Get raw billing data of the active devices for the month. + tags: + - Usage - billing reports x-origin: /home/circleci/project/billing/public/swagger-public-apis.yaml /v3/billing-report-firmware-updates: get: description: 'Fetch raw billing data for firmware updates for the currently - authenticated commercial non-subtenant account. + authenticated commercial account. - This is supplementary data for the billing report. The raw billing data of - the firmware updates for subtenant accounts - are included in their aggregator''s raw billing data of the firmware updates. + This is supplementary data for the billing report. The raw billing data of + the firmware updates for tenant accounts are also included in their aggregator''s + raw billing data of the firmware updates. The endpoint returns the URL to download the gzipped CSV file. The first line @@ -15744,7 +20254,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/billing-report-firmware-updates?month=2018-07 \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getBillingReportFirmwareUpdates @@ -15792,7 +20302,7 @@ paths: schema: $ref: '#/definitions/UnauthorizedErrorResponse' 403: - description: Access forbidden if account is not commercial or subtenant. + description: Access forbidden if account is not commercial. examples: application/json: code: 403 @@ -15825,16 +20335,205 @@ paths: schema: $ref: '#/definitions/InternalServerErrorResponse' summary: Get raw billing data of the firmware updates for the month. + tags: + - Usage - billing reports + x-origin: /home/circleci/project/billing/public/swagger-public-apis.yaml + /v3/billing-statistics: + get: + description: "Fetch the statistics view of Device Management usage in time series\ + \ for the currently authenticated commercial account.\nThe response contains\ + \ the additional counters below, if the account business model is set to `API\ + \ calls` by the account administrator:\n - device_to_pelion_messages\n -\ + \ pelion_to_device_messages\n - pelion_to_webapp_notifications\n - rest_api_requests_with_api_key_token\n\ + \ - rest_api_requests_with_user_token\n\nThe return data is retrieved during\ + \ a defined time window and grouped by defined interval.\nThe time window\ + \ for data retrieval is defined as a range, that can be either absolute (for\ + \ instance, using timestamps) or relative (referring to the 'period' parameter).\n\ + Range start is inclusive, while range end is exclusive. The specified range\ + \ must be equal to or greater than the specified interval.\n\nReturned data\ + \ does not include any tenant usage.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/billing-statistics?start=2019-11-01T00:00:00.000Z&end=2019-12-01T00:00:00.000Z&interval=1d\ + \ \\\n -H 'Authorization: Bearer '\n```" + operationId: getStatisticsView + parameters: + - description: 'Start time of the statistics view in RFC3339 date-time format, + with millisecond accuracy and UTC time zone. + + The parameter is mandatory if the period is not specified. Do not set the + parameter if you have specified the period. + + Fetch data with timestamp greater than or equal to this value. Sample value: + 2017-02-07T09:20:56.990Z. + + The specified range must be equal to or greater than 5 minutes. Maximum + supported range is 98 days when using timestamps to specify the range.' + format: date-time + in: query + name: start + required: false + type: string + - description: 'End time of the statistics view in RFC3339 date-time format + with millisecond accuracy and UTC time zone. + + The parameter is mandatory if the period is not specified. Do not set the + parameter if you have specified the period. + + Fetch the data with timestamp less than this value. Sample value: 2017-02-07T09:20:56.990Z. + + The specified range must be equal to or greater than 5 minutes. Maximum + supported range is 98 days when using timestamps to specify the range.' + format: date-time + in: query + name: end + required: false + type: string + - description: 'Period. Alternative for specifying the range if not using start + and end parameters. + + The parameter is mandatory if the start and end parameters are not specified. + Do not set the parameter if you have specified the start and end parameters. + + Fetch the data for the period in minutes, hours, days, weeks or months. + + One week is normalized to 7 days. Sample values: 5m, 2h, 3d, 4w, 1mo, 3mo. + + The allowed periods (inclusive) are 5m-141120m/1h-2352h/1d-98d/1w-14w/1mo-3mo.' + in: query + name: period + required: false + type: string + - description: 'Group the data by this interval in minutes, hours, days, weeks + or months. + + One week is normalized to 7 days. Sample values: 5m, 2h, 3d, 4w, 1mo, 3mo. + + Minimum supported interval is 5 minutes. The specified interval must not + be greater than the specified range.' + in: query + name: interval + required: true + type: string + - default: 50 + description: Maximum number of statistics view records in one paginated response. + format: int32 + in: query + maximum: 1000 + minimum: 2 + name: limit + required: false + type: integer + - description: Results after specified record ID. + in: query + name: after + pattern: '[0-9a-fA-F]{32}' + required: false + type: string + - description: 'Record order. Acceptable values (case insensitive): 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 + responses: + 200: + description: Statistics view of Device Management usage for the currently + authenticated commercial account. + examples: + application/json: + after: null + data: + - active_devices: 10 + firmware_updates: 4286 + id: 00000000000000000000016e7bcf1800 + object: billing-statistics + sda_tokens: 962 + timestamp: '2019-11-18T00:00:00.000Z' + - active_devices: 0 + firmware_updates: 6553 + id: 00000000000000000000016e80f57400 + object: billing-statistics + sda_tokens: 1440 + timestamp: '2019-11-19T00:00:00.000Z' + - active_devices: 0 + firmware_updates: 0 + id: 00000000000000000000016e861bd000 + object: billing-statistics + sda_tokens: 0 + timestamp: '2019-11-20T00:00:00.000Z' + has_more: false + limit: 50 + object: list + order: asc + total_count: 3 + schema: + $ref: '#/definitions/StatisticsViewResponse' + 400: + description: Bad request. + examples: + application/json: + code: 400 + fields: + - message: Parameter missing. + name: interval + message: One of the request fields has failed validation. + object: error + request_id: example-request-id + type: validation_error + schema: + $ref: '#/definitions/BadRequestErrorResponse' + 401: + description: Unauthorized access. + examples: + application/json: + code: 401 + message: Access is denied. + object: error + request_id: example-request-id + type: unauthorized + schema: + $ref: '#/definitions/UnauthorizedErrorResponse' + 403: + description: Forbidden. + examples: + application/json: + code: 403 + message: Account is not a commercial account. + object: error + request_id: example-request-id + type: forbidden + schema: + $ref: '#/definitions/ForbiddenErrorResponse' + 500: + description: Internal server error. + examples: + application/json: + code: 500 + message: Unexpected internal server error. + object: error + request_id: example-request-id + type: internal_error + schema: + $ref: '#/definitions/InternalServerErrorResponse' + summary: Get statistics view of Device Management usage. + tags: + - Usage - statistics x-origin: /home/circleci/project/billing/public/swagger-public-apis.yaml /v3/branding-colors: delete: description: 'Delete account branding colors for all themes. + Note: This endpoint is restricted to administrators. + **Example usage:** `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors -H - ''Authorization: Bearer API_KEY''`' + ''Authorization: Bearer ''`' operationId: deleteAllColors parameters: [] produces: @@ -15862,11 +20561,13 @@ paths: delete: description: 'Delete account dark theme branding colors. + Note: This endpoint is restricted to administrators. + **Example usage:** `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark - -H ''Authorization: Bearer API_KEY''`' + -H ''Authorization: Bearer ''`' operationId: deleteAllDarkColors parameters: [] produces: @@ -15900,7 +20601,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getDarkColors @@ -15927,10 +20628,11 @@ paths: put: consumes: - application/json - description: "Update an array of dark theme branding colors.\n\n**Example:**\n\ - ```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark\ - \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\ - \ \\\n'[{ \"reference\": \"primary\",\n \"color\": \"#f3f93e\" }]'\n```" + 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/branding-colors/dark \\\n-H 'Authorization:\ + \ Bearer ' \\\n-H 'content-type: application/json' \\\n'[{ \"\ + reference\": \"primary\",\n \"color\": \"#f3f93e\" }]'\n```" operationId: bulkSetDarkColors parameters: - description: List of branding colors. @@ -15939,7 +20641,7 @@ paths: required: true schema: items: - $ref: '#/definitions/BrandingColor' + $ref: '#/definitions/BrandingColorUpdate' type: array produces: - application/json @@ -15966,6 +20668,8 @@ paths: delete: description: 'Resets the branding color to its dark theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -15974,13 +20678,13 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: resetDarkColor parameters: - description: The name of the branding color. - enum: *id020 + enum: *id001 in: path name: reference required: true @@ -16017,13 +20721,13 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getDarkColor parameters: - description: The name of the branding color. - enum: *id020 + enum: *id001 in: path name: reference required: true @@ -16056,6 +20760,8 @@ paths: - application/json description: 'Update a dark theme branding color. + Note: This endpoint is restricted to administrators. + **Example:** @@ -16064,7 +20770,7 @@ paths: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/primary \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -16074,7 +20780,7 @@ paths: operationId: setDarkColor parameters: - description: The name of the branding color. - enum: *id020 + enum: *id001 in: path name: reference required: true @@ -16116,11 +20822,13 @@ paths: delete: description: 'Delete account light theme branding colors. + Note: This endpoint is restricted to administrators. + **Example usage:** `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light - -H ''Authorization: Bearer API_KEY''`' + -H ''Authorization: Bearer ''`' operationId: deleteAllLightColors parameters: [] produces: @@ -16154,7 +20862,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getLightColors @@ -16181,9 +20889,10 @@ paths: put: consumes: - application/json - description: "Update an array of light theme branding colors.\n\n**Example:**\n\ - ```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/light\ - \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\ + 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/branding-colors/light \\\n\ + -H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\ \ \\\n'[{ \"reference\": \"primary\",\n \"color\": \"purple\" }]'\n```" operationId: bulkSetLightColors parameters: @@ -16193,7 +20902,7 @@ paths: required: true schema: items: - $ref: '#/definitions/BrandingColor' + $ref: '#/definitions/BrandingColorUpdate' type: array produces: - application/json @@ -16220,6 +20929,8 @@ paths: delete: description: 'Resets the branding color to its light theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -16228,13 +20939,13 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: resetLightColor parameters: - description: The name of the branding color. - enum: *id020 + enum: *id001 in: path name: reference required: true @@ -16271,13 +20982,13 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getLightColor parameters: - description: The name of the branding color. - enum: *id020 + enum: *id001 in: path name: reference required: true @@ -16310,6 +21021,8 @@ paths: - application/json description: 'Update light theme branding color. + Note: This endpoint is restricted to administrators. + **Example:** @@ -16318,7 +21031,7 @@ paths: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/primary \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -16328,7 +21041,7 @@ paths: operationId: setLightColor parameters: - description: The name of the branding color. - enum: *id020 + enum: *id001 in: path name: reference required: true @@ -16370,11 +21083,13 @@ paths: 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/branding-images -H - ''Authorization: Bearer API_KEY''`' + ''Authorization: Bearer ''`' operationId: deleteAllImages parameters: [] produces: @@ -16402,11 +21117,13 @@ paths: 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/branding-images/dark - -H ''Authorization: Bearer API_KEY''`' + -H ''Authorization: Bearer ''`' operationId: deleteAllDarkImages parameters: [] produces: @@ -16438,7 +21155,7 @@ paths: `curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getAllDarkImageData @@ -16474,13 +21191,13 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getDarkImageData parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16512,6 +21229,8 @@ paths: post: description: 'Revert an account branding image to dark theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -16520,13 +21239,13 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference}/clear \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: clearDarkImage parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16560,6 +21279,8 @@ paths: description: 'Upload a new account branding image in the dark theme in PNG or JPEG format. + Note: This endpoint is restricted to administrators. + **Example:** @@ -16568,7 +21289,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference}/upload \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: image/png'' --data-binary ''@myimage.png'' @@ -16576,7 +21297,7 @@ paths: operationId: uploadDarkImage parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16625,12 +21346,14 @@ paths: post: consumes: - multipart/form-data - description: Upload a new account branding image as form data in the dark theme + description: 'Upload a new account branding image as form data in the dark theme in PNG or JPEG format. + + Note: This endpoint is restricted to administrators.' operationId: uploadDarkImageMultipart parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16678,11 +21401,13 @@ paths: delete: description: 'Delete account light theme branding images. + Note: This endpoint is restricted to administrators. + **Example usage:** `curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-images/light - -H ''Authorization: Bearer API_KEY''`' + -H ''Authorization: Bearer ''`' operationId: deleteAllLightImages parameters: [] produces: @@ -16716,7 +21441,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getAllLightImageData @@ -16752,13 +21477,13 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getLightImageData parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16790,6 +21515,8 @@ paths: post: description: 'Revert an account branding image to light theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -16798,13 +21525,13 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference}/clear \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: clearLightImage parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16838,6 +21565,8 @@ paths: description: 'Upload a new account light theme branding image in PNG or JPEG format. + Note: This endpoint is restricted to administrators. + **Example:** @@ -16846,7 +21575,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference}/upload \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: image/png'' --data-binary ''@myimage.png'' @@ -16854,7 +21583,7 @@ paths: operationId: uploadLightImage parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16903,12 +21632,14 @@ paths: post: consumes: - multipart/form-data - description: Upload a new account branding image as form data in the light theme - in PNG or JPEG format. + description: 'Upload a new account branding image as form data in the light + theme in PNG or JPEG format. + + Note: This endpoint is restricted to administrators.' operationId: uploadLightImageMultipart parameters: - description: Name of the branding images (icon or picture). - enum: *id021 + enum: *id026 in: path name: reference required: true @@ -16965,7 +21696,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ``` @@ -16975,7 +21706,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments?device_id__eq=01612df56f3b0a580a010fc700000000 \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getCertificateEnrollments @@ -17132,7 +21863,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments/01612df56f3b0a580a010fc700000000 \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getCertificateEnrollment @@ -17175,59 +21906,53 @@ paths:
- **Example usage:** - + **Example:** ``` - curl \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations + \ - -H ''authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json;charset=UTF-8'' \ - https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations \ - ``` +
+ ``` - curl \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations?reference__eq=dlms + \ - -H ''authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json;charset=UTF-8'' \ - https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations?reference__eq=dlms - \ - ``` - Note: This endpoint does not implement pagination and therefore, list control - parameters such as `limit` or `after` will be ignored by the system. - - ' + **Note:** This endpoint does not implement pagination, and therefore ignores + list control parameters such as `limit` or `after`.' operationId: getCertificateIssuerConfigs parameters: - - 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. + - description: The number of results to return (2-1000). Values outside of this + range are set to the closest limit. in: query maximum: 1000 minimum: 2 name: limit type: integer - - description: The order of the records based on creation time, `ASC` or `DESC`; - by default `ASC`. + - description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.' in: query name: order type: string - - description: The ID of The item after which to retrieve the next page. + - description: The ID of the item after which to retrieve the next page. in: query name: after type: string - description: 'Comma-separated list of data fields to return. Currently supported: - `total_count`' + `total_count`.' in: query name: include type: string @@ -17256,21 +21981,20 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Get certificate issuer configurations. tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations x-filter: reference: - eq x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml post: - description: "Configure the certificate issuer to be used when creating the\ - \ device custom certificates.\n
\n**Example usage:**\n\n```\ncurl -X POST\ - \ \\\n-H 'authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8'\ - \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations\ + description: "Configure the certificate issuer to use when creating device custom\ + \ certificates.\n
\n**Example:**\n\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"reference\": \"customer.dlms\",\n \"certificate_issuer_id\"\ - : \"01621a36719d507b9d48a91b00000000\"\n}'\n```\n" + : \"01621a36719d507b9d48a91b00000000\"\n}'\n```" operationId: createCertificateIssuerConfig parameters: - - description: Certificate issuer configuration request + - description: Certificate issuer configuration request. in: body name: CreateCertificateIssuerConfig required: true @@ -17294,24 +22018,20 @@ paths: schema: $ref: '#/definitions/ErrorObjectResponse' '409': - description: 'A certificate issuer configuration with this reference already + description: A certificate issuer configuration with this reference already exists. - - ' schema: $ref: '#/definitions/ErrorObjectResponse' summary: Create certificate issuer configuration. tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml /v3/certificate-issuer-configurations/lwm2m: get: - description: 'Provides the configured certificate issuer to be used when creating + description: 'Provides the configured certificate issuer used when creating device - certificates for LwM2M communication.
- - ' + certificates for LwM2M.' operationId: getCertificateIssuerConfig responses: '200': @@ -17332,15 +22052,14 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Get certificate issuer configuration. tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml put: - description: "Configure the certificate issuer to be used when creating device\ - \ certificates\nfor LwM2M communication.\n
\n**Example usage:**\n\n```\n\ - curl -X PUT \\\n-H 'authorization: ' \\\n-H 'content-type:\ - \ application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations/lwm2m\ + description: "Configure the certificate issuer used when creating device certificates\n\ + for LwM2M.\n
\n**Example:**\n\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations/lwm2m\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"certificate_issuer_id\": \"01621a36719d507b9d48a91b00000000\"\ - \n}'\n```\n" + \n}'\n```" operationId: updateCertificateIssuerConfig parameters: - description: Certificate Issuer Configuration Request @@ -17372,21 +22091,17 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Update certificate issuer configuration. tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml /v3/certificate-issuer-configurations/{certificate-issuer-configuration-id}: delete: - description: 'Delete the configured certificate issuer configuration. + description: 'Delete certificate issuer configuration. - You can only delete the configurations of custom certificates. - - ' + You can only delete custom certificate configurations.' operationId: deleteCertificateIssuerConfigByID parameters: - - &id022 - description: 'The ID of the certificate issuer configuration. - - ' + - &id027 + description: Certificate issuer ID configuration. in: path name: certificate-issuer-configuration-id required: true @@ -17412,15 +22127,13 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Delete certificate issuer configuration. tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml get: - description: 'Provides the configured certificate issuer. - - ' + description: Provides the configured certificate issuer. operationId: getCertificateIssuerConfigByID parameters: - - *id022 + - *id027 responses: '200': description: OK. @@ -17444,21 +22157,19 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Get certificate issuer configuration. tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml put: - description: 'Update the configured certificate issuer configuration. - - ' + description: Update certificate issuer configuration. operationId: updateCertificateIssuerConfigByID parameters: - - description: Certificate issuer configuration request + - description: Certificate issuer configuration request. in: body name: CertificateIssuerConfigRequest required: true schema: $ref: '#/definitions/CertificateIssuerConfigRequest' - - *id022 + - *id027 responses: '200': description: OK. @@ -17482,36 +22193,31 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Update certificate issuer configuration. tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml /v3/certificate-issuers: get: - description: 'Note: This endpoint does not implement pagination and therefore, - list control parameters such as `limit` or `after` will be ignored by the - system. - - ' + description: '**Note:** This endpoint does not use pagination, and therefore + ignores list control parameters such as `limit` or `after`.' operationId: getCertificateIssuers parameters: - - 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. + - description: The number of results to return (2-1000). Values outside of this + range are set to the closest limit. in: query maximum: 1000 minimum: 2 name: limit type: integer - - description: The order of the records based on creation time, `ASC` or `DESC`; - by default `ASC`. + - description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.' in: query name: order type: string - - description: The ID of The item after which to retrieve the next page. + - description: The ID of the item after which to retrieve the next page. in: query name: after type: string - description: 'Comma-separated list of data fields to return. Currently supported: - `total_count`' + `total_count`.' in: query name: include type: string @@ -17530,15 +22236,15 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Get certificate issuers list. tags: - - Certificate Issuers + - Security and identity - certificate issuers x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml post: - description: "Create a certificate issuer.\nThe maximum number of issuers is\ - \ limited to 20 per account.\nMultiple certificate issuers of the same issuer\ - \ type can be created, provided they have a different name. This allows verification\ - \ of the certificate issuer configuration before activating it.\n
\n**Example\ - \ usage:**\n\n```\ncurl -X POST \\\n-H 'authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers\ + description: "Create a certificate issuer.\n
\nThe maximum number of issuers\ + \ is limited to 20 per account.\n
\nYou can create multiple certificate\ + \ issuers of the same type, provided they have different names. This allows\ + \ verification of the certificate issuer configuration before activation.\n\ +
\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuers\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"issuer_type\": \"GLOBAL_SIGN\",\n \"name\": \"GS Issuer\"\ ,\n \"description\": \"Sample GlobalSign certificate issuer\",\n \"issuer_attributes\"\ : null,\n \"issuer_credentials\": {\n \"api_key\": \"e510e289e6cd8947\"\ @@ -17559,7 +22265,7 @@ paths: nhEAyifKy1/tm3l91Rf/kGpHY7nIQKCXH49tmFwix8gke2nZJmRgX7/zAdMOAKeKH\\nAaIl4nQtv14EbaasMgnn9qgaDYnWzaReEob2QlQ/WYlTor61+KFpGtcf9jAkgudT\\\ n2op+4CF7wT2+aTXdtkVWfmv++iB8GnlqZdxLvyG1cTYjjYHVFbMSWQnxzQqiE2ms\\nQgp+byjWCumpsWTMdTO+d9NkDOo80vDpaRxEgebmhJ0MbX+eFjBgVg==\\\ n-----END RSA PRIVATE KEY-----\",\n \"passphrase\": \"helloworld\"\n\ - \ }\n}'\n```\n" + \ }\n}'\n```" operationId: createCertificateIssuer parameters: - description: Certificate issuer request. @@ -17575,9 +22281,7 @@ paths: $ref: '#/definitions/CertificateIssuerInfo' '400': description: 'Validation error: The data used to create the certificate - issuer failed validation. - - ' + issuer failed validation.' schema: $ref: '#/definitions/ErrorObjectResponse' '401': @@ -17589,20 +22293,16 @@ paths: schema: $ref: '#/definitions/ErrorObjectResponse' '409': - description: 'Conflict. A certificate issuer with this name already exists. - - ' + description: Conflict. A certificate issuer with this name already exists. schema: $ref: '#/definitions/ErrorObjectResponse' '424': - description: 'The request failed due to customer configured external service. - - ' + description: The request failed due to customer configured external service. schema: $ref: '#/definitions/ErrorObjectResponse' summary: Create certificate issuer. tags: - - Certificate Issuers + - Security and identity - certificate issuers x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml /v3/certificate-issuers/{certificate-issuer-id}: delete: @@ -17610,27 +22310,21 @@ paths:
- **Example usage:** - + **Example:** ``` - curl -X DELETE \ - - -H ''authorization: '' \ - - https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/0162155dc77d507b9d48a91b00000000 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/0162155dc77d507b9d48a91b00000000 + \ - ``` + -H ''Authorization: Bearer '' \ - ' + ```' operationId: deleteCertificateIssuer parameters: - - description: 'Certificate issuer ID.
The ID of the certificate issuer. - - An active certificate issuer may not be deleted. + - description: 'Certificate issuer ID. - ' + An active certificate issuer cannot be deleted.' in: path name: certificate-issuer-id required: true @@ -17639,9 +22333,7 @@ paths: '204': description: Certificate issuer deleted. '400': - description: 'Validation error: An active certificate issuer cannot be deleted. - - ' + description: 'Validation error: An active certificate issuer cannot be deleted.' schema: $ref: '#/definitions/ErrorObjectResponse' '401': @@ -17658,16 +22350,12 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Delete certificate issuer. tags: - - Certificate Issuers + - Security and identity - certificate issuers x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml get: operationId: getCertificateIssuer parameters: - - description: 'Certificate issuer ID. - - The ID of the certificate issuer. - - ' + - description: Certificate issuer ID. in: path name: certificate-issuer-id required: true @@ -17679,9 +22367,7 @@ paths: $ref: '#/definitions/CertificateIssuerInfo' '400': description: 'Validation error: The data used to get the certificate issuer - failed validation. - - ' + failed validation.' schema: $ref: '#/definitions/ErrorObjectResponse' '401': @@ -17698,19 +22384,17 @@ paths: $ref: '#/definitions/ErrorObjectResponse' summary: Get certificate issuer by ID. tags: - - Certificate Issuers + - Security and identity - certificate issuers x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml put: - description: "Update a certificate issuer.\n
\n**Example usage:**\n\n```\n\ - curl -X PUT \\\n-H 'authorization: ' \\\n-H 'content-type:\ - \ application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621560be51507b9d48a91b00000000\ + description: "Update a certificate issuer.\n
\n**Example:**\n\n```\ncurl\ + \ -X PUT https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621560be51507b9d48a91b00000000\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"description\": \"Sample GlobalSign certificate issuer - updated.\"\ - ,\n \"name\": \"GlobalSign Issuer\"\n}'\n```\n" + ,\n \"name\": \"GlobalSign Issuer\"\n}'\n```" operationId: updateCertificateIssuer parameters: - - description: 'Certificate issuer ID.
The ID of the certificate issuer. - - ' + - description: Certificate issuer ID. in: path name: certificate-issuer-id required: true @@ -17728,9 +22412,7 @@ paths: $ref: '#/definitions/CertificateIssuerInfo' '400': description: 'Validation error: The data used to update the certificate - issuer failed validation. - - ' + issuer failed validation.' schema: $ref: '#/definitions/ErrorObjectResponse' '401': @@ -17746,28 +22428,22 @@ paths: schema: $ref: '#/definitions/ErrorObjectResponse' '409': - description: 'Conflict. A certificate issuer with this name already exists. - - ' + description: Conflict. A certificate issuer with this name already exists. schema: $ref: '#/definitions/ErrorObjectResponse' '424': - description: 'The request failed due to customer configured external service. - - ' + description: The request failed due to customer-configured external service. schema: $ref: '#/definitions/ErrorObjectResponse' summary: Update certificate issuer. tags: - - Certificate Issuers + - Security and identity - certificate issuers x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml /v3/certificate-issuers/{certificate-issuer-id}/verify: post: - description: 'A utility API that can be used to validate the user configuration - before activating a certificate issuer. - - Verifies that the certificate issuer is accessible and can be used to generate - certificates by Device Management. + description: 'Validates the certificate issuer by sending a signing request + for a test certificate. This should be done before the configuration is made + active.
@@ -17775,31 +22451,25 @@ paths: The API requests the 3rd party CA to sign a test certificate. - For some 3rd party CAs, this operation may make use of the account quota. + For some 3rd party CAs, this operation may use the account quota.
- **Example usage:** - + **Example:** ``` - curl -X POST \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621a36719d507b9d48a91b00000000/verify + \ - -H ''authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json;charset=UTF-8'' \ - https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621a36719d507b9d48a91b00000000/verify - - ``` - - ' + ```' operationId: verifyCertificateIssuer - parameters: - - description: 'Certificate issuer ID.
The ID of the certificate issuer. - - ' + parameters: + - description: Certificate issuer ID. in: path name: certificate-issuer-id required: true @@ -17826,14 +22496,12 @@ paths: schema: $ref: '#/definitions/ErrorObjectResponse' '424': - description: 'The request failed due to customer configured external service. - - ' + description: The request failed due to customer configured external service. schema: $ref: '#/definitions/ErrorObjectResponse' summary: Verify certificate issuer. tags: - - Certificate Issuers + - Security and identity - certificate issuers x-origin: /home/circleci/project/cloud-vault/public/swagger.yaml /v3/developer-certificates: post: @@ -17842,7 +22510,7 @@ paths: **Note:** The number of developer certificates allowed per account is limited. - Please see [Using your own certificate authority](../provisioning-process/using-CA.html). + Please see [Setting up a Certificate Authority](https://www.pelion.com/docs/device-management/current/provisioning-process/integrating-with-a-third-party-ca.html). **Example:** @@ -17852,7 +22520,7 @@ paths: curl -X POST http://api.us-east-1.mbedcloud.com/v3/developer-certificates \ - -H "Authorization: Bearer " \ + -H "Authorization: Bearer " \ -H "content-type: application/json" \ @@ -18145,7 +22813,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Create a new developer certificate to connect to the bootstrap server. tags: - - Device security - developer class certificates + - Security and identity - developer class certificates x-origin: /home/circleci/project/connector-ca/public/swagger.yaml /v3/developer-certificates/{developerCertificateId}: get: @@ -18160,7 +22828,7 @@ paths: curl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' operationId: getDeveloperCertificate @@ -18421,7 +23089,7 @@ paths: summary: Fetch an existing developer certificate to connect to the bootstrap server. tags: - - Device security - developer class certificates + - Security and identity - developer class certificates x-origin: /home/circleci/project/connector-ca/public/swagger.yaml /v3/device-block-categories/: get: @@ -18431,7 +23099,7 @@ paths: **Example:** - Get all defined categories of why device is blocked from the device management + Get all defined device suspension categories: ``` @@ -18444,7 +23112,7 @@ paths: operationId: Block_Categories_list parameters: - description: This endpoint doesn't support paging. Parameter is accepted for - API compatibility. Value is ignored + API compatibility. Value is ignored. in: query maximum: 1000 minimum: 2 @@ -18455,7 +23123,7 @@ paths: name: order type: string - description: This endpoint doesn't support paging. Parameter is accepted for - API compatibility. Value is ignored + API compatibility. Value is ignored. in: query name: after type: string @@ -18554,120 +23222,6 @@ paths: tags: - Device directory - lifecycle x-origin: /home/circleci/project/device-directory/public/swagger.yml - /v3/device-enrollment-denials: - get: - description: 'This produces a list of failed attempts to bootstrap using a particular - certificate which is blacklisted (trusted_certificate). - - Returned list can be filtered by endpoint name. Trusted certificate ID filter - is required. - - - **Example usage:** - - ``` - - curl -X GET -H ''Authorization: Bearer '' \ - - https://api.us-east-1.mbedcloud.com/v3/device-enrollment-denials?trusted_certificate_id__eq={cert-id}&endpoint_name__eq={endpoint_name} - - ``` - - ' - operationId: listEnrollmentDenialAttempts - parameters: - - description: filtering based on trusted certificate id - in: query - name: trusted_certificate_id__eq - required: true - type: string - - description: filtering based on endpoint name - in: query - name: endpoint_name__eq - type: string - - description: Optional parameter for pagination. Denied device ID. - in: query - name: after - type: string - - description: Optional parameter for pagination. - enum: - - ASC - - DESC - in: query - name: order - type: string - - description: Optional parameter for pagination. - in: query - name: limit - type: integer - produces: - - application/json - responses: - 200: - description: Query Success. Responding with List of Devices. - schema: - $ref: '#/definitions/DenialAttemptsResponse' - 401: - description: JWT validation failed. - schema: - $ref: '#/definitions/ErrorResponse' - 404: - description: ID set in pagination parameter `after` not found. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Return list of devices which were denied to bootstrap due to being - subjected to blacklisting. - tags: - - EnrollmentDenials - x-filter: - endpoint_name: - - eq - trusted_certificate_id: - - eq - x-origin: /home/circleci/project/enrollment-denial-service/public/swagger.yaml - /v3/device-enrollment-denials/{device_enrollment_denial_id}: - get: - description: 'Query for a single attempt to bootstrap with a blacklisted certificate - by ID. - - - **Example usage:** - - ``` - - curl -X GET -H ''Authorization: Bearer '' \ - - https://api.us-east-1.mbedcloud.com/v3/device-enrollment-denials/{device_enrollment_denial_id} - - ``` - - ' - operationId: getEnrollmentDenialAttempt - parameters: - - description: id of the recorded failed bootstrap attempt - in: path - name: device_enrollment_denial_id - required: true - type: string - produces: - - application/json - responses: - 200: - description: Query Success. Responding with blacklisted device. - schema: - $ref: '#/definitions/BlackListedDeviceData' - 401: - description: JWT validation failed. - schema: - $ref: '#/definitions/ErrorResponse' - 404: - description: ID not found. - schema: - $ref: '#/definitions/ErrorResponse' - summary: Query for a single device by ID - tags: - - EnrollmentDenials - x-origin: /home/circleci/project/enrollment-denial-service/public/swagger.yaml /v3/device-enrollments: get: description: 'Provides a list of pending and claimed enrollments. @@ -18679,7 +23233,7 @@ paths: curl -X GET \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ https://api.us-east-1.mbedcloud.com/v3/device-enrollments @@ -18691,7 +23245,7 @@ paths: curl -X GET \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ ''https://api.us-east-1.mbedcloud.com/v3/device-enrollments?limit=10'' @@ -18742,7 +23296,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Get a list of enrollments per account. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml post: description: 'When the device connects to the bootstrap server and provides @@ -18756,7 +23310,7 @@ paths: curl -X POST \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -18793,7 +23347,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Create a single enrollment. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml /v3/device-enrollments-bulk-deletes: post: @@ -18801,7 +23355,7 @@ paths: - multipart/form-data description: "With bulk delete, you can upload a `CSV` file containing a number\ \ of enrollment IDs to delete.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization:\ - \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ + \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes\n\ \n```\n**To ensure your CSV file is valid:**\n1. The first line of the file\ \ (header) is ignored.\n1. Each line can contain comma-separated values, where\ @@ -18824,7 +23378,7 @@ paths: \ , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A\ \ file containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ , First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12,\ - \ Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12,\ + \ Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23,\ \ Too-short identity.\n\"\", Empty quotation marks are an invalid identity.\n\ \" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\ \ \", Whitespace inside quotation marks is not trimmed, causing an error.\n\ @@ -18853,7 +23407,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Bulk delete. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml /v3/device-enrollments-bulk-deletes/{id}: get: @@ -18901,7 +23455,7 @@ paths: curl -X GET \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes/{id} @@ -18935,7 +23489,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Get bulk delete entity. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml /v3/device-enrollments-bulk-uploads: post: @@ -18943,7 +23497,7 @@ paths: - multipart/form-data description: "With bulk upload, you can upload a `CSV` file containing a number\ \ of enrollment IDs.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization:\ - \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ + \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads\n\ \n```\n **To ensure your CSV file is valid:**\n 1. The first line of the\ \ file (header) is ignored.\n 1. Each line can contain comma-separated values,\ @@ -18996,7 +23550,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Bulk upload. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml /v3/device-enrollments-bulk-uploads/{id}: get: @@ -19044,7 +23598,7 @@ paths: curl -X GET \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/{id} @@ -19078,14 +23632,14 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Get bulk upload entity. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml /v3/device-enrollments/{id}: delete: description: 'To free a device from your account, delete the enrollment claim. To bypass the device ownership, you need to delete the enrollment and factory reset the device. For more information, see [Transferring ownership using - First-to-Claim](../connecting/device-ownership-first-to-claim-by-enrollment-list.html). + First-to-Claim](https://www.pelion.com/docs/device-management/current/connecting/device-ownership-first-to-claim-by-enrollment-list.html).
@@ -19095,7 +23649,7 @@ paths: curl -X DELETE \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ https://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id} @@ -19120,7 +23674,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Delete an enrollment by ID. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml get: description: 'Check detailed enrollment info, for example, date of claim or @@ -19133,7 +23687,7 @@ paths: curl -X GET \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ https://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id} @@ -19160,35 +23714,19 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Get details of an single enrollment by ID. tags: - - Public API + - Device ownership - enrollments x-origin: /home/circleci/project/enrollment-service/public/swagger.yaml /v3/device-events/: get: - description: 'List all device events for an account. - - - **Example:** - - Following example gets device-events limiting returned results to max 5 events - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?limit=5 \ - - -H ''Authorization: Bearer '' - - ``` - - or to get events for certain device filter based on device_id: - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?device_id= - \ - - -H ''Authorization: Bearer '' - - ```' + description: "List all or a filtered list of device events for the account.\ + \ Device events are events significant to operation or lifetime, such as creation,\ + \ firmware update, and suspension.\n\nTo see statistics for device connectivity\ + \ and usage, use the [Statistics API](https://www.pelion.com/docs/device-management-api/connect-statistics/).\n\ + \n **Example:**\n Following example gets device-events limiting returned results\ + \ to max 5 events\n ```\n curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?limit=5\ + \ \\\n -H 'Authorization: Bearer '\n ```\n or to get events for certain\ + \ device filter based on device_id:\n ```\n curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?device_id=\ + \ \\\n -H 'Authorization: Bearer '\n ```" operationId: Device_Event_list parameters: - description: How many objects to retrieve in the page (2-1000). Limit values @@ -19214,7 +23752,7 @@ paths: - description: "URL-encoded query string parameter to filter returned data.\n\ \n##### Filtering\n\n`?filter={URL encoded query string}`\n\nThe query string\ \ is made up of key/value pairs separated by ampersands. So for a query\ - \ of\n`key1=value1&key2=value2&key3=value3`, this would be encoded as `?filter=key1%3Dvalue1%26key2%3Dvalue2%26key3%3Dvalue3`.\n\ + \ of\n`key1=value1&key2=value2&key3=value3`, this is encoded as `?filter=key1%3Dvalue1%26key2%3Dvalue2%26key3%3Dvalue3`.\n\ \n###### Filterable fields:\n\nThe below table lists all filterable fields:\n\ \n\n \n \n \n \n \n \n\ @@ -19386,12 +23924,13 @@ paths: x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/device-events/{device_event_id}/: get: - description: 'Retrieve a specific device event. + description: '"Retrieve a specific device event. See ''/v3/device-events/'' + for information on device events, and how to get the device_event_id." **Example:** - To fetch a specific event you can use the ''id'' field form the ''/v3/device-events''. + To fetch a specific event you can use the ''id'' field from ''/v3/device-events''. Form of ''016c03d40a4e000000000001001003b4'' ``` @@ -19461,26 +24000,30 @@ paths: \ \n \n \n \n \ \ \n \n \n \n\ \ \n \n \n \ - \ \n \n \n \n \n\ - \ \n \n \n \ - \ \n \n \n \n\ + \ \n \n \n \n \n\ + \ \n \n \n \ + \ \n \n \n \n\ \ \n \n \n \n \ - \ \n \n \n \n \n \n
Field= / __eq\ \ / __neq__in / __nin__lte / __gte\u2713
name\u2713\u2713 
custom_attributes\u2713  
created_at\u2713\u2713\u2713
updated_at\u2713  
component_attributes\u2713  
created_at\u2713\u2713\u2713
etag\u2713\u2713\u2713\ -
\n \n\nThe examples below show\ - \ the queries in *unencoded* form.\n\n###### By device group properties:\n\ - \n`name__eq=mygroup`\n\n###### On date-time fields:\n\nDate-time fields\ - \ should be specified in UTC RFC3339 format `YYYY-MM-DDThh:mm:ss.msZ`. There\ - \ are three permitted\nvariations:\n\n* UTC RFC3339 with milliseconds, for\ - \ example, 2016-11-30T16:25:12.1234Z.\n* UTC RFC3339 without milliseconds,\ - \ for example, 2016-11-30T16:25:12Z.\n* UTC RFC3339 shortened - without\ - \ milliseconds and punctuation, for example, 20161130T162512Z.\n\nDate-time\ - \ filtering supports three operators:\n\n* Equality.\n* Greater than or\ - \ equal to – field name suffixed with `__gte`.\n* Less than or equal\ - \ to – field name suffixed with `__lte`.\n\nLower and upper limits\ - \ to a date-time range may be specified by including both the `__gte` and\ - \ `__lte` forms in\nthe filter:\n\n`{field name}[|__lte|__gte]={UTC RFC3339\ - \ date-time}`\n\n###### By device group custom attributes:\n\n`custom_attributes__{param}={value}`\n\ - \n`custom_attributes__tag=TAG1`\n\n##### Multi-field example\n\n`name__eq=mygroup&created_at__gte=2016-11-30T16:25:12.1234Z&created_at__lte=2016-12-30T00:00:00Z`\n\ + \ updated_at\n \u2713\n \u2713\n\ + \ \u2713\n \n \n etag\n \ + \ \u2713\n \u2713\n \u2713\n \n\ + \ \n\n \n\nThe examples below show the queries in\ + \ *unencoded* form.\n\n###### By device group properties:\n\n`name__eq=mygroup`\n\ + \n###### On date-time fields:\n\nDate-time fields should be specified in\ + \ UTC RFC3339 format `YYYY-MM-DDThh:mm:ss.msZ`. There are three permitted\n\ + variations:\n\n* UTC RFC3339 with milliseconds, for example, 2016-11-30T16:25:12.1234Z.\n\ + * UTC RFC3339 without milliseconds, for example, 2016-11-30T16:25:12Z.\n\ + * UTC RFC3339 shortened - without milliseconds and punctuation, for example,\ + \ 20161130T162512Z.\n\nDate-time filtering supports three operators:\n\n\ + * Equality.\n* Greater than or equal to – field name suffixed with\ + \ `__gte`.\n* Less than or equal to – field name suffixed with `__lte`.\n\ + \nLower and upper limits to a date-time range may be specified by including\ + \ both the `__gte` and `__lte` forms in\nthe filter:\n\n`{field name}[|__lte|__gte]={UTC\ + \ RFC3339 date-time}`\n\n###### By device group custom attributes:\n\n`custom_attributes__{param}={value}`\n\ + \n`custom_attributes__tag=TAG1`\n\n###### By device group component attributes:\n\ + \n`component_attributes__{name}={version}`\n`component_attributes__{name}__{operator}={version}`\n\ + \n`component_attributes__ble=1.2.3`\n`component_attributes__main__gt=1.2.3`\n\ + \n##### Multi-field example\n\n`name__eq=mygroup&created_at__gte=2016-11-30T16:25:12.1234Z&created_at__lte=2016-12-30T00:00:00Z`\n\ \nEncoded:\n\n`?filter=name__eq%3Dmygroup%26created_at__gte%3D2016-11-30T16%3A25%3A12.1234Z%26created_at__lte%3D2016-12-30T00%3A00%3A00Z`\n\ \n##### Filtering with filter operators\n\nString field filtering supports\ \ the following operators:\n\n* Equality: `__eq`.\n* Non-equality: `__neq`.\n\ @@ -19636,9 +24179,9 @@ paths: required: true schema: properties: - custom_attributes: *id023 - description: *id024 - name: *id025 + custom_attributes: *id028 + description: *id029 + name: *id030 type: object responses: '201': @@ -19663,7 +24206,8 @@ paths: x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/device-groups/{device-group-id}/: delete: - description: Delete a group. + description: Delete a group. This deletes the group, but not the devices in + the group. operationId: Group_delete parameters: - description: The ID of the group. @@ -19687,7 +24231,9 @@ paths: - Device directory - groups x-origin: /home/circleci/project/device-directory/public/swagger.yml get: - description: Get a group. + description: Returns [DeviceGroup](https://www.pelion.com/docs/device-management-api/device-directory/) + info what contains info of the group, for example, name and updated date. + To list the devices in the group, use '/v3/device-groups/{device-group-id}/devices/'. operationId: Group_retrieve parameters: - description: The group ID @@ -19717,7 +24263,7 @@ paths: - Device directory - groups x-origin: /home/circleci/project/device-directory/public/swagger.yml put: - description: Modify the attributes of a group. + description: Modify the attributes of a group, such as the description. operationId: Group_update parameters: - in: path @@ -19730,9 +24276,9 @@ paths: required: true schema: properties: - custom_attributes: *id023 - description: *id024 - name: *id025 + custom_attributes: *id028 + description: *id029 + name: *id030 type: object responses: '200': @@ -19757,7 +24303,7 @@ paths: x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/device-groups/{device-group-id}/devices/: get: - description: Get a page of devices. + description: Get a page of devices in a specified group. operationId: Group_members_retrieve parameters: - in: path @@ -20272,6 +24818,22 @@ paths: in: query name: name__nin type: string + - description: eq filter for the "net_id" field + in: query + name: net_id__eq + type: string + - description: neq filter for the "net_id" field + in: query + name: net_id__neq + type: string + - description: in filter for the "net_id" field + in: query + name: net_id__in + type: string + - description: nin filter for the "net_id" field + in: query + name: net_id__nin + type: string - description: eq filter for the "serial_number" field in: query name: serial_number__eq @@ -20358,7 +24920,7 @@ paths: summary: Get a page of devices. tags: - Device directory - groups - x-filter: &id026 + x-filter: &id031 account_id: - eq - neq @@ -20502,6 +25064,11 @@ paths: - neq - in - nin + net_id: + - eq + - neq + - in + - nin operator_suspended: - eq - neq @@ -20531,7 +25098,7 @@ paths: x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/device-groups/{device-group-id}/devices/add/: post: - description: Add one device to a group. + description: Add one device to a group. A device can be in multiple groups. operationId: Group_members_add parameters: - description: The ID of the group. @@ -20546,59 +25113,224 @@ paths: schema: $ref: '#/definitions/DeviceGroupManipulation' responses: - '204': - description: Success - device added. + '204': + description: Success - device added. + '400': + description: Bad request. + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: Unauthorized. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: Not found. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Add a device to a group. + tags: + - Device directory - groups + x-origin: /home/circleci/project/device-directory/public/swagger.yml + /v3/device-groups/{device-group-id}/devices/remove/: + post: + description: Remove one device from a group. + operationId: Group_members_remove + parameters: + - description: The ID of the group. + in: path + name: device-group-id + required: true + type: string + - description: Body of the request. + in: body + name: body + required: true + schema: + $ref: '#/definitions/DeviceGroupManipulation' + responses: + '204': + description: Success - device removed. + '400': + description: Bad request. + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: Unauthorized. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: Not found. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Remove a device from a group. + tags: + - Device directory - groups + x-origin: /home/circleci/project/device-directory/public/swagger.yml + /v3/device-logs: + get: + description: 'List logs for all devices based on a combination of filters. + + + **Example usage:** + + ``` + + curl -X GET \ + + -H ''Authorization: Bearer '' \ + + https://api.us-east-1.mbedcloud.com/v3/device-logs + + ``` + + ' + operationId: ListGatewayDeviceLogs + parameters: + - description: The device ID for which to retrieve logs. + in: query + name: device_id__in + required: false + type: string + - default: 100 + description: Limit the number of returned results. The default value is 100. + in: query + maximum: 1000 + minimum: 2 + 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: DESC + description: 'Record order. Acceptable values: ASC, DESC.' + enum: &id032 + - ASC + - DESC + 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: RFC 3339 UTC timestamp range upper limit. + format: date-time + in: query + name: timestamp__lte + required: false + type: string + - description: RFC 3339 UTC timestamp range lower limit. + format: date-time + in: query + name: timestamp__gte + required: false + type: string + - description: Name of the application on a device that generated logs. + in: query + name: app_name__eq + required: false + type: string + - description: Device log type filter. + in: query + name: type__eq + required: false + type: string + - description: Device log message filter. + in: query + name: message__eq + required: false + type: string + - description: Minimum severity level of logs to retrieve. + enum: &id033 + - DEBUG + - TRACE + - INFO + - WARNING + - ERROR + - CRITICAL + in: query + name: level__gte + required: false + type: string + responses: + '200': + description: Retrieved logs successfully + schema: + $ref: '#/definitions/LogsPage' '400': - description: Bad request. + description: Bad request schema: $ref: '#/definitions/ErrorResponse' '401': - description: Unauthorized. - schema: - $ref: '#/definitions/ErrorResponse' - '404': - description: Not found. + description: Not authenticated schema: $ref: '#/definitions/ErrorResponse' - summary: Add a device to a group. + summary: List all device logs based on filters tags: - - Device directory - groups - x-origin: /home/circleci/project/device-directory/public/swagger.yml - /v3/device-groups/{device-group-id}/devices/remove/: - post: - description: Remove one device from a group. - operationId: Group_members_remove + - Gateway Logs Public API + x-filter: + app_name: + - eq + device_id: + - in + level: + - gte + message: + - eq + timestamp: + - lte + - gte + type: + - eq + x-origin: /home/circleci/project/gateway/public/logs.yaml + /v3/device-logs/{device_log_id}: + get: + description: 'Retrieve a device log from a device by log ID. + + + **Example usage:** + + ``` + + curl -X GET \ + + -H ''Authorization: Bearer '' \ + + https://api.us-east-1.mbedcloud.com/v3/device-logs/(device_log_id) + + ``` + + ' + operationId: GetDeviceLogBasedOnLogID parameters: - - description: The ID of the group. + - description: The ID of the device log. in: path - name: device-group-id + name: device_log_id required: true type: string - - description: Body of the request. - in: body - name: body - required: true - schema: - $ref: '#/definitions/DeviceGroupManipulation' responses: - '204': - description: Success - device removed. - '400': - description: Bad request. + '200': + description: Retrieved result successfully schema: - $ref: '#/definitions/ErrorResponse' + $ref: '#/definitions/Log' '401': - description: Unauthorized. + description: Not authenticated schema: $ref: '#/definitions/ErrorResponse' '404': - description: Not found. + description: Not found schema: $ref: '#/definitions/ErrorResponse' - summary: Remove a device from a group. + summary: Retrieve a device log by ID. tags: - - Device directory - groups - x-origin: /home/circleci/project/device-directory/public/swagger.yml + - Gateway Logs Public API + x-origin: /home/circleci/project/gateway/public/logs.yaml /v3/device-queries/: get: description: List all device queries. @@ -20628,32 +25360,33 @@ paths: \n##### Filtering\n\n`?filter={URL encoded query string}`\n\nThe query string\ \ is made up of key/value pairs separated by ampersands. So for a query\ \ of\n`key1=value1&key2=value2&key3=value3`, this would be encoded as: `?filter=key1%3Dvalue1%26key2%3Dvalue2%26key3%3Dvalue3`.\n\ - \nThe below table lists all filterable fields:\n\n\n \n \ - \ \n \n \n \n \n \n \n \n\ - \ \n \n \n \n \n \n \n \n\ - \ \n \n \n \ - \ \n \n \n \n \n \n \n \n \n\ + \n###### Filterable fields\n\nThe below table lists all filterable fields:\n\ + \n
Field= / __eq / __neq__in\ - \ / __nin__lte / __gte
created_at\u2713\u2713\ - \u2713
etag\u2713\u2713\u2713
id\u2713\u2713\ -  
name
\n \n \n \n \n \n \n\ + \ \n \n \n \n \n \ + \ \n \n \n \ + \ \n \n \n \n \n \n \n \n \n \ + \ \n \n \n \ + \ \n \n \n \n \n \n \n \n \n\ \ \n \n \n \ - \ \n \n \n \n \ - \ \n \n \n \n \n\ - \ \n \n \n \ - \ \n \n
Field= / __eq\ + \ / __neq__in / __nin__lte / __gte
created_at\u2713\u2713\u2713
etag\u2713\u2713\ + \u2713
id\u2713\u2713 
name\u2713\u2713\ +  
query\u2713\u2713 
query\u2713\u2713 
updated_at\u2713\u2713\u2713
\n \n\nThe examples below show the queries\ - \ in *unencoded* form.\n\n###### By device query properties (all properties\ - \ are filterable):\n\nFor example:\n`description={value}`\n\n###### On date-time\ - \ fields:\n\nDate-time fields should be specified in UTC RFC3339 format\ - \ `YYYY-MM-DDThh:mm:ss.msZ`. There are three permitted\nvariations:\n\n\ - * UTC RFC3339 with milliseconds, for example, 2016-11-30T16:25:12.1234Z.\n\ - * UTC RFC3339 without milliseconds, for example, 2016-11-30T16:25:12Z.\n\ - * UTC RFC3339 shortened - without milliseconds and punctuation, for example,\ - \ 20161130T162512Z.\n\nDate-time filtering supports three operators:\n\n\ - * Equality.\n* Greater than or equal to – field name suffixed with\ - \ `__gte`.\n* Less than or equal to – field name suffixed with `__lte`.\n\ - \nLower and upper limits to a date-time range may be specified by including\ - \ both the `__gte` and `__lte` forms in\nthe filter: `{field name}[|__lte|__gte]={UTC\ - \ RFC3339 date-time}`.\n\n##### Multi-field example\n\n`query_id=0158d38771f70000000000010010038c&created_at__gte=2016-11-30T16:25:12.1234Z&created_at__lte=2016-12-30T00:00:00Z`\n\ + \ \n \n updated_at\n \u2713\n\ + \ \u2713\n \u2713\n \n \n\n\ +  \n\nThe examples below show the queries in *unencoded* form.\n\n######\ + \ By device query properties (all properties are filterable):\n\nFor example:\n\ + `description={value}`\n\n###### On date-time fields:\n\nDate-time fields\ + \ should be specified in UTC RFC3339 format `YYYY-MM-DDThh:mm:ss.msZ`. There\ + \ are three permitted\nvariations:\n\n* UTC RFC3339 with milliseconds, for\ + \ example, 2016-11-30T16:25:12.1234Z.\n* UTC RFC3339 without milliseconds,\ + \ for example, 2016-11-30T16:25:12Z.\n* UTC RFC3339 shortened - without\ + \ milliseconds and punctuation, for example, 20161130T162512Z.\n\nDate-time\ + \ filtering supports three operators:\n\n* Equality.\n* Greater than or\ + \ equal to – field name suffixed with `__gte`.\n* Less than or equal\ + \ to – field name suffixed with `__lte`.\n\nLower and upper limits\ + \ to a date-time range may be specified by including both the `__gte` and\ + \ `__lte` forms in\nthe filter: `{field name}[|__lte|__gte]={UTC RFC3339\ + \ date-time}`.\n\n##### Multi-field example\n\n`query_id=0158d38771f70000000000010010038c&created_at__gte=2016-11-30T16:25:12.1234Z&created_at__lte=2016-12-30T00:00:00Z`\n\ \nEncoded:\n\n`filter=query_id%3D0158d38771f70000000000010010038c%26created_at__gte%3D2016-11-30T16%3A25%3A12.1234Z%26created_at__lte%3D2016-11-30T00%3A00%3A00Z`\n\ \n##### Filtering with filter operators\n\nString field filtering supports\ \ the following operators:\n\n* Equality: `__eq`.\n* Non-equality: `__neq`.\n\ @@ -20759,7 +25492,7 @@ paths: description: Unable to find page. summary: List device queries. tags: - - Device directory - filter queries + - Device directory - device queries x-filter: created_at: - in @@ -20808,7 +25541,7 @@ paths: description: Not authenticated. summary: Create a device query. tags: - - Device directory - filter queries + - Device directory - device queries x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/device-queries/{query_id}/: delete: @@ -20831,7 +25564,7 @@ paths: description: Unable to delete update device query because it can't be found. summary: Delete a device query. tags: - - Device directory - filter queries + - Device directory - device queries x-origin: /home/circleci/project/device-directory/public/swagger.yml get: description: Retrieve a specific device query. @@ -20855,7 +25588,7 @@ paths: description: Unable to find device query. summary: Retrieve a device query. tags: - - Device directory - filter queries + - Device directory - device queries x-origin: /home/circleci/project/device-directory/public/swagger.yml put: description: Update a specifc device query. @@ -20885,12 +25618,12 @@ paths: description: Unable to update device query because it can't be found. summary: Update a device query. tags: - - Device directory - filter queries + - Device directory - device queries x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/devicelog/: get: deprecated: true - description: 'DEPRECATED: List all device events. Use `/v3/device-events/` instead.' + description: 'DEPRECATED: This API is replaced with `/v3/device-events/`.' operationId: Device_Log_list parameters: - description: How many objects to retrieve in the page (2-1000). Limit values @@ -21060,7 +25793,7 @@ paths: '401': description: Not authenticated. '404': - description: Unable to find page + description: Unable to find page. summary: 'DEPRECATED: List all device events.' tags: - Device directory - events @@ -21099,8 +25832,7 @@ paths: /v3/devicelog/{device_event_id}/: get: deprecated: true - description: Retrieve device event (deprecated, use /v3/device-events/{device_event_id}/ - instead). + description: 'DEPRECATED: This API is replaced by `/v3/device-events/` and `/v3/device-events/{device_event_id}/`.' operationId: Device_Log_retrieve parameters: - in: path @@ -21124,7 +25856,7 @@ paths: x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/devices/: get: - description: 'List all devices. + description: 'List all devices enrolled to Device Management for the account. **Example:** @@ -21157,6 +25889,116 @@ paths: in: query name: after type: string + - description: 'URL encoded query string parameter to filter returned data. + + + ##### Filtering + + ```?filter={URL encoded query string}``` + + + The query string is made up of key/value pairs separated by ampersands. + So for a query of + + ```key1=value1&key2=value2&key3=value3``` this would be encoded as follows: + + ```?filter=key1%3Dvalue1%26key2%3Dvalue2%26key3%3Dvalue3``` + + The examples below show the queries in *unencoded* form. + + + ###### By device properties (all properties are filterable): + + ```state=[unenrolled|cloud_enrolling|bootstrapped|registered]``` + + + ```device_class={value}``` + + + ###### On date-time fields: + + Date-time fields should be specified in UTC RFC3339 format ```YYYY-MM-DDThh:mm:ss.msZ```. + There are three permitted + + variations: + + + * UTC RFC3339 with milliseconds e.g. 2016-11-30T16:25:12.1234Z + + * UTC RFC3339 without milliseconds e.g. 2016-11-30T16:25:12Z + + * UTC RFC3339 shortened - without milliseconds and punctuation e.g. 20161130T162512Z + + + Date-time filtering supports three operators: + + + * equality + + * greater than or equal to – field name suffixed with ```__gte``` + + * less than or equal to – field name suffixed with ```__lte``` + + + Lower and upper limits to a date-time range may be specified by including + both the ```__gte``` and ```__lte``` forms in + + the filter. + + + ```{field name}[|__lte|__gte]={UTC RFC3339 date-time}``` + + + ###### On device custom attributes: + + + ```custom_attributes__{param}={value}``` + + ```custom_attributes__tag=TAG1``` + + + ###### On device component attributes: + + + ```component_attributes__{name}={version}``` + + ```component_attributes__ble=1.2.3``` + + + ##### Multi-field example + + + ```state=bootstrapped&created_at__gte=2016-11-30T16:25:12.1234Z&created_at__lte=2016-12-30T00:00:00Z``` + + + Encoded: + + + ```?filter=state%3Dbootstrapped%26created_at__gte%3D2016-11-30T16%3A25%3A12.1234Z%26created_at__lte%3D2016-11-30T00%3A00%3A00Z``` + + + ##### Filtering with filter operators + + + String field filtering supports the following operators: + + + * equality: `__eq` + + * non-equality: `__neq` + + * in : `__in` + + * not in: `__nin` + + + For `__in` and `__nin` filters list of parameters must be comma-separated: + + + `state__nin=unenrolled,dergistered`' + in: query + name: filter + type: string - description: 'Comma-separated list of data fields to return. Currently supported: `total_count`.' in: query @@ -21650,6 +26492,22 @@ paths: in: query name: name__nin type: string + - description: eq filter for the "net_id" field + in: query + name: net_id__eq + type: string + - description: neq filter for the "net_id" field + in: query + name: net_id__neq + type: string + - description: in filter for the "net_id" field + in: query + name: net_id__in + type: string + - description: nin filter for the "net_id" field + in: query + name: net_id__nin + type: string - description: eq filter for the "serial_number" field in: query name: serial_number__eq @@ -21730,10 +26588,12 @@ paths: summary: List all devices. tags: - Device directory - devices - x-filter: *id026 + x-filter: *id031 x-origin: /home/circleci/project/device-directory/public/swagger.yml post: - description: Create a new device. + description: Create a new device in Device Management. Usually you do not need + to create a device this way, as it is automatically created when it bootstraps + or connects to Device Management. operationId: Device_create parameters: - in: body @@ -21772,70 +26632,230 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/devices/01612df56f3b0a580a010fc700000000/certificates/customer.dlms/renew \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-length: 0'' ```' operationId: RequestCertificateRenewal parameters: - - description: The device ID. + - description: The device ID. + in: path + name: device-id + pattern: '[0-9a-fA-F]{32}' + required: true + type: string + - description: The certificate name. + in: path + name: certificate-name + pattern: '[\w\-]{1,10}\.[\w\-.]{1,10}' + required: true + type: string + responses: + '201': + description: Created. + schema: + $ref: '#/definitions/CertificateEnrollment' + '400': + description: 'Validation error: There is no certificate issuer configured + for this certificate.' + schema: + $ref: '#/definitions/ErrorObjectResponse' + '401': + description: You are not authorized to perform the action. + schema: + $ref: '#/definitions/ErrorObjectResponse' + '403': + description: Forbidden. + schema: + $ref: '#/definitions/ErrorObjectResponse' + '404': + description: The device ID or certificate name is not found. + schema: + $ref: '#/definitions/ErrorObjectResponse' + '409': + description: Conflict. A renewal request for this certificate is in progress. + schema: + $ref: '#/definitions/ErrorObjectResponse' + '423': + description: 'Either: + + - Operation not supported for this device. + + - The device is not connected.' + schema: + $ref: '#/definitions/ErrorObjectResponse' + summary: Request certificate renewal. + tags: + - Device security - device certificate renewals + x-origin: /home/circleci/project/certificate-enrollment/public/swagger.yaml + /v3/devices/{device-id}/echo: + get: + description: 'Retrieve the Device Echo object, which represents the last known + state of the device. The state includes the resources and their reported values + with the desired state of the device. + + Auto-observable and subscribed resources are stored as the reported state + of the device. To change the desired state, issue write commands with `/v2/device-requests/{device-id}`. + + + **Example:** + + ``` + + curl -X GET https://api.us-east-1.mbedcloud.com/v3/devices/{device-id}/echo + -H ''Authorization: Bearer '' + + ```' + operationId: getDeviceEchoObject + parameters: + - description: The device ID generated by Device Management. + format: UUID, 32 hexadecimal characters + in: path + name: device-id + required: true + type: string + produces: + - application/json + responses: + 200: + description: Device found and returned. + schema: + $ref: '#/definitions/EchoDevice' + 401: + description: Authentication failure. + 404: + description: Device not found from Device Echo. + summary: Get the Device Echo object. + tags: + - Device Echo + x-origin: /home/circleci/project/device-server/public/swagger.yaml + /v3/devices/{device_id}/logs: + get: + description: 'Retrieve logs for a given device based on a combination of filters. + + + **Example usage:** + + ``` + + curl -X GET \ + + -H ''Authorization: Bearer '' \ + + https://api.us-east-1.mbedcloud.com/v3/devices/{device_id}/logs + + ``` + + ' + operationId: ListSingleGatewayDeviceLogs + parameters: + - description: The id of the device in: path - name: device-id - pattern: '[0-9a-fA-F]{32}' + name: device_id required: true type: string - - description: The certificate name. - in: path - name: certificate-name - pattern: '[\w\-]{1,10}\.[\w\-.]{1,10}' - required: true + - default: 100 + description: Limit the number of returned results. The default value is 100. + in: query + maximum: 1000 + minimum: 2 + 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: DESC + description: 'Record order. Acceptable values: ASC, DESC.' + enum: *id032 + 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: RFC 3339 UTC timestamp range upper limit. + format: date-time + in: query + name: timestamp__lte + required: false + type: string + - description: RFC 3339 UTC timestamp range lower limit. + format: date-time + in: query + name: timestamp__gte + required: false + type: string + - description: Name of the application on a device that generated logs. + in: query + name: app_name__eq + required: false + type: string + - description: Device log type filter. + in: query + name: type__eq + required: false + type: string + - description: Device log message filter. + in: query + name: message__eq + required: false + type: string + - description: Minimum severity level of logs to retrieve. + enum: *id033 + in: query + name: level__gte + required: false type: string responses: - '201': - description: Created. + '200': + description: Retrieved logs successfully schema: - $ref: '#/definitions/CertificateEnrollment' + $ref: '#/definitions/LogsPage' '400': - description: 'Validation error: There is no certificate issuer configured - for this certificate.' + description: Bad request schema: - $ref: '#/definitions/ErrorObjectResponse' + $ref: '#/definitions/ErrorResponse' '401': - description: You are not authorized to perform the action. - schema: - $ref: '#/definitions/ErrorObjectResponse' - '403': - description: Forbidden. + description: Not authenticated schema: - $ref: '#/definitions/ErrorObjectResponse' + $ref: '#/definitions/ErrorResponse' '404': - description: The device ID or certificate name is not found. - schema: - $ref: '#/definitions/ErrorObjectResponse' - '409': - description: Conflict. A renewal request for this certificate is in progress. - schema: - $ref: '#/definitions/ErrorObjectResponse' - '423': - description: 'Either: - - - Operation not supported for this device. - - - The device is not connected.' + description: Not found schema: - $ref: '#/definitions/ErrorObjectResponse' - summary: Request certificate renewal. + $ref: '#/definitions/ErrorResponse' + summary: Return the logs for a specific device. tags: - - Device security - device certificate renewals - x-origin: /home/circleci/project/certificate-enrollment/public/swagger.yaml + - Gateway Logs Public API + x-filter: + app_name: + - eq + level: + - gte + message: + - eq + timestamp: + - lte + - gte + type: + - eq + x-origin: /home/circleci/project/gateway/public/logs.yaml /v3/devices/{id}/: delete: description: Delete device. Only available for devices with a developer certificate. - Attempting to delete a device with a production certicate returns a 400 response. + Attempting to delete a device with a production certificate returns a 400 + response. operationId: Device_destroy parameters: - - description: The ID of the device. + - description: The [Device ID](https://www.pelion.com/docs/device-management/current/connecting/device-identity.html) + created by Device Management. in: path name: id required: true @@ -21854,7 +26874,10 @@ paths: - Device directory - devices x-origin: /home/circleci/project/device-directory/public/swagger.yml get: - description: 'Retrieve information about a specific device. + description: 'Retrieve information about a specific device. This API returns + [DeviceData](https://www.pelion.com/docs/device-management-api/device-directory/). + If you want to see the structure of resources in the device or the actual + resource values, use the [Connect API](https://www.pelion.com/docs/device-management-api/connect/). **Example:** @@ -21871,7 +26894,8 @@ paths: ```' operationId: Device_retrieve parameters: - - description: The ID of the device. + - description: The [Device ID](https://www.pelion.com/docs/device-management/current/connecting/device-identity.html) + created by Device Management. in: path name: id required: true @@ -21913,7 +26937,8 @@ paths: ```' operationId: Device_update parameters: - - description: The ID of the device. + - description: The [Device ID](https://www.pelion.com/docs/device-management/current/connecting/device-identity.html) + created by Device Management. in: path name: id required: true @@ -21941,22 +26966,30 @@ paths: x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/devices/{id}/resume: post: - description: 'Returning a device to service restores connectivity to the device. - All API functionality is restored. + description: '[Returning a device to service](https://www.pelion.com/docs/device-management/current/device-management/managing-devices-in-your-account.html#using-the-api-suspending-and-resuming-devices) + allows the device to connect to Device Management again. The connection is + established according to the device''s reconnection logic. The device reports + a [registration event](https://www.pelion.com/docs/device-management-api/connect/) + through a [notification channel](https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html). + + + The default reconnection logic is a progressive back-off for 2, 4, 8, or 16 + seconds, up to one week. All API functionality is restored. **Example:** - Following example enables device to connect again to Pelion Device Management. - Note that the category must match the reason why device was suspended. This - device was reported stolen but was now found. + + The following example enables a device to reconnect to Pelion Device Management. + The category must match the reason device was suspended. This device was reported + stolen, but was found: ``` curl -X POST https://api.us-east-1.mbedcloud.com/v3/devices//resume \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -21975,7 +27008,7 @@ paths: in: body name: Block required: true - schema: &id027 + schema: &id034 properties: category: description: The reference of the block category. @@ -22004,33 +27037,25 @@ paths: x-origin: /home/circleci/project/device-directory/public/swagger.yml /v3/devices/{id}/suspend: post: - description: 'Suspending a device prevents it from connecting to Device Management. - If a device is currently connected, it will be disconnected. Some API operations - will fail while a device is suspended. - - - ***Example:* - - Following example suspends a device with category "Lost or stolen". You can - see available categories with ''/v3/device-block-categories/''. - - ``` - - curl -X POST https://api.us-east-1.mbedcloud.com/v3/devices//suspend - \ - - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''{ "category": "lost_or_stolen", "description": "EXAMPLE: Customer contacted - via phone and reported device being stolen. Specific time of the theft was - not know. Device last used in May/2019"}'' - - ```' + description: "[Suspending a device](https://www.pelion.com/docs/device-management/current/device-management/managing-devices-in-your-account.html#suspending-and-resuming-devices)\ + \ prevents it from connecting to Device Management. If a device is currently\ + \ connected, it disconnects and shows as deregistered.\n\nYou can also receive\ + \ [deregistration events](https://www.pelion.com/docs/device-management-api/connect/)\ + \ in [notification channels](https://www.pelion.com/docs/device-management/current/integrate-web-app/event-notification.html).\n\ + \nAPI operations needing device transactions fail while a device is suspended.\n\ + \nExample use case to use suspending is that device is reported lost or stolen.\ + \ You can block the device to connect and this way prevent device to cause\ + \ unreliable data to your system.\n\n ***Example:*\n\n The following example\ + \ suspends a device with category \"Lost or stolen\". You can see available\ + \ categories with '/v3/device-block-categories/'.\n ```\n curl -X POST https://api.us-east-1.mbedcloud.com/v3/devices//suspend\ + \ \\\n -H 'Authorization: Bearer ' \\\n -H 'content-type: application/json'\ + \ \\\n -d '{ \"category\": \"lost_or_stolen\", \"description\": \"EXAMPLE:\ + \ Customer contacted via phone and reported device being stolen. Specific\ + \ time of the theft was not know. Device last used in May/2019\"}'\n ```" operationId: Device_suspend parameters: - - description: The ID of the device. + - description: The [Device ID](https://www.pelion.com/docs/device-management/current/connecting/device-identity.html) + created by Device Management. in: path name: id required: true @@ -22039,7 +27064,7 @@ paths: in: body name: Block required: true - schema: *id027 + schema: *id034 responses: '204': description: Ok - Device suspended. @@ -22065,7 +27090,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -22093,7 +27118,7 @@ paths: in: query name: include type: string - - description: "URL-encoded query string parameter to filter returned data\n\ + - description: "URL-encoded query string parameter to filter returned data.\n\ \n`?filter={URL-encoded query string}`\n\n###### Filterable fields:\n\n\ The table lists all the fields that can be filtered on with certain filters:\n\ \n\n \n \n \n
Field= / __eq\ @@ -22277,10 +27302,16 @@ paths: $ref: '#/definitions/FirmwareImagePage' '400': description: Bad Request. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Unable to find content. + schema: + $ref: '#/definitions/ErrorResponse' summary: List all images tags: - Device update - firmware images @@ -22331,6 +27362,9 @@ paths: - multipart/form-data description: 'Create a firmware image. +
**Note:** Only use this API for images smaller than 100 MB. For larger + images, [upload in chunks](https://www.pelion.com/docs/device-management/current/updating-firmware/uploading-a-large-firmware-image.html). +
**Usage example:** @@ -22339,7 +27373,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-images \ - -H ''Authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''Content-Type: multipart/form-data'' \ @@ -22354,17 +27388,22 @@ paths: ' operationId: Firmware_Image_create parameters: - - description: The firmware image file to upload. + - description: The firmware image file to upload. File name must not exceed + 166 characters. in: formData + maxLength: 166 name: datafile required: true type: file - description: The description of the firmware image. + format: free text in: formData + maxLength: 2000 name: description required: false type: string - description: The name of the firmware image. + format: free text in: formData maxLength: 128 name: name @@ -22377,12 +27416,20 @@ paths: $ref: '#/definitions/FirmwareImage' '400': description: Cannot validate the data used to create the firmware image. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '403': description: Forbidden. + schema: + $ref: '#/definitions/ErrorResponse' 413: description: Firmware image too large. + schema: + $ref: '#/definitions/ErrorResponse' summary: Create an image tags: - Device update - firmware images @@ -22400,7 +27447,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -22632,7 +27679,7 @@ paths: post: description: "Create a new upload job\n
\n**Usage example:**\n```\ncurl -X\ \ POST https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs\ - \ \\\n-H 'Authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8'\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"name\": \"New Linux update\",\n \"description\": \"New Linux\ \ update for my devices\"\n}'\n```\n" operationId: Upload_Job_Create @@ -22643,8 +27690,8 @@ paths: required: true schema: properties: - description: *id028 - name: *id029 + description: *id035 + name: *id036 type: object responses: 201: @@ -22684,7 +27731,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs/12345678901234567890123456789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -22693,9 +27740,8 @@ paths: parameters: - description: The upload job ID. in: path - maxLength: 32 - minLength: 32 name: upload_job_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -22729,7 +27775,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs/12345678901234567890123456789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -22738,9 +27784,8 @@ paths: parameters: - description: The upload job ID. in: path - maxLength: 32 - minLength: 32 name: upload_job_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -22763,16 +27808,15 @@ paths: put: description: "Update an upload job.\n
\n**Usage example:**\n```\ncurl -X\ \ PUT https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs/12345678901234567890123456789012\ - \ \\\n-H 'Authorization: ' \\\n-d '{\n \"name\": \"New\ - \ Linux update\",\n \"description\": \"New Linux update for my class XX devices\"\ + \ \\\n-H 'Authorization: Bearer ' \\\n-d '{\n \"name\": \"New Linux\ + \ update\",\n \"description\": \"New Linux update for my class XX devices\"\ \n}'\n```\n" operationId: Upload_Job_Update parameters: - description: The upload job ID. in: path - maxLength: 32 - minLength: 32 name: upload_job_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: Upload job. @@ -22781,8 +27825,8 @@ paths: required: true schema: properties: - description: *id028 - name: *id029 + description: *id035 + name: *id036 type: object responses: 200: @@ -22818,7 +27862,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs/12345678901234567890123456789012/chunks \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -22827,9 +27871,8 @@ paths: parameters: - description: The upload job ID. in: path - maxLength: 32 - minLength: 32 name: upload_job_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: How many objects to retrieve in the page. The minimum limit is @@ -23035,12 +28078,32 @@ paths: post: consumes: - application/octet-stream - description: "Append a chunk to an upload job. To finish a job, upload a zero-length\ - \ chunk.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs/12345678901234567890123456789012/chunks\ - \ \\\n-H 'Authorization: ' \\\n-H 'Content-MD5: Q2h1Y2sgSW51ZwDIAXR5IQ=='\ - \ \\\n-H 'Content-Type: binary/octet-stream' \\\n-H 'Content-Length: 999'\ - \ \\\n-d '{\n \"IGh0dHBzOi8vYXBpLnVzLWVhc3QtMS5tYmVkY2xvdWQuY29tLy92My9maXJtd2FyZS1pbWFnZXMvdXBsb2FkLWpvYnMve3VwbG9hZF9qb2JfaWR9W5rcw==\"\ - \n}'\n```\n" + description: 'Append a chunk to an upload job. To finish a job, upload a zero-length + chunk. + +
**Note:** Chunk size must be between 5MB and 100MB, the last chunk can + be less than 5MB; the maximum number of chunks is limited to 10,000. + +
+ + **Usage example:** + + ``` + + curl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs/12345678901234567890123456789012/chunks + \ + + -H ''Authorization: Bearer '' \ + + -H ''Content-MD5: Q2h1Y2sgSW51ZwDIAXR5IQ=='' \ + + -H ''Content-Type: binary/octet-stream'' \ + + --data-binary ''@chunkfile.bin'' + + ``` + + ' operationId: Upload_Job_Chunk_Create parameters: - description: The base64-encoded binary digest of the body (chunk data). @@ -23055,9 +28118,8 @@ paths: type: integer - description: The upload job ID. in: path - maxLength: 32 - minLength: 32 name: upload_job_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: Chunk. @@ -23108,7 +28170,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/upload-jobs/12345678901234567890123456789012/chunks/12345678901234567890123456789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -23117,16 +28179,14 @@ paths: parameters: - description: The upload job ID. in: path - maxLength: 32 - minLength: 32 name: upload_job_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: Chunk. in: path - maxLength: 32 - minLength: 32 name: chunk_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -23156,10 +28216,10 @@ paths: ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-images/12345678901234567890123456789012 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-images/11234567f9012ab56790120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -23168,9 +28228,8 @@ paths: parameters: - description: The firmware image ID. in: path - maxLength: 32 - minLength: 32 name: image_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -23178,10 +28237,16 @@ paths: description: Firmware image deleted. '400': description: Bad Request. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Firmware image not found. + schema: + $ref: '#/definitions/ErrorResponse' summary: Delete an image tags: - Device update - firmware images @@ -23195,10 +28260,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/1123456f9012ab567890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -23207,9 +28272,8 @@ paths: parameters: - description: The firmware image ID in: path - maxLength: 32 - minLength: 32 name: image_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -23219,10 +28283,16 @@ paths: $ref: '#/definitions/FirmwareImage' '400': description: Bad Request. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Firmware image can't be found. + schema: + $ref: '#/definitions/ErrorResponse' summary: Get an image. tags: - Device update - firmware images @@ -23239,7 +28309,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -23470,10 +28540,16 @@ paths: $ref: '#/definitions/FirmwareManifestPage' '400': description: Bad Request. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Unable to find content. + schema: + $ref: '#/definitions/ErrorResponse' summary: List all firmware manifests. tags: - Device update - firmware manifests @@ -23538,7 +28614,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \ - -H ''Authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''Content-Type: multipart/form-data'' \ @@ -23556,26 +28632,30 @@ paths: operationId: Firmware_Manifest_create parameters: - description: The manifest file to create. The API gateway enforces the account-specific - file size. + file size. File name must not exceed 100 characters. in: formData name: datafile required: true type: file - description: The description of the firmware manifest. + format: free text in: formData + maxLength: 2000 name: description required: false type: string - description: The key table of pre-shared keys for devices. The table is generated - by the manifest tool. + by the manifest tool. File name must not exceed 100 characters. in: formData name: key_table required: false type: file - description: The name of the firmware manifest. + format: free text in: formData maxLength: 128 name: name + required: true type: string responses: '201': @@ -23587,10 +28667,16 @@ paths: did not validate and/or the manifest uploaded exceeded 2 KB in size. ' + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '403': description: Forbidden. + schema: + $ref: '#/definitions/ErrorResponse' summary: Upload a manifest tags: - Device update - firmware manifests @@ -23605,10 +28691,10 @@ paths: ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/12345678901234567890123456789012 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/11234567f9012ab56780120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -23617,9 +28703,8 @@ paths: parameters: - description: The firmware manifest ID. in: path - maxLength: 32 - minLength: 32 name: manifest_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -23627,10 +28712,16 @@ paths: description: Firmware manifest deleted. '400': description: Bad Request. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Firmware manifest not found. + schema: + $ref: '#/definitions/ErrorResponse' summary: Delete a manifest tags: - Device update - firmware manifests @@ -23644,10 +28735,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/1123467f9012ab567890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -23656,9 +28747,8 @@ paths: parameters: - description: The firmware manifest ID. in: path - maxLength: 32 - minLength: 32 name: manifest_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -23668,10 +28758,16 @@ paths: $ref: '#/definitions/FirmwareManifest' '400': description: Bad request. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Firmware manifest can't be found. + schema: + $ref: '#/definitions/ErrorResponse' summary: Get a manifest tags: - Device update - firmware manifests @@ -23680,7 +28776,9 @@ paths: get: consumes: - application/json - description: Retrieve identity providers in an array. + description: 'Retrieve an array of identity providers. + + Note: This endpoint is restricted to administrators.' operationId: getAllIdentityProviders parameters: - default: 50 @@ -23690,14 +28788,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 @@ -23730,7 +28828,9 @@ paths: post: consumes: - application/json - description: Create a new identity provider. + description: 'Create a new identity provider. + + Note: This endpoint is restricted to administrators.' operationId: createIdentityProvider parameters: - allowEmptyValue: true @@ -23779,7 +28879,9 @@ paths: x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/identity-providers/{identity_provider_id}: delete: - description: Delete an identity provider by ID. + description: 'Delete an identity provider by ID. + + Note: This endpoint is restricted to administrators.' operationId: deleteIdentityProvider parameters: - description: The ID of the identity provider to delete. @@ -23801,7 +28903,7 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Identity provider not found. + description: An identity provider not found. schema: $ref: '#/definitions/ErrorResponse' summary: Delete an identity provider by ID. @@ -23809,7 +28911,9 @@ paths: - Account - identity providers x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: Retrieve by ID. + description: 'Retrieve an identity provider. + + Note: This endpoint is restricted to administrators.' operationId: getIdentityProvider parameters: - description: The ID of the identity provider to retrieve. @@ -23833,17 +28937,19 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Identity provider not found. + description: An identity provider not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get identity provider by ID. + summary: Get identity provider. tags: - Account - identity providers x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml put: consumes: - application/json - description: Update an existing identity provider. + description: 'Update an existing identity provider. + + Note: This endpoint is restricted to administrators.' operationId: updateIdentityProvider parameters: - description: The ID of the identity provider to update. @@ -23885,7 +28991,7 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Identity provider not found. + description: An identity provider not found. schema: $ref: '#/definitions/ErrorResponse' summary: Update an existing identity provider. @@ -23896,7 +29002,9 @@ paths: post: consumes: - application/json - description: Delete a service provider certificate. + description: 'Delete a service provider certificate. + + Note: This endpoint is restricted to administrators.' operationId: deleteSpCertificate parameters: - description: The ID of the identity provider. @@ -23924,7 +29032,7 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Identity provider not found. + description: An identity provider not found. schema: $ref: '#/definitions/ErrorResponse' summary: Delete the service provider certificate. @@ -23935,7 +29043,9 @@ paths: post: consumes: - application/json - description: Generate a new service provider certificate. + description: 'Generate a new service provider certificate. + + Note: This endpoint is restricted to administrators.' operationId: generateSpCertificate parameters: - description: The ID of the identity provider to generate a certificate for. @@ -23974,7 +29084,7 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Identity provider not found. + description: An identity provider not found. schema: $ref: '#/definitions/ErrorResponse' summary: Generate a new service provider certificate. @@ -23985,7 +29095,9 @@ paths: post: consumes: - application/json - description: Refreshes an OIDC IdP's signing keys. + description: 'Refreshes an OIDC IdP''s signing keys. + + Note: This endpoint is restricted to administrators.' operationId: refreshJwks parameters: - description: The ID of the identity provider for which to refresh the signing @@ -24018,7 +29130,7 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Identity provider not found. + description: An identity provider not found. schema: $ref: '#/definitions/ErrorResponse' summary: Refreshes the OIDC signing keys. @@ -24027,7 +29139,7 @@ paths: x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/limitations: get: - description: An endpoint for retrieving all limitations of an account. + description: Retrieve an array of entitlement limitations. operationId: getAccountLimitations parameters: - description: Filter for finding account limitations by inheritance. True returns @@ -24051,16 +29163,16 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get all limitations of an account. + summary: Get entitlement limitations. tags: - - Account - limitations + - Account - entitlement limitations x-filter: inherited: - eq x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/limitations/{limitation_id}: get: - description: An endpoint for retrieving a limitation of an account. + description: Retrieve an entitlement limitation. operationId: getAccountLimitation parameters: - description: The ID of the limitation to be fetched. @@ -24086,11 +29198,51 @@ paths: '404': description: Limitation with the given ID not found. schema: - $ref: '#/definitions/ErrorResponse' - summary: Get a limitation of an account. + $ref: '#/definitions/ErrorResponse' + summary: Get an entitlement limitation. + tags: + - Account - entitlement limitations + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/manufacturing/statistics: + get: + description: 'Get manufacturing statistics report. + + **Example:** + + ``` + + curl -X GET https://api.us-east-1.mbedcloud.com/v3/manufacturing/statistics?start=2020-06-23T21:00:00.000Z&end=2020-07-01T20:59:59.999Z + --header ''Authorization: Bearer '' + + ``` + + ' + operationId: ManufacturingStatisticsReport + parameters: + - description: The start date and time for the report. + format: date-time + in: query + name: start + required: true + type: string + - description: The end date and time for the report. The default value is the + current date-time. + format: date-time + in: query + name: end + required: false + type: string + produces: + - application/json + responses: + 200: + description: OK. + schema: + $ref: '#/definitions/StatisticsReportListResponse' + summary: Retrieve provisioning statistics for devices in your factories. tags: - - Account - limitations - x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + - Factory manufacturing statistics + x-origin: /home/circleci/project/manufacturing-statistics/public/swagger.yml /v3/metrics: get: description: This REST API is used to get account-specific statistics. @@ -24104,16 +29256,15 @@ paths: - `bootstraps_pending`\n- `handshakes_successful`\n- `connect_rest_api_success`\n\ - `connect_rest_api_error`\n- `device_proxy_request_success`\n- `device_proxy_request_error`\n\ - `device_subscription_request_success`\n- `device_subscription_request_error`\n\ - - `device_observations`\n- `total_count`\n\n**Note:**\n\nThe metrics device_proxy_request_success,\ - \ device_proxy_request_error, device_subscription_request_success, device_subscription_request_error\ - \ and device_observations monitor only the response from the device to Device\ - \ Management Connect and they do not confirm that the response is delivered\ - \ to client callback URLs used when you try to access device resources using\ - \ [Connect API](/docs/current/service-api-references/device-management-connect.html)\ + - `device_observations`\n- `total_count`\n\n**Note:**\n\nThe metrics `device_proxy_request_success`,\ + \ `device_proxy_request_error`, `device_subscription_request_success`, `device_subscription_request_error`\ + \ and `device_observations` monitor only the response from the device to\ + \ Device Management Connect. They do not confirm that the response is delivered\ + \ to the client callback URLs used when you try to access device resources\ + \ using [Connect API](https://www.pelion.com/docs/device-management-api/connect/)\ \ endpoints. New metrics will be added to monitor the response delivery\ \ to client callback URLs later.\n\n**Example usage:**\n\n```\ncurl -X\ - \ GET \\\n -H \"Authorization : Bearer \"\n \ - \ 'https://api.us-east-1.mbedcloud.com/v3/metrics?include=transactions,total_count&start=20170207&end=20170407&interval=1d'\n\ + \ GET \\\n -H \"Authorization : Bearer \"\n 'https://api.us-east-1.mbedcloud.com/v3/metrics?include=transactions,total_count&start=20170207&end=20170407&interval=1d'\n\ \n{\n \"object\": \"list\",\n \"limit\": 20,\n \"total_count\"\ : 54,\n \"after\": \"2017-07-26T00:00:00Z\",\n \"has_more\": true,\n\ \ \"data\": [\n {\n \"id\": \"015d8157c800015e306fffff005374617473000\"\ @@ -24178,8 +29329,7 @@ paths: type: integer - description: "The metric ID after which to start fetching. This also can be\ \ used for pagination as follows:\n\n**Example usage:**\n\n```\ncurl -X\ - \ GET \\\n -H \"Authorization : Bearer \"\n \ - \ 'https://api.us-east-1.mbedcloud.com/v3/metrics?include=transactions,total_count&start=20170707&end=20170829&interval=1d&limit=20'\n\ + \ GET \\\n -H \"Authorization : Bearer \"\n 'https://api.us-east-1.mbedcloud.com/v3/metrics?include=transactions,total_count&start=20170707&end=20170829&interval=1d&limit=20'\n\ {\n \"object\": \"list\",\n \"limit\": 20,\n \"total_count\": 54,\n\ \ \"has_more\": true,\n \"data\": [\n {\n \"id\": \"\ 015d1a589800015e306fffff005374617473000\",\n \"timestamp\": \"\ @@ -24191,7 +29341,7 @@ paths: \ You can give the last ID of the list as the value of the `after` query\ \ parameter, and you get the next page of values. You can keep doing this\ \ until `has more` is false.\n```\ncurl -X GET \\\n -H \"Authorization\ - \ : Bearer \"\n 'https://api.us-east-1.mbedcloud.com/v3/metrics?include=transactions,total_count&start=20170707&end=20170829&interval=1d&limit=20&after=015d7c316c00015e306fffff005374617473000'\n\ + \ : Bearer \"\n 'https://api.us-east-1.mbedcloud.com/v3/metrics?include=transactions,total_count&start=20170707&end=20170829&interval=1d&limit=20&after=015d7c316c00015e306fffff005374617473000'\n\ \n{\n \"object\": \"list\",\n \"limit\": 20,\n \"total_count\": 54,\n\ \ \"after\": \"2017-07-26T00:00:00Z\",\n \"has_more\": true,\n \"\ data\": [\n {\n \"id\": \"015d8157c800015e306fffff005374617473000\"\ @@ -24233,11 +29383,11 @@ paths: $ref: '#/definitions/error-response' summary: Provides account-specific statistics for other cloud services. tags: - - Statistics + - Usage - service metrics x-origin: /home/circleci/project/statistics/public/rest-api-v3-external.yaml /v3/policy-groups: get: - description: 'Retrieve all group information. + description: 'Retrieve an array of policy groups. **Example:** @@ -24246,7 +29396,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getAllGroups @@ -24258,14 +29408,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 @@ -24296,7 +29446,7 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get all group information. + summary: Get policy groups. tags: - Account - policy groups x-filter: @@ -24308,6 +29458,8 @@ paths: - application/json description: 'Create a new group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -24315,7 +29467,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' -d ''{"name": "MyGroup1"}'' @@ -24359,6 +29511,8 @@ paths: delete: description: 'Delete a group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -24367,7 +29521,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteGroup @@ -24399,7 +29553,7 @@ paths: - Account - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: 'Retrieve general information about a group. + description: 'Retrieve a policy group. **Example:** @@ -24409,12 +29563,12 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getGroupSummary parameters: - - description: The ID of the group to retrieve. + - description: The ID of the policy group to retrieve. in: path name: group_id required: true @@ -24438,7 +29592,7 @@ paths: description: A group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get group information. + summary: Get a policy group. tags: - Account - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml @@ -24447,6 +29601,8 @@ paths: - application/json description: 'Add users and API keys to a group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -24455,7 +29611,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -24512,6 +29668,8 @@ paths: - application/json description: 'Update a group name. + Note: This endpoint is restricted to administrators. + **Example:** @@ -24520,7 +29678,7 @@ paths: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -24582,11 +29740,12 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -d ''{ "apikeys": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: removeApiKeysFromGroup @@ -24636,7 +29795,8 @@ paths: links: [] x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: 'Manage policy groups. + deprecated: true + description: 'Retrieve an array of API keys associated with a policy group. **Example:** @@ -24646,7 +29806,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getApiKeysOfGroup @@ -24663,14 +29823,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 @@ -24700,9 +29860,14 @@ paths: description: A group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get the API keys of a group. + summary: Get the API keys of a policy group. tags: - Account - policy groups + x-deprecation: + comment: This endpoint is deprecated, GET https://api.us-east-1.mbedcloud.com/v3/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 post: deprecated: true @@ -24716,7 +29881,12 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{ "apikeys" : ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: addApiKeysToGroup @@ -24748,7 +29918,8 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. + description: Forbidden. Adding an API key to the 'Administrators' group + is restricted to administrators. schema: $ref: '#/definitions/ErrorResponse' '404': @@ -24770,6 +29941,7 @@ paths: x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/policy-groups/{group_id}/api-keys/add: post: + deprecated: true description: 'Add API keys to the group. @@ -24777,10 +29949,15 @@ paths: ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys + curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys/add \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{ "apikeys" : ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: addListedApiKeysToGroup @@ -24812,7 +29989,8 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden. + description: Forbidden. Adding an API key to the 'Administrators' group + is restricted to administrators. schema: $ref: '#/definitions/ErrorResponse' '404': @@ -24826,11 +30004,17 @@ paths: summary: Add API Keys to the group. tags: - Account - policy groups + x-deprecation: + comment: This endpoint is deprecated, POST https://api.us-east-1.mbedcloud.com/v3/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/policy-groups/{group_id}/api-keys/remove: post: consumes: - application/json + deprecated: true description: 'Remove API keys from groups. @@ -24841,11 +30025,12 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys/remove \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -d ''{ "apikeys" : ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: removeListedApiKeysFromGroup @@ -24888,6 +30073,208 @@ paths: summary: Remove API keys from a group. tags: - Account - policy groups + x-deprecation: + comment: This endpoint is deprecated, POST https://api.us-east-1.mbedcloud.com/v3/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/policy-groups/{group_id}/applications: + get: + description: 'Retrieve an array of applications associated with a policy group. + + + **Example:** + + ``` + + curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/applications + \ + + -H ''Authorization: Bearer '' + + ```' + operationId: getApplicationsOfGroup + parameters: + - description: The ID of the group. + in: path + 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/ApplicationList' + '401': + description: Authentication failure. + schema: + $ref: '#/definitions/ErrorResponse' + '403': + description: Forbidden. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: A group with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Get the applications of a policy group. + tags: + - Account - policy groups + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/policy-groups/{group_id}/applications/add: + post: + description: 'Add applications to the group. + + + **Example:** + + ``` + + curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/applications/remove + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{ "applications": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' + + ```' + operationId: addListedApplicationsToGroup + parameters: + - description: The ID of the group. + in: path + name: group_id + required: true + type: string + - description: A list of applications 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/GroupSummary' + '400': + description: Error in input data, for example, the group Id does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: Authentication failure. + schema: + $ref: '#/definitions/ErrorResponse' + '403': + description: Forbidden. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: A group 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 applications to the group. + tags: + - Account - policy groups + x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml + /v3/policy-groups/{group_id}/applications/remove: + post: + consumes: + - application/json + description: 'Remove applications from groups. + + + **Example:** + + ``` + + curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/applications/remove + \ + + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{ "applications": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' + + ```' + operationId: removeListedApplicationsFromGroup + parameters: + - description: The ID of the group. + in: path + name: group_id + required: true + type: string + - description: A list of applications 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/GroupSummary' + '400': + description: Error in input data, for example, the array of applications + is missing. + schema: + $ref: '#/definitions/ErrorResponse' + '401': + description: Authentication failure. + schema: + $ref: '#/definitions/ErrorResponse' + '403': + description: Forbidden. + schema: + $ref: '#/definitions/ErrorResponse' + '404': + description: A group with that ID does not exist. + schema: + $ref: '#/definitions/ErrorResponse' + summary: Remove applications from a group. + tags: + - Account - policy groups x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/policy-groups/{group_id}/users: delete: @@ -24896,6 +30283,8 @@ paths: deprecated: true description: 'Manage policy groups. + Note: This endpoint is restricted to administrators. + **Example:** @@ -24904,11 +30293,12 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -d ''{ "users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: removeUsersFromGroup @@ -24958,7 +30348,9 @@ paths: links: [] x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: 'Retrieve users of a group with details. + description: 'Retrieve an array of users associated with a policy group. + + Note: This endpoint is restricted to administrators. **Example:** @@ -24968,7 +30360,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getUsersOfGroup @@ -24985,14 +30377,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 @@ -25038,7 +30430,7 @@ paths: description: A group with that ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get users of a group. + summary: Get users of a policy group. tags: - Account - policy groups x-filter: @@ -25051,6 +30443,8 @@ paths: deprecated: true description: 'Add users to the group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -25059,7 +30453,12 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{ "users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: addUsersToGroup. @@ -25115,6 +30514,8 @@ paths: post: description: 'Add users to the group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -25123,7 +30524,12 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users/add \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' \ + + -H ''content-type: application/json'' \ + + -d ''{ "users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: addListedUsersToGroup. @@ -25174,7 +30580,9 @@ paths: post: consumes: - application/json - description: 'Manage policy groups. + description: 'Remove users from a policy group. + + Note: This endpoint is restricted to administrators. **Example:** @@ -25184,11 +30592,12 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users/remove \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -d ''["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"]'' + -d ''{ "users": ["0162056a9a1586f30242590700000000","0117056a9a1586f30242590700000000"] + }'' ```' operationId: removeListedUsersFromGroup @@ -25244,7 +30653,7 @@ paths: curl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' operationId: getAllServerCredentials @@ -25282,7 +30691,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Fetch all (Bootstrap and LwM2M) server credentials. tags: - - Service security - server credentials + - Security and identity - server credentials x-origin: /home/circleci/project/connector-ca/public/swagger.yaml /v3/server-credentials/bootstrap: get: @@ -25298,7 +30707,7 @@ paths: curl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/bootstrap \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' operationId: getBootstrapServerCredentials @@ -25335,7 +30744,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Fetch bootstrap server credentials. tags: - - Service security - server credentials + - Security and identity - server credentials x-origin: /home/circleci/project/connector-ca/public/swagger.yaml /v3/server-credentials/lwm2m: get: @@ -25351,7 +30760,7 @@ paths: curl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/lwm2m \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' operationId: getL2M2MServerCredentials @@ -25388,7 +30797,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Fetch LwM2M server credentials. tags: - - Service security - server credentials + - Security and identity - server credentials x-origin: /home/circleci/project/connector-ca/public/swagger.yaml /v3/service-packages: get: @@ -25407,7 +30816,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/service-packages \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getServicePackages @@ -25492,6 +30901,8 @@ paths: schema: $ref: '#/definitions/InternalServerErrorResponse' summary: Get all service packages. + tags: + - Usage - billing reports x-origin: /home/circleci/project/billing/public/swagger-public-apis.yaml /v3/service-packages-quota: get: @@ -25506,7 +30917,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/service-packages-quota \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getServicePackageQuota @@ -25554,14 +30965,15 @@ paths: schema: $ref: '#/definitions/InternalServerErrorResponse' summary: Service package quota. + tags: + - Usage - billing reports x-origin: /home/circleci/project/billing/public/swagger-public-apis.yaml /v3/service-packages-quota-history: get: description: 'Get your quota usage history. This API is available only for commercial - accounts. Aggregator accounts can see their own and subtenant quota usage - data. + accounts. Aggregator accounts can see their own and tenant quota usage data. - Data is in ascending order based on the added timestamp. + Data is in ascending order based on creation time. **Example:** @@ -25571,13 +30983,12 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/service-packages-quota-history \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getServicePackageQuotaHistory parameters: - - description: Maximum number of quota history entries contained in one paged - response. + - description: Maximum number of quota history entries in one paged response. format: int32 in: query maximum: 1000 @@ -25592,6 +31003,14 @@ paths: name: after required: false type: string + - description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.' + enum: + - ASC + - DESC + in: query + name: order + required: false + type: string responses: 200: description: Quota history for the currently authenticated commercial account. @@ -25615,7 +31034,7 @@ paths: id: b0817554677248a1b038d7fcd2c020c5 reason: reservation reservation: - account_id: TEST-commercial.5f1edb5c-c61d-11e7-a05a-00155d004e00 + account_id: 10171c6f56084c4f8b53210762650246 campaign_name: campaign id: b5322aabe29d458ea6e4402594085a15 service_package: null @@ -25659,10 +31078,12 @@ paths: schema: $ref: '#/definitions/InternalServerErrorResponse' summary: Service package quota history. + tags: + - Usage - service packages x-origin: /home/circleci/project/billing/public/swagger-public-apis.yaml /v3/trusted-certificates: get: - description: 'Retrieve trusted certificates in an array. + description: 'Retrieve an array of trusted certificates. **Example:** @@ -25671,7 +31092,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getAllCertificates @@ -25683,14 +31104,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 @@ -25759,6 +31180,11 @@ paths: 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 @@ -25782,8 +31208,10 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Get all trusted certificates. tags: - - Device security - certificates + - Security and identity - certificates x-filter: + certificate_fingerprint: + - eq device_execution_mode: - eq - neq @@ -25811,6 +31239,8 @@ paths: - application/json description: 'Upload new trusted certificates. + Note: This endpoint is restricted to administrators. + **Example:** @@ -25818,7 +31248,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -25850,7 +31280,8 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '403': - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden, only available for administrators of commercial + accounts. schema: $ref: '#/definitions/ErrorResponse' '409': @@ -25859,7 +31290,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Upload a new trusted certificate. tags: - - Device security - certificates + - Security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/trusted-certificates/{cert_id}: delete: @@ -25873,7 +31304,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteCertificate @@ -25897,15 +31328,15 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Certificate not found. + description: A certificate not found. schema: $ref: '#/definitions/ErrorResponse' summary: Delete a trusted certificate by ID. tags: - - Device security - certificates + - Security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: 'Retrieve a trusted certificate by ID. + description: 'Retrieve a trusted certificate. **Example:** @@ -25915,7 +31346,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getCertificate @@ -25941,12 +31372,12 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Certificate not found. + description: A certificate not found. schema: $ref: '#/definitions/ErrorResponse' - summary: Get trusted certificate by ID. + summary: Get a trusted certificate. tags: - - Device security - certificates + - Security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml put: consumes: @@ -25961,7 +31392,7 @@ paths: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -26001,7 +31432,7 @@ paths: schema: $ref: '#/definitions/ErrorResponse' '404': - description: Certificate not found. + description: A certificate not found. schema: $ref: '#/definitions/ErrorResponse' '409': @@ -26010,7 +31441,7 @@ paths: $ref: '#/definitions/ErrorResponse' summary: Update trusted certificate. tags: - - Device security - certificates + - Security and identity - certificates x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/update-campaigns: get: @@ -26024,7 +31455,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26298,10 +31729,16 @@ paths: not validate. ' + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Unable to find content. + schema: + $ref: '#/definitions/ErrorResponse' summary: List all campaigns tags: - Device update - campaigns @@ -26363,13 +31800,14 @@ paths: - gte x-origin: /home/circleci/project/update-service/public/swagger.yml post: - description: "Create an update campaign.\n
\n**Usage example:**\n```\ncurl\ - \ -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns \\\n-H 'Authorization:\ - \ ' \\\n-H 'content-type: application/json;charset=UTF-8'\ + description: "Create an update campaign.\n\nTo include a filter for targeted\ + \ devices, refer to the filter using `` in the message body.\n\ +
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"campaign_strategy\": \"one-shot\",\n \"description\": \"\ - Campaign is for ...\",\n \"device_filter\": \"id__eq=123400000000000000000000000ae45\"\ - ,\n \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\"\ - ,\n}'\n```\n" + Campaign is for ...\",\n \"device_filter\": \"\",\n \"name\"\ + : \"campaign\",\n \"root_manifest_id\": \"56780000000000a5b70000000000bd98\"\ + \n}'\n```\n" operationId: Update_Campaign_create parameters: - description: Update campaign. @@ -26388,8 +31826,16 @@ paths: not validate. ' + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' + '409': + description: Conflict, a campaign with the same name already exists + schema: + $ref: '#/definitions/ErrorResponse' summary: Create a campaign tags: - Device update - campaigns @@ -26404,10 +31850,10 @@ paths: ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/update-campaigns/1123457f9012ab567890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26416,9 +31862,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26429,10 +31874,16 @@ paths: not validate. ' + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Update campaign can't be found. + schema: + $ref: '#/definitions/ErrorResponse' 409: description: Conflict - Cannot delete the campaign while in the current phase. @@ -26451,10 +31902,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26463,9 +31914,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26478,28 +31928,33 @@ paths: not validate. ' + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Unable to find campaign. + schema: + $ref: '#/definitions/ErrorResponse' summary: Get a campaign. tags: - Device update - campaigns x-origin: /home/circleci/project/update-service/public/swagger.yml put: description: "Modify an update campaign.\n
\n**Usage example:**\n```\ncurl\ - \ -X PUT https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012\ - \ \\\n-H 'Authorization: ' \\\nd '{\n \"description\"\ - : \"Campaign is for ...\",\n \"device_filter\": \"id__eq=123400000000000000000000000ae45\"\ + \ -X PUT https://api.us-east-1.mbedcloud.com/v3/update-campaigns/1123007f9012ab567890120000789012\ + \ \\\n-H 'Authorization: Bearer ' \\\nd '{\n \"description\": \"\ + Campaign is for ...\",\n \"device_filter\": \"123400000000000000000000000ae45\"\ ,\n \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\"\ ,\n}'\n```\n" operationId: Update_Campaign_update parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: Update campaign. @@ -26539,10 +31994,10 @@ paths: ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/archive + curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/016e83ddc649000000000001001000b8/archive \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26551,9 +32006,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26561,12 +32015,20 @@ paths: description: The campaign has been archived. '400': description: Unable to change the phase of the campaign. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Cannot find the campaign. + schema: + $ref: '#/definitions/ErrorResponse' '409': description: Cannot archive the campaign while in the current phase. + schema: + $ref: '#/definitions/ErrorResponse' summary: Archive a campaign. tags: - Device update - campaigns @@ -26581,10 +32043,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/campaign-device-metadata + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56790120000789012/campaign-device-metadata \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26593,9 +32055,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: How many objects to retrieve in the page. The minimum limit is @@ -26640,10 +32101,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/campaign-device-metadata/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/5d645eaec2315a89900000655cd94fa8/campaign-device-metadata/016e83ddc645000000000001001000f6 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26652,16 +32113,14 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: The campaign device metadata ID. in: path - maxLength: 32 - minLength: 32 name: campaign_device_metadata_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26690,10 +32149,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/metrics + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/1123467f9012ab567890120000789012/metrics \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26702,9 +32161,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26714,13 +32172,17 @@ paths: $ref: '#/definitions/CampaignMetrics' 401: description: Unauthorized. + schema: + $ref: '#/definitions/ErrorResponse' 404: description: Unable to find campaign or the campaign hasn't started. + schema: + $ref: '#/definitions/ErrorResponse' summary: Get campaign metrics tags: - Device update - campaigns x-deprecation: - comment: Use the statistics endpoint instead. + comment: Use GET /v3/update-campaigns/{campaign_id}/statistics instead. end_of_life_at: '2020-04-10T13:41:00+00:00' issued_at: '2019-04-10T13:41:00+00:00' links: [] @@ -26735,10 +32197,10 @@ paths: ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/start + curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/5d645eaec2315a8900002e655cd94fa8/start \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26747,9 +32209,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26757,12 +32218,20 @@ paths: description: The campaign is starting. '400': description: Unable to change the phase of the campaign. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Cannot find the campaign. + schema: + $ref: '#/definitions/ErrorResponse' '409': description: Cannot start the campaign while in the current phase. + schema: + $ref: '#/definitions/ErrorResponse' summary: Start a campaign. tags: - Device update - campaigns @@ -26778,10 +32247,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56780120000789012/statistics \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26790,9 +32259,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26814,19 +32282,36 @@ paths: x-origin: /home/circleci/project/update-service/public/swagger.yml /v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}: get: - description: "Get the count of successfully updated, skipped, and failed devices.\ - \ \n
\n**Usage example:**\n```\ncurl https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012\ - \ \\\n-H 'Authorization: '\n```\n" + description: 'Get the count of successfully updated, skipped, and failed devices. + +
+ + **Usage example:** + + ``` + + curl https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/fail + \ + + -H ''Authorization: Bearer '' + + ``` + + ' operationId: Update_Campaign_statistics_retrieve parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: The summary status. For example, fail. + enum: &id037 + - fail + - success + - info + - skipped in: path name: summary_status_id required: true @@ -26858,10 +32343,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012/event_types + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/skipped/event_types \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26870,12 +32355,12 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: The summary status. For example, fail. + enum: *id037 in: path name: summary_status_id required: true @@ -26899,8 +32384,8 @@ paths: x-origin: /home/circleci/project/update-service/public/swagger.yml /v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}/event_types/{event_type_id}: get: - description: 'Get the count for a specific event type; for example, succeeded, - failed, or skipped. + description: 'Get the count for a specific event type, for example, succeeded, + failed or skipped.
@@ -26908,10 +32393,10 @@ paths: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012/event_types/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/success/event_types/sys_112 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26920,20 +32405,53 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - description: The summary status. For example, fail. + enum: *id037 in: path name: summary_status_id required: true type: string - - description: The event type parameter. For example, UPD4_FAIL_101. + - description: 'The event type parameter. Event types are grouped into the four + values of the summary_status, i.e. fail, success, info and skipped. + + success: SYS_112, UPD4_OK_M1, UPD1_OK_1, UPD4_OK_100, UPD2_OK_19, UPD2_OK_1, + UPD2_OK_18 + + fail: UPD4_FAIL_508, UPD4_FAIL_217, UPD4_FAIL_305, UPD4_FAIL_405, UPD4_FAIL_511, + UPD4_FAIL_220, UPD1_FAIL_6, UPD4_FAIL_302, UPD2_FAIL_11, UPD4_FAIL_219, + SYS_103, UPD4_FAIL_407, UPD4_FAIL_224, SYS_111, UPD4_FAIL_210, UPD4_FAIL_306, + UPD2_FAIL_14, UPD4_FAIL_221, UPD4_FAIL_315, UPD4_FAIL_403, UPD2_FAIL_12, + UPD4_FAIL_207, UPD4_FAIL_215, UPD4_FAIL_504, UPD2_FAIL_3, UPD4_FAIL_103, + UPD2_FAIL_16, UPD2_FAIL_6, UPD4_FAIL_101, UPD4_FAIL_202, UPD4_FAIL_313, + UPD4_FAIL_209, UPD4_FAIL_301, UPD2_FAIL_4, SYS_123, UPD4_FAIL_314, UPD4_FAIL_205, + UPD4_FAIL_212, UPD4_FAIL_311, UPD4_FAIL_304, UPD4_FAIL_223, UPD4_FAIL_226, + UPD1_FAIL_2, UPD4_FAIL_203, UPD4_FAIL_507, UPD4_FAIL_402, UPD4_FAIL_204, + UPD4_FAIL_510, UPD1_FAIL_7, UPD4_FAIL_218, UPD1_FAIL_8, UPD2_FAIL_5, UPD4_FAIL_201, + UPD4_FAIL_213, UPD4_FAIL_400, UPD2_FAIL_17, UPD4_FAIL_310, UPD4_FAIL_206, + UPD4_FAIL_102, UPD2_FAIL_7, UPD1_FAIL_9, UPD4_FAIL_22, UPD4_FAIL_502, UPD4_FAIL_211, + UPD1_FAIL_4, UPD1_FAIL_3, UPD4_FAIL_409, UPD4_FAIL_408, UPD4_FAIL_200, SYS_104, + UPD2_FAIL_10, UPD2_FAIL_15, UPD4_FAIL_216, UPD4_FAIL_214, UPD4_FAIL_308, + UPD4_FAIL_401, UPD1_FAIL_5, UPD2_FAIL_13, UPD4_FAIL_208, UPD2_FAIL_2, UPD4_FAIL_312, + UPD4_FAIL_509, UPD4_FAIL_303, UPD4_FAIL_512, UPD2_FAIL_9, UPD4_FAIL_316, + UPD4_FAIL_506, SYS_101, UPD4_FAIL_309, UPD4_FAIL_307, UPD4_FAIL_404, UPD4_FAIL_503, + UPD4_FAIL_225, UPD4_FAIL_300, UPD4_FAIL_500, UPD4_FAIL_505, UPD4_FAIL_406, + UPD4_FAIL_222, UPD4_FAIL_501, UPD2_FAIL_8, SYS_124 + + info: UPD1_STATE_0, UPD2_REPORT_HASH, UPD1_REPORT_HASH, UPD2_STATE_5, UPD2_STATE_0, + UPD2_STATE_4, UPD2_STATE_3, SYS_107, SYS_105, SYS_106, UPD1_REPORT_VERSION, + UPD1_STATE_2, SYS_116, SYS_108, SYS_100, UPD2_STATE_8, UPD2_STATE_7, SYS_120, + UPD2_STATE_1, SYS_113, UPD2_STATE_6, UPD2_REPORT_VERSION, SYS_115, UPD2_STATE_2, + SYS_114, UPD1_STATE_3, UPD1_STATE_1, SYS_125 + + skipped: SYS_121, SYS_118, SYS_122, SYS_110, SYS_117 + + ' in: path name: event_type_id - pattern: ^\w{1,16}$ required: true type: string responses: @@ -26956,7 +32474,7 @@ paths: /v3/update-campaigns/{campaign_id}/stop: post: description: 'Stop a campaign. Stopping is a process that requires the campaign - go through several [phases](../updating-firmware/running-update-campaigns.html#stopping). + go through several [phases](https://www.pelion.com/docs/device-management/current/updating-firmware/device-management-update-using-the-apis.html).
@@ -26964,10 +32482,10 @@ paths: ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/stop + curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/016e83ddc645000000000001001000b5/stop \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -26976,9 +32494,8 @@ paths: parameters: - description: The campaign ID. in: path - maxLength: 32 - minLength: 32 name: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string responses: @@ -26986,19 +32503,29 @@ paths: description: The campaign is stopping. '400': description: Unable to change the phase of the campaign. + schema: + $ref: '#/definitions/ErrorResponse' '401': description: Not authenticated. + schema: + $ref: '#/definitions/ErrorResponse' '404': description: Cannot find the campaign. + schema: + $ref: '#/definitions/ErrorResponse' '409': description: Cannot stop the campaign while in the current phase. + schema: + $ref: '#/definitions/ErrorResponse' summary: Stop a campaign. tags: - Device update - campaigns x-origin: /home/circleci/project/update-service/public/swagger.yml /v3/user-invitations: get: - description: 'Retrieve details for all the active user invitations. + description: 'Retrieve an array of active user invitations sent by email. + + Note: This endpoint is restricted to administrators. **Example:** @@ -27007,7 +32534,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getAllInvitations @@ -27019,14 +32546,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 @@ -27051,7 +32578,7 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get the details of all user invitations. + summary: Get user invitations. tags: - Account - user invitations x-filter: @@ -27063,6 +32590,8 @@ paths: - application/json description: 'Invite a new or existing user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27070,7 +32599,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/user-invitations \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -27112,6 +32641,8 @@ paths: delete: description: 'Delete an active user invitation sent to a new or existing user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27120,7 +32651,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteInvitation @@ -27154,6 +32685,8 @@ paths: get: description: 'Retrieve the details of an active user invitation. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27162,7 +32695,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getInvitation @@ -27197,7 +32730,9 @@ paths: x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/users: get: - description: 'Retrieve the details of all users. + description: 'Retrieve an array of users. + + Note: This endpoint is restricted to administrators. **Example:** @@ -27206,7 +32741,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/users \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getAllUsers @@ -27218,14 +32753,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 @@ -27277,7 +32812,7 @@ paths: description: Forbidden. schema: $ref: '#/definitions/ErrorResponse' - summary: Get the details of all users. + summary: Get users. tags: - Account - users x-filter: @@ -27293,8 +32828,10 @@ paths: 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. + description: 'Create or invite a new user to the account. The invited user has + to accept the invitation by clicking the link in the invitation email. + + Note: This endpoint is restricted to administrators. **Example:** @@ -27303,7 +32840,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/users?action=invite \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -27351,109 +32888,12 @@ paths: tags: - Account - users x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - /v3/users/me: - get: - description: Retrieve the details of the logged-in user. - operationId: getMyUser - parameters: - - description: Request to regenerate new emergency scratch codes. - in: query - name: scratch_codes - required: false - type: string - - description: Request to return account-specific user property values according - to the given property name. - in: query - name: properties - required: false - type: string - - description: 'Comma-separated additional data to return. Currently supported: - active_sessions.' - in: query - name: include - required: false - 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' - summary: Details of the current user. - tags: - - Account - users - x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml - put: - consumes: - - application/json - description: 'Update user details. - - - **Example:** - - ``` - - curl -X PUT https://api.us-east-1.mbedcloud.com/v3/users/me \ - - -H ''Authorization: Bearer '' \ - - -H ''content-type: application/json'' \ - - -d ''{"full_name": "fullname"}'' - - ```' - operationId: updateMyUser - parameters: - - 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/UserInfoResp' - '400': - description: Error in input data, for example, an invalid email address. - schema: - $ref: '#/definitions/ErrorResponse' - '401': - description: Authentication failure. - schema: - $ref: '#/definitions/ErrorResponse' - '403': - description: Forbidden. - schema: - $ref: '#/definitions/ErrorResponse' - '404': - description: A 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: Update user details. - tags: - - Account - users - x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml /v3/users/{user_id}: delete: description: 'Delete a user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27461,7 +32901,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: deleteUser @@ -27499,6 +32939,8 @@ paths: get: description: 'Retrieve the details of a user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27506,7 +32948,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getUser @@ -27542,7 +32984,9 @@ paths: put: consumes: - application/json - description: 'Update user details + description: 'Update user details. + + Note: This endpoint is restricted to administrators. **Example:** @@ -27551,7 +32995,7 @@ paths: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -27609,6 +33053,8 @@ paths: deprecated: true description: 'Remove user from groups. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27617,7 +33063,7 @@ paths: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -27672,7 +33118,9 @@ paths: links: [] x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml get: - description: 'Retrieve groups of the user. + description: 'Retrieve an array of policy groups associated with a user. + + Note: This endpoint is restricted to administrators. **Example:** @@ -27682,7 +33130,7 @@ paths: curl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' operationId: getGroupsOfUser @@ -27694,14 +33142,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 @@ -27736,7 +33184,7 @@ paths: description: A user with the given ID does not exist. schema: $ref: '#/definitions/ErrorResponse' - summary: Get groups of the user. + summary: Get policy groups for a user. tags: - Account - users x-origin: /home/circleci/project/auth/public/iam-identity-swagger.yaml @@ -27746,6 +33194,8 @@ paths: deprecated: true description: 'Add user to groups. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27754,7 +33204,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -27818,6 +33268,8 @@ paths: - application/json description: 'Add user to groups. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27826,7 +33278,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups/add \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -27883,6 +33335,8 @@ paths: - application/json description: 'Remove user from groups. + Note: This endpoint is restricted to administrators. + **Example:** @@ -27891,7 +33345,7 @@ paths: curl -X POST https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups/remove \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -27950,4 +33404,3 @@ securityDefinitions: name: Authorization type: apiKey swagger: '2.0' - diff --git a/config/pelion/sdk_foundation_definition.json b/config/pelion/sdk_foundation_definition.json index 274b05be1..c2c51d2a5 100644 --- a/config/pelion/sdk_foundation_definition.json +++ b/config/pelion/sdk_foundation_definition.json @@ -93,6 +93,8 @@ "campaign_statistics_summary_status_enum", "campaign_statistics_id_enum", "firmware_image_order_enum", + "firmware_manifest_schema_version_enum", + "firmware_manifest_delivered_payload_type_enum", "firmware_manifest_order_enum" ], "_key": "Device_Update" @@ -104,8 +106,7 @@ "device_events", "device_enrollment_bulk_create", "device_enrollment_bulk_delete", - "device_enrollment", - "device_enrollment_denial" + "device_enrollment" ], "enums": [ "device_lifecycle_status_enum", @@ -114,8 +115,7 @@ "device_state_enum", "device_enrollment_bulk_create_status_enum", "device_enrollment_bulk_delete_status_enum", - "device_enrollment_order_enum", - "device_enrollment_denial_order_enum" + "device_enrollment_order_enum" ], "_key": "Devices" }, @@ -416,17 +416,6 @@ "group_id": "Devices", "_key": "device_enrollment_bulk_delete_status_enum" }, - { - "entity_name": "device_enrollment_denial", - "field_name": "order", - "enum_name": "device_enrollment_denial_order_enum", - "values": [ - "ASC", - "DESC" - ], - "group_id": "Devices", - "_key": "device_enrollment_denial_order_enum" - }, { "entity_name": "device_enrollment", "field_name": "order", @@ -485,6 +474,17 @@ "group_id": "Device_Update", "_key": "firmware_image_order_enum" }, + { + "entity_name": "firmware_manifest", + "field_name": "delivered_payload_type", + "enum_name": "firmware_manifest_delivered_payload_type_enum", + "values": [ + "delta", + "full" + ], + "group_id": "Device_Update", + "_key": "firmware_manifest_delivered_payload_type_enum" + }, { "entity_name": "firmware_manifest", "field_name": "order", @@ -496,6 +496,17 @@ "group_id": "Device_Update", "_key": "firmware_manifest_order_enum" }, + { + "entity_name": "firmware_manifest", + "field_name": "manifest_schema_version", + "enum_name": "firmware_manifest_schema_version_enum", + "values": [ + "1", + "3" + ], + "group_id": "Device_Update", + "_key": "firmware_manifest_schema_version_enum" + }, { "entity_name": "identity_provider", "field_name": "algorithm", @@ -1045,6 +1056,7 @@ { "swagger_models": [ "AccountCreationReq", + "AccountCreationResp", "AccountInfo", "AccountInfoList", "AccountUpdateRootReq", @@ -1058,13 +1070,13 @@ "primary_key_field": "id", "methods": [ { - "description": "Retrieve API keys in an array, optionally filtered by the owner.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of API keys, optionally filtered by the owner.\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 \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -1116,7 +1128,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -1151,7 +1163,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -1315,7 +1327,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -1585,7 +1597,12 @@ "eq" ] }, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -1613,7 +1630,7 @@ "_key": "api_keys" }, { - "description": "Create a new account.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-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\"}'\n```", + "description": "Create a new account.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-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\"}'\n```", "field_renames": [], "fields": [ { @@ -1709,7 +1726,7 @@ { "type": "array", "maxItems": 10, - "description": "An array of aliases.", + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", "items": { "type": "string", "pattern": "[\\w\\-._]{8,100}" @@ -1756,7 +1773,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM Holdings Plc", - "description": "The name of the company.", + "description": "The name of the company used in billing.", "api_fieldname": "company", "entity_fieldname": "company", "parameter_fieldname": "company", @@ -1819,7 +1836,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM", - "description": "The display name for the account.", + "description": "The display name for the tenant account.", "api_fieldname": "display_name", "entity_fieldname": "display_name", "parameter_fieldname": "display_name", @@ -1848,7 +1865,7 @@ "entity_fieldname": "end_market", "parameter_fieldname": "end_market", "in": "body", - "required": false, + "required": true, "_key": "end_market" }, { @@ -1898,14 +1915,6 @@ "description": "Successful operation.", "schema": { "type": "object", - "required": [ - "end_market", - "etag", - "id", - "object", - "status", - "tier" - ], "properties": [ { "type": "string", @@ -1963,6 +1972,12 @@ "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", "description": "The admin API key created for this account. Present only in the response for account creation.", "readOnly": true, + "x-deprecation": { + "issued_at": "2020-09-01T00:00:00+00:00", + "end_of_life_at": "2021-09-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "admin_key", "entity_fieldname": "admin_key", "_key": "admin_key" @@ -1989,7 +2004,7 @@ { "type": "array", "maxItems": 10, - "description": "An array of aliases.", + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", "items": { "type": "string", "pattern": "[\\w\\-._]{8,100}" @@ -2056,7 +2071,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM Holdings Plc", - "description": "The name of the company.", + "description": "The name of the company used in billing.", "api_fieldname": "company", "entity_fieldname": "company", "_key": "company" @@ -2124,7 +2139,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM", - "description": "The display name for the account.", + "description": "The display name for the tenant account.", "api_fieldname": "display_name", "entity_fieldname": "display_name", "_key": "display_name" @@ -2309,13 +2324,12 @@ { "type": "object", "x-nullable": true, - "deprecated": true, "x-deprecation": { "issued_at": "2019-08-27T12:03:58+00:00", "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." + "comment": "Replaced by the limitations parameter." }, - "description": "List of limits as key-value pairs if requested.", + "description": "DEPRECATED: Replaced by the limitations parameter.", "additionalProperties": { "type": "string" }, @@ -2631,57 +2645,10 @@ "description": "Postal address line 2.", "_key": "address_line2" }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_password" - }, { "type": "array", "maxItems": 10, - "description": "An array of aliases.", + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", "items": { "type": "string", "pattern": "[\\w\\-._]{8,100}" @@ -2740,7 +2707,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM Holdings Plc", - "description": "The name of the company.", + "description": "The name of the company used in billing.", "_key": "company" }, { @@ -2794,7 +2761,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM", - "description": "The display name for the account.", + "description": "The display name for the tenant account.", "_key": "display_name" }, { @@ -2961,13 +2928,12 @@ { "type": "object", "x-nullable": true, - "deprecated": true, "x-deprecation": { "issued_at": "2019-08-27T12:03:58+00:00", "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." + "comment": "Replaced by the limitations parameter." }, - "description": "List of limits as key-value pairs if requested.", + "description": "DEPRECATED: Replaced by the limitations parameter.", "additionalProperties": { "type": "string" }, @@ -3224,4850 +3190,617 @@ "type": "array", "x-nullable": true, "description": "List of sub accounts. Not available for developer users.", - "items": [], - "_key": "sub_accounts" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "_key": "template_id" - }, - { - "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "_key": "tier" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "_key": "upgraded_at" - } - ], - "description": "Represents an account in requests and responses." - }, - "api_fieldname": "sub_accounts", - "entity_fieldname": "sub_accounts", - "_key": "sub_accounts" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "template_id", - "entity_fieldname": "template_id", - "_key": "template_id" - }, - { - "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "api_fieldname": "tier", - "entity_fieldname": "tier", - "_key": "tier" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "api_fieldname": "upgraded_at", - "entity_fieldname": "upgraded_at", - "_key": "upgraded_at" - } - ], - "description": "Represents an account in requests and responses." - }, - "_key": "201" - }, - { - "description": "Error in input data, for example, invalid username.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "400" - }, - { - "description": "Authentication failure.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - } - ], - "path": "/v3/accounts", - "summary": "Create a new account.", - "return_type": "account", - "return_info": { - "self": true, - "custom": false, - "type": "account" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "id", - "created_at", - "updated_at", - "parent_id", - "tier", - "status", - "upgraded_at", - "limits", - "policies", - "template_id", - "reason", - "idle_timeout", - "password_policy", - "reference_note", - "custom_fields", - "mfa_status", - "notification_emails", - "sales_contact", - "expiration_warning_threshold", - "parent_account", - "expiration", - "admin_id", - "admin_key", - "limitations", - "password_recovery_expiration", - "business_model_history" - ], - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "createAccount", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "create" - }, - { - "description": "Retrieve dark theme branding colors for an account.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "name": "account_id", - "in": "path", - "description": "The ID of the account.", - "required": true, - "type": "string", - "entity_fieldname": "id", - "api_fieldname": "account_id", - "external_param": false, - "parameter_fieldname": "account_id", - "_key": "id" - } - ], - "method": "get", - "mode": "dark_theme_branding_colors", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], - "properties": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "description": "A list of entities.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "#f3f93e", - "description": "The color given as name (purple) or as a hex code.", - "x-nullable": true, - "_key": "color" - }, - { - "type": "string", - "description": "Entity name: always 'branding_color'", - "readOnly": true, - "enum": [ - "branding_color" - ], - "_key": "object" - }, - { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, - "_key": "reference" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_color" - } - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return, or equal to `total_count`.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Entity name: always `list`.", - "enum": [ - "list" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" - }, - { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_color" - } - }, - "_key": "200" - }, - { - "description": "Authentication failure.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "Account not found.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/accounts/{account_id}/branding-colors/dark", - "summary": "Get dark theme branding colors.", - "return_type": "paginated_response(subtenant_dark_theme_color)", - "return_info": { - "self": false, - "custom": false, - "type": "subtenant_dark_theme_color" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "limit", - "after", - "order", - "total_count", - "has_more", - "data" - ], - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "getAccountDarkColors", - "notes": "This lists the dark theme banding colors of the subtenant account.", - "foreign_key": { - "entity": "subtenant_dark_theme_color" - }, - "pagination": true, - "request_content_type": "application/json", - "request_body": "json", - "_key": "dark_theme_branding_colors" - }, - { - "description": "Retrieve the metadata of all dark theme branding images.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "name": "account_id", - "in": "path", - "description": "The ID of the account.", - "required": true, - "type": "string", - "entity_fieldname": "id", - "api_fieldname": "account_id", - "external_param": false, - "parameter_fieldname": "account_id", - "_key": "id" - } - ], - "method": "get", - "mode": "dark_theme_branding_images", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], - "properties": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "description": "A list of entities.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Entity name: always 'branding_image'", - "readOnly": true, - "enum": [ - "branding_image" - ], - "_key": "object" - }, - { - "enum": [ - "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": "Name of the image.", - "is_primary_key": true, - "_override": true, - "_key": "reference" - }, - { - "type": "string", - "format": "uri", - "example": "https://static.mbed.com/123456789.jpg", - "description": "The static link to the image.", - "readOnly": true, - "_key": "static_uri" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_image" - } - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return, or equal to `total_count`.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Entity name: always `list`.", - "enum": [ - "list" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" - }, - { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_image" - } - }, - "_key": "200" - }, - { - "description": "Authentication failure.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "Account not found.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/accounts/{account_id}/branding-images/dark", - "summary": "Get metadata of all dark theme images.", - "return_type": "paginated_response(subtenant_dark_theme_image)", - "return_info": { - "self": false, - "custom": false, - "type": "subtenant_dark_theme_image" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "limit", - "after", - "order", - "total_count", - "has_more", - "data" - ], - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "getAllAccountDarkImageData", - "notes": "This lists the dark theme banding images of the subtenant account.", - "foreign_key": { - "entity": "subtenant_dark_theme_image" - }, - "pagination": true, - "request_content_type": "application/json", - "request_body": "json", - "_key": "dark_theme_branding_images" - }, - { - "description": "Retrieve light theme branding colors for an account.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "name": "account_id", - "in": "path", - "description": "The ID of the account.", - "required": true, - "type": "string", - "entity_fieldname": "id", - "api_fieldname": "account_id", - "external_param": false, - "parameter_fieldname": "account_id", - "_key": "id" - } - ], - "method": "get", - "mode": "light_theme_branding_colors", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], - "properties": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "description": "A list of entities.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "#f3f93e", - "description": "The color given as name (purple) or as a hex code.", - "x-nullable": true, - "_key": "color" - }, - { - "type": "string", - "description": "Entity name: always 'branding_color'", - "readOnly": true, - "enum": [ - "branding_color" - ], - "_key": "object" - }, - { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, - "_key": "reference" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_color" - } - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return, or equal to `total_count`.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Entity name: always `list`.", - "enum": [ - "list" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" - }, - { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_color" - } - }, - "_key": "200" - }, - { - "description": "Authentication failure.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "Account not found.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/accounts/{account_id}/branding-colors/light", - "summary": "Get light theme branding colors.", - "return_type": "paginated_response(subtenant_light_theme_color)", - "return_info": { - "self": false, - "custom": false, - "type": "subtenant_light_theme_color" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "limit", - "after", - "order", - "total_count", - "has_more", - "data" - ], - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "getAccountLightColors", - "notes": "This lists the light theme banding colors of the subtenant account.", - "foreign_key": { - "entity": "subtenant_light_theme_color" - }, - "pagination": true, - "request_content_type": "application/json", - "request_body": "json", - "_key": "light_theme_branding_colors" - }, - { - "description": "Retrieve the metadata of all light theme branding images.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "name": "account_id", - "in": "path", - "description": "The ID of the account.", - "required": true, - "type": "string", - "entity_fieldname": "id", - "api_fieldname": "account_id", - "external_param": false, - "parameter_fieldname": "account_id", - "_key": "id" - } - ], - "method": "get", - "mode": "light_theme_branding_images", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], - "properties": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "description": "A list of entities.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Entity name: always 'branding_image'", - "readOnly": true, - "enum": [ - "branding_image" - ], - "_key": "object" - }, - { - "enum": [ - "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": "Name of the image.", - "is_primary_key": true, - "_override": true, - "_key": "reference" - }, - { - "type": "string", - "format": "uri", - "example": "https://static.mbed.com/123456789.jpg", - "description": "The static link to the image.", - "readOnly": true, - "_key": "static_uri" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_image" - } - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return, or equal to `total_count`.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Entity name: always `list`.", - "enum": [ - "list" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" - }, - { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_image" - } - }, - "_key": "200" - }, - { - "description": "Authentication failure.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "Account not found.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/accounts/{account_id}/branding-images/light", - "summary": "Get metadata of all light theme images.", - "return_type": "paginated_response(subtenant_light_theme_image)", - "return_info": { - "self": false, - "custom": false, - "type": "subtenant_light_theme_image" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "limit", - "after", - "order", - "total_count", - "has_more", - "data" - ], - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "getAllAccountLightImageData", - "notes": "This lists the light theme banding images of the subtenant account.", - "foreign_key": { - "entity": "subtenant_light_theme_image" - }, - "pagination": true, - "request_content_type": "application/json", - "request_body": "json", - "_key": "light_theme_branding_images" - }, - { - "description": "Returns an array of account objects, optionally filtered by status and tier level.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "name": "after", - "in": "query", - "required": false, - "external_param": true, - "parameter_fieldname": "after", - "_key": "after" - }, - { - "name": "format", - "in": "query", - "description": "Format information for the query response. Supported: format=breakdown.", - "required": false, - "type": "string", - "entity_fieldname": "format", - "api_fieldname": "format", - "external_param": true, - "parameter_fieldname": "format", - "_key": "format" - }, - { - "name": "include", - "in": "query", - "description": "Comma-separated additional data to return. Currently supported: limits, policies, sub_accounts, history.", - "required": false, - "type": "string", - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "_key": "include" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return (2-1000). Default 1000.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "name": "limit", - "in": "query", - "required": false, - "default": 1000, - "external_param": true, - "parameter_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Record order. Acceptable values: ASC, DESC. Default: ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "name": "order", - "in": "query", - "required": false, - "default": "ASC", - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "account_order_enum", - "_key": "order" - }, - { - "name": "properties", - "in": "query", - "description": "Property name returned from account-specific properties.", - "required": false, - "type": "string", - "entity_fieldname": "properties", - "api_fieldname": "properties", - "external_param": true, - "parameter_fieldname": "properties", - "_key": "properties" - } - ], - "method": "get", - "mode": "list", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], - "properties": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "description": "A list of entities.", - "items": { - "type": "object", - "required": [ - "end_market", - "etag", - "id", - "object", - "status", - "tier" - ], - "properties": [ - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "_key": "address_line2" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_password" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "array", - "description": "Business model history for this account.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ] - }, - "_key": "business_model_history" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "_key": "city" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "_key": "company" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "_key": "contact" - }, - { - "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "_key": "contract_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "_key": "country" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" - }, - "_key": "custom_fields" - }, - { - "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "_key": "customer_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "_key": "display_name" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "_key": "email" - }, - { - "type": "string", - "example": "IT", - "description": "Account end market.", - "_key": "end_market" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "x-nullable": true, - "format": "date-time", - "description": "Expiration time of the account, as UTC time RFC3339.", - "_key": "expiration" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "_key": "expiration_warning_threshold" - }, - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "_key": "id" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "_key": "idle_timeout" - }, - { - "type": "array", - "description": "List of account limitation objects.", - "items": { - "type": "object", - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Billing period of the account limitation.", - "_key": "billing_period" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "string", - "description": "Description of the account limitation.", - "readOnly": true, - "_key": "description" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "_key": "id" - }, - { - "type": "boolean", - "description": "Flag indicating whether this limitation is inherited.", - "readOnly": true, - "_key": "inherited" - }, - { - "type": "string", - "description": "Indicates where this limit is inherited from.", - "readOnly": true, - "_key": "inherited_from" - }, - { - "type": "string", - "description": "Indicates the type of the entity where the limitation is inherited from.", - "readOnly": true, - "_key": "inherited_type" - }, - { - "type": "integer", - "format": "int32", - "description": "The value of the limit.", - "_key": "limit" - }, - { - "type": "string", - "description": "Name of the account limitation.", - "_key": "name" - }, - { - "type": "string", - "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" - ], - "_key": "object" - }, - { - "type": "integer", - "format": "int32", - "description": "Quota of the account limitation.", - "_key": "quota" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ], - "description": "This object represents an account limitation." - }, - "_key": "limitations" - }, - { - "type": "object", - "x-nullable": true, - "deprecated": true, - "x-deprecation": { - "issued_at": "2019-08-27T12:03:58+00:00", - "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." - }, - "description": "List of limits as key-value pairs if requested.", - "additionalProperties": { - "type": "string" - }, - "_key": "limits" - }, - { - "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "_key": "mfa_status" - }, - { - "type": "array", - "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "_key": "notification_emails" - }, - { - "type": "string", - "description": "Entity name: always `account`.", - "enum": [ - "account" - ], - "_key": "object" - }, - { - "type": "object", - "properties": [ - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "info@arm.com", - "description": "The email address of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "example": "J. Doe", - "description": "The name of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - } - ], - "description": "Represents parent account contact details in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "parent_account" - }, - "x-nullable": true, - "_key": "parent_account" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account, if any.", - "pattern": "[a-f0-9]{32}", - "_key": "parent_id" - }, - { - "type": "object", - "required": [ - "minimum_length" - ], - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "_key": "password_policy" - }, - { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "_key": "password_recovery_expiration" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "_key": "phone_number" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of policies if requested.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "GET", - "description": "Comma-separated list of actions, empty string represents all actions.", - "api_fieldname": "action", - "entity_fieldname": "action", - "_key": "action" - }, - { - "type": "boolean", - "example": true, - "description": "True or false controlling whether an action is allowed or not.", - "api_fieldname": "allow", - "entity_fieldname": "allow", - "_key": "allow" - }, - { - "type": "string", - "example": "update-campaigns", - "description": "Feature name corresponding to this policy.", - "api_fieldname": "feature", - "entity_fieldname": "feature", - "_key": "feature" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether this feature is inherited or overwritten specifically.", - "readOnly": true, - "api_fieldname": "inherited", - "entity_fieldname": "inherited", - "_key": "inherited" - }, - { - "type": "string", - "example": "016ada3ec2d46665bf66e32e00000000", - "description": "An ID indicating where this policy is inherited from.", - "pattern": "[a-f0-9]{32}", - "readOnly": true, - "api_fieldname": "inherited_from", - "entity_fieldname": "inherited_from", - "_key": "inherited_from" - }, - { - "type": "string", - "example": "account", - "description": "Indicates the type of entity this policy is inherited from.", - "readOnly": true, - "enum": [ - "account", - "template", - "tier_template" - ], - "api_fieldname": "inherited_type", - "entity_fieldname": "inherited_type", - "_key": "inherited_type" - }, - { - "type": "string", - "example": "/v3/update-campaign", - "description": "Resource that is protected by this policy.", - "api_fieldname": "resource", - "entity_fieldname": "resource", - "_key": "resource" - } - ], - "description": "Represents a feature policy. Either the feature or the resource must be specified.", - "foreign_key": { - "group": "Accounts", - "entity": "policy" - } - }, - "_key": "policies" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "_key": "postal_code" - }, - { - "type": "string", - "x-nullable": true, - "example": "Subscription paid.", - "description": "A note with the reason for account status update.", - "_key": "reason" - }, - { - "type": "string", - "x-nullable": true, - "example": "ARM-INT-0001", - "description": "A reference note for updating the status of the account.", - "_key": "reference_note" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "_key": "sales_contact" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "_key": "state" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the account.", - "enum": [ - "ENROLLING", - "ACTIVE", - "RESTRICTED", - "SUSPENDED" - ], - "_key": "status" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of sub accounts. Not available for developer users.", - "items": { - "type": "object", - "required": [ - "end_market", - "etag", - "id", - "object", - "status", - "tier" - ], - "properties": [ - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "_key": "address_line2" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_password" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "array", - "description": "Business model history for this account.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ] - }, - "_key": "business_model_history" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "_key": "city" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "_key": "company" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "_key": "contact" - }, - { - "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "_key": "contract_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "_key": "country" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" - }, - "_key": "custom_fields" - }, - { - "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "_key": "customer_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "_key": "display_name" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "_key": "email" - }, - { - "type": "string", - "example": "IT", - "description": "Account end market.", - "_key": "end_market" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "x-nullable": true, - "format": "date-time", - "description": "Expiration time of the account, as UTC time RFC3339.", - "_key": "expiration" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "_key": "expiration_warning_threshold" - }, - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "_key": "id" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "_key": "idle_timeout" - }, - { - "type": "array", - "description": "List of account limitation objects.", - "items": { - "type": "object", - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Billing period of the account limitation.", - "_key": "billing_period" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "string", - "description": "Description of the account limitation.", - "readOnly": true, - "_key": "description" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "_key": "id" - }, - { - "type": "boolean", - "description": "Flag indicating whether this limitation is inherited.", - "readOnly": true, - "_key": "inherited" - }, - { - "type": "string", - "description": "Indicates where this limit is inherited from.", - "readOnly": true, - "_key": "inherited_from" - }, - { - "type": "string", - "description": "Indicates the type of the entity where the limitation is inherited from.", - "readOnly": true, - "_key": "inherited_type" - }, - { - "type": "integer", - "format": "int32", - "description": "The value of the limit.", - "_key": "limit" - }, - { - "type": "string", - "description": "Name of the account limitation.", - "_key": "name" - }, - { - "type": "string", - "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" - ], - "_key": "object" - }, - { - "type": "integer", - "format": "int32", - "description": "Quota of the account limitation.", - "_key": "quota" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ], - "description": "This object represents an account limitation." - }, - "_key": "limitations" - }, - { - "type": "object", - "x-nullable": true, - "deprecated": true, - "x-deprecation": { - "issued_at": "2019-08-27T12:03:58+00:00", - "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." - }, - "description": "List of limits as key-value pairs if requested.", - "additionalProperties": { - "type": "string" - }, - "_key": "limits" - }, - { - "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "_key": "mfa_status" - }, - { - "type": "array", - "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "_key": "notification_emails" - }, - { - "type": "string", - "description": "Entity name: always `account`.", - "enum": [ - "account" - ], - "_key": "object" - }, - { - "type": "object", - "properties": [ - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "info@arm.com", - "description": "The email address of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "example": "J. Doe", - "description": "The name of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - } - ], - "description": "Represents parent account contact details in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "parent_account" - }, - "x-nullable": true, - "_key": "parent_account" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account, if any.", - "pattern": "[a-f0-9]{32}", - "_key": "parent_id" - }, - { - "type": "object", - "required": [ - "minimum_length" - ], - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "_key": "password_policy" - }, - { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "_key": "password_recovery_expiration" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "_key": "phone_number" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of policies if requested.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "GET", - "description": "Comma-separated list of actions, empty string represents all actions.", - "api_fieldname": "action", - "entity_fieldname": "action", - "_key": "action" - }, - { - "type": "boolean", - "example": true, - "description": "True or false controlling whether an action is allowed or not.", - "api_fieldname": "allow", - "entity_fieldname": "allow", - "_key": "allow" - }, - { - "type": "string", - "example": "update-campaigns", - "description": "Feature name corresponding to this policy.", - "api_fieldname": "feature", - "entity_fieldname": "feature", - "_key": "feature" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether this feature is inherited or overwritten specifically.", - "readOnly": true, - "api_fieldname": "inherited", - "entity_fieldname": "inherited", - "_key": "inherited" - }, - { - "type": "string", - "example": "016ada3ec2d46665bf66e32e00000000", - "description": "An ID indicating where this policy is inherited from.", - "pattern": "[a-f0-9]{32}", - "readOnly": true, - "api_fieldname": "inherited_from", - "entity_fieldname": "inherited_from", - "_key": "inherited_from" - }, - { - "type": "string", - "example": "account", - "description": "Indicates the type of entity this policy is inherited from.", - "readOnly": true, - "enum": [ - "account", - "template", - "tier_template" - ], - "api_fieldname": "inherited_type", - "entity_fieldname": "inherited_type", - "_key": "inherited_type" - }, - { - "type": "string", - "example": "/v3/update-campaign", - "description": "Resource that is protected by this policy.", - "api_fieldname": "resource", - "entity_fieldname": "resource", - "_key": "resource" - } - ], - "description": "Represents a feature policy. Either the feature or the resource must be specified.", - "foreign_key": { - "group": "Accounts", - "entity": "policy" - } - }, - "_key": "policies" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "_key": "postal_code" - }, - { - "type": "string", - "x-nullable": true, - "example": "Subscription paid.", - "description": "A note with the reason for account status update.", - "_key": "reason" - }, - { - "type": "string", - "x-nullable": true, - "example": "ARM-INT-0001", - "description": "A reference note for updating the status of the account.", - "_key": "reference_note" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "_key": "sales_contact" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "_key": "state" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the account.", - "enum": [ - "ENROLLING", - "ACTIVE", - "RESTRICTED", - "SUSPENDED" - ], - "_key": "status" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of sub accounts. Not available for developer users.", - "items": [], - "_key": "sub_accounts" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "_key": "template_id" - }, - { - "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "_key": "tier" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "_key": "upgraded_at" - } - ], - "description": "Represents an account in requests and responses." - }, - "_key": "sub_accounts" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "_key": "template_id" - }, - { - "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "_key": "tier" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "_key": "upgraded_at" - } - ], - "description": "Represents an account in requests and responses." - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return (2-1000), or equal to `total_count`.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Entity name: always `list`.", - "enum": [ - "list" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" - }, - { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Accounts", - "entity": "account" - } - }, - "_key": "200" - }, - { - "description": "Authentication failure.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - } - ], - "path": "/v3/accounts", - "summary": "Get all accounts.", - "return_type": "paginated_response(account)", - "return_info": { - "self": true, - "custom": false, - "type": "account" - }, - "x_filter": { - "status": [ - "eq", - "in", - "nin" - ], - "tier": [ - "eq" - ], - "parent": [ - "eq" - ], - "end_market": [ - "eq" - ], - "country": [ - "like" - ] - }, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "total_count", - "has_more", - "data", - "status__eq", - "status__in", - "status__nin", - "tier__eq", - "parent__eq", - "end_market__eq", - "country__like" - ], - "foreign_key_priority": "self", - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "getAllAccounts", - "pagination": true, - "foreign_key": { - "group": "Accounts", - "entity": "account" - }, - "request_content_type": "application/json", - "request_body": "json", - "_key": "list" - }, - { - "description": "Retrieve detailed information about the account.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/me?include=policies \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "name": "include", - "in": "query", - "description": "Comma-separated additional data to return. Currently supported: limits, policies, sub_accounts.", - "required": false, - "type": "string", - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "_key": "include" - }, - { - "name": "properties", - "in": "query", - "description": "Property name to return from account-specific properties.", - "required": false, - "type": "string", - "entity_fieldname": "properties", - "api_fieldname": "properties", - "external_param": true, - "parameter_fieldname": "properties", - "_key": "properties" - } - ], - "method": "get", - "mode": "me", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "end_market", - "etag", - "id", - "object", - "status", - "tier" - ], - "properties": [ - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "api_fieldname": "address_line1", - "entity_fieldname": "address_line1", - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "api_fieldname": "address_line2", - "entity_fieldname": "address_line2", - "_key": "address_line2" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_full_name", - "entity_fieldname": "admin_full_name", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "admin_id", - "entity_fieldname": "admin_id", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "api_fieldname": "admin_key", - "entity_fieldname": "admin_key", - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_password", - "entity_fieldname": "admin_password", - "_key": "admin_password" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "api_fieldname": "aliases", - "entity_fieldname": "aliases", - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "api_fieldname": "business_model", - "entity_fieldname": "business_model", - "_key": "business_model" - }, - { - "type": "array", - "description": "Business model history for this account.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ] - }, - "api_fieldname": "business_model_history", - "entity_fieldname": "business_model_history", - "_key": "business_model_history" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "api_fieldname": "city", - "entity_fieldname": "city", - "_key": "city" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "api_fieldname": "company", - "entity_fieldname": "company", - "_key": "company" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "api_fieldname": "contact", - "entity_fieldname": "contact", - "_key": "contact" - }, - { - "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "api_fieldname": "contract_number", - "entity_fieldname": "contract_number", - "_key": "contract_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "api_fieldname": "country", - "entity_fieldname": "country", - "_key": "country" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" - }, - "api_fieldname": "custom_fields", - "entity_fieldname": "custom_fields", - "_key": "custom_fields" - }, - { - "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "api_fieldname": "customer_number", - "entity_fieldname": "customer_number", - "_key": "customer_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "api_fieldname": "display_name", - "entity_fieldname": "display_name", - "_key": "display_name" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "api_fieldname": "email", - "entity_fieldname": "email", - "_key": "email" - }, - { - "type": "string", - "example": "IT", - "description": "Account end market.", - "api_fieldname": "end_market", - "entity_fieldname": "end_market", - "_key": "end_market" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, - { - "type": "string", - "x-nullable": true, - "format": "date-time", - "description": "Expiration time of the account, as UTC time RFC3339.", - "api_fieldname": "expiration", - "entity_fieldname": "expiration", - "_key": "expiration" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "api_fieldname": "expiration_warning_threshold", - "entity_fieldname": "expiration_warning_threshold", - "_key": "expiration_warning_threshold" - }, - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "api_fieldname": "idle_timeout", - "entity_fieldname": "idle_timeout", - "_key": "idle_timeout" - }, - { - "type": "array", - "description": "List of account limitation objects.", - "items": { - "type": "object", - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Billing period of the account limitation.", - "_key": "billing_period" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "string", - "description": "Description of the account limitation.", - "readOnly": true, - "_key": "description" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "_key": "id" - }, - { - "type": "boolean", - "description": "Flag indicating whether this limitation is inherited.", - "readOnly": true, - "_key": "inherited" - }, - { - "type": "string", - "description": "Indicates where this limit is inherited from.", - "readOnly": true, - "_key": "inherited_from" - }, - { - "type": "string", - "description": "Indicates the type of the entity where the limitation is inherited from.", - "readOnly": true, - "_key": "inherited_type" - }, - { - "type": "integer", - "format": "int32", - "description": "The value of the limit.", - "_key": "limit" - }, - { - "type": "string", - "description": "Name of the account limitation.", - "_key": "name" - }, - { - "type": "string", - "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" - ], - "_key": "object" - }, - { - "type": "integer", - "format": "int32", - "description": "Quota of the account limitation.", - "_key": "quota" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ], - "description": "This object represents an account limitation." - }, - "api_fieldname": "limitations", - "entity_fieldname": "limitations", - "_key": "limitations" - }, - { - "type": "object", - "x-nullable": true, - "deprecated": true, - "x-deprecation": { - "issued_at": "2019-08-27T12:03:58+00:00", - "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." - }, - "description": "List of limits as key-value pairs if requested.", - "additionalProperties": { - "type": "string" - }, - "api_fieldname": "limits", - "entity_fieldname": "limits", - "_key": "limits" - }, - { - "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "api_fieldname": "mfa_status", - "entity_fieldname": "mfa_status", - "_key": "mfa_status" - }, - { - "type": "array", - "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "api_fieldname": "notification_emails", - "entity_fieldname": "notification_emails", - "_key": "notification_emails" - }, - { - "type": "string", - "description": "Entity name: always `account`.", - "enum": [ - "account" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "object", - "properties": [ - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "info@arm.com", - "description": "The email address of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "example": "J. Doe", - "description": "The name of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - } - ], - "description": "Represents parent account contact details in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "parent_account" - }, - "x-nullable": true, - "api_fieldname": "parent_account", - "entity_fieldname": "parent_account", - "_key": "parent_account" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account, if any.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "parent_id", - "entity_fieldname": "parent_id", - "_key": "parent_id" - }, - { - "type": "object", - "required": [ - "minimum_length" - ], - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "api_fieldname": "password_policy", - "entity_fieldname": "password_policy", - "_key": "password_policy" - }, - { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "api_fieldname": "password_recovery_expiration", - "entity_fieldname": "password_recovery_expiration", - "_key": "password_recovery_expiration" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "api_fieldname": "phone_number", - "entity_fieldname": "phone_number", - "_key": "phone_number" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of policies if requested.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "GET", - "description": "Comma-separated list of actions, empty string represents all actions.", - "api_fieldname": "action", - "entity_fieldname": "action", - "_key": "action" - }, - { - "type": "boolean", - "example": true, - "description": "True or false controlling whether an action is allowed or not.", - "api_fieldname": "allow", - "entity_fieldname": "allow", - "_key": "allow" - }, - { - "type": "string", - "example": "update-campaigns", - "description": "Feature name corresponding to this policy.", - "api_fieldname": "feature", - "entity_fieldname": "feature", - "_key": "feature" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether this feature is inherited or overwritten specifically.", - "readOnly": true, - "api_fieldname": "inherited", - "entity_fieldname": "inherited", - "_key": "inherited" - }, - { - "type": "string", - "example": "016ada3ec2d46665bf66e32e00000000", - "description": "An ID indicating where this policy is inherited from.", - "pattern": "[a-f0-9]{32}", - "readOnly": true, - "api_fieldname": "inherited_from", - "entity_fieldname": "inherited_from", - "_key": "inherited_from" - }, - { - "type": "string", - "example": "account", - "description": "Indicates the type of entity this policy is inherited from.", - "readOnly": true, - "enum": [ - "account", - "template", - "tier_template" - ], - "api_fieldname": "inherited_type", - "entity_fieldname": "inherited_type", - "_key": "inherited_type" - }, - { - "type": "string", - "example": "/v3/update-campaign", - "description": "Resource that is protected by this policy.", - "api_fieldname": "resource", - "entity_fieldname": "resource", - "_key": "resource" - } - ], - "description": "Represents a feature policy. Either the feature or the resource must be specified.", - "foreign_key": { - "group": "Accounts", - "entity": "policy" - } - }, - "api_fieldname": "policies", - "entity_fieldname": "policies", - "_key": "policies" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "api_fieldname": "postal_code", - "entity_fieldname": "postal_code", - "_key": "postal_code" - }, - { - "type": "string", - "x-nullable": true, - "example": "Subscription paid.", - "description": "A note with the reason for account status update.", - "api_fieldname": "reason", - "entity_fieldname": "reason", - "_key": "reason" - }, - { - "type": "string", - "x-nullable": true, - "example": "ARM-INT-0001", - "description": "A reference note for updating the status of the account.", - "api_fieldname": "reference_note", - "entity_fieldname": "reference_note", - "_key": "reference_note" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "api_fieldname": "sales_contact", - "entity_fieldname": "sales_contact", - "_key": "sales_contact" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "api_fieldname": "state", - "entity_fieldname": "state", - "_key": "state" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the account.", - "enum": [ - "ENROLLING", - "ACTIVE", - "RESTRICTED", - "SUSPENDED" - ], - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of sub accounts. Not available for developer users.", - "items": { - "type": "object", - "required": [ - "end_market", - "etag", - "id", - "object", - "status", - "tier" - ], - "properties": [ - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "_key": "address_line2" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_password" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "array", - "description": "Business model history for this account.", "items": { "type": "object", + "required": [ + "end_market", + "etag", + "id", + "object", + "status", + "tier" + ], "properties": [ { "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "_key": "country" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "_key": "display_name" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", + "_key": "email" + }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "_key": "end_market" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "x-nullable": true, + "format": "date-time", + "description": "Expiration time of the account, as UTC time RFC3339.", + "_key": "expiration" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "_key": "expiration_warning_threshold" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "_key": "idle_timeout" + }, + { + "type": "array", + "description": "List of account limitation objects.", + "items": { + "type": "object", + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", + "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "This object represents an account limitation." + }, + "_key": "limitations" + }, + { + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "_key": "limits" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", "enum": [ - "active_device_business_model", - "api_calls_1_business_model" + "enforced", + "optional" ], - "_key": "business_model" + "_key": "mfa_status" + }, + { + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "_key": "notification_emails" }, { "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ] - }, - "_key": "business_model_history" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "_key": "city" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "_key": "company" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "_key": "contact" - }, - { - "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "_key": "contract_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "_key": "country" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" - }, - "_key": "custom_fields" - }, - { - "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "_key": "customer_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "_key": "display_name" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "_key": "email" - }, - { - "type": "string", - "example": "IT", - "description": "Account end market.", - "_key": "end_market" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "x-nullable": true, - "format": "date-time", - "description": "Expiration time of the account, as UTC time RFC3339.", - "_key": "expiration" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "_key": "expiration_warning_threshold" - }, - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "_key": "id" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "_key": "idle_timeout" - }, - { - "type": "array", - "description": "List of account limitation objects.", - "items": { - "type": "object", - "properties": [ + "description": "Entity name: always `account`.", + "enum": [ + "account" + ], + "_key": "object" + }, + { + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + } + ], + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" + }, + "x-nullable": true, + "_key": "parent_account" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", + "pattern": "[a-f0-9]{32}", + "_key": "parent_id" + }, + { + "type": "object", + "required": [ + "minimum_length" + ], + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" + }, + "description": "The password policy for this account.", + "x-nullable": true, + "_key": "password_policy" + }, { "type": "integer", "format": "int32", - "description": "Billing period of the account limitation.", - "_key": "billing_period" + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "_key": "password_recovery_expiration" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "_key": "phone_number" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of policies if requested.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" + }, + { + "type": "string", + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" + }, + { + "type": "string", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", + "readOnly": true, + "enum": [ + "account", + "template", + "tier_template" + ], + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" + } + ], + "description": "Represents a feature policy. Either the feature or the resource must be specified.", + "foreign_key": { + "group": "Accounts", + "entity": "policy" + } + }, + "_key": "policies" }, { "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "_key": "postal_code" }, { "type": "string", - "description": "Description of the account limitation.", - "readOnly": true, - "_key": "description" + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "_key": "reason" }, { "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "_key": "reference_note" }, { + "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "_key": "id" - }, - { - "type": "boolean", - "description": "Flag indicating whether this limitation is inherited.", - "readOnly": true, - "_key": "inherited" + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "_key": "sales_contact" }, { "type": "string", - "description": "Indicates where this limit is inherited from.", - "readOnly": true, - "_key": "inherited_from" + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "_key": "state" }, { "type": "string", - "description": "Indicates the type of the entity where the limitation is inherited from.", - "readOnly": true, - "_key": "inherited_type" + "example": "ACTIVE", + "description": "The status of the account.", + "enum": [ + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" + ], + "_key": "status" }, { - "type": "integer", - "format": "int32", - "description": "The value of the limit.", - "_key": "limit" + "type": "array", + "x-nullable": true, + "description": "List of sub accounts. Not available for developer users.", + "items": [], + "_key": "sub_accounts" }, { "type": "string", - "description": "Name of the account limitation.", - "_key": "name" + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", + "pattern": "[a-f0-9]{32}", + "_key": "template_id" }, { "type": "string", - "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" - ], - "_key": "object" + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" }, { - "type": "integer", - "format": "int32", - "description": "Quota of the account limitation.", - "_key": "quota" + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "_key": "tier_history" }, { "type": "string", @@ -8075,359 +3808,295 @@ "example": "2018-02-14T15:24:14Z", "description": "Last update UTC time RFC3339.", "_key": "updated_at" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "_key": "upgraded_at" } ], - "description": "This object represents an account limitation." - }, - "_key": "limitations" - }, - { - "type": "object", - "x-nullable": true, - "deprecated": true, - "x-deprecation": { - "issued_at": "2019-08-27T12:03:58+00:00", - "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." - }, - "description": "List of limits as key-value pairs if requested.", - "additionalProperties": { - "type": "string" - }, - "_key": "limits" - }, - { - "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "_key": "mfa_status" - }, - { - "type": "array", - "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "_key": "notification_emails" - }, - { - "type": "string", - "description": "Entity name: always `account`.", - "enum": [ - "account" - ], - "_key": "object" - }, - { - "type": "object", - "properties": [ - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "info@arm.com", - "description": "The email address of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "example": "J. Doe", - "description": "The name of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - } - ], - "description": "Represents parent account contact details in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "parent_account" + "description": "Represents an account in requests and responses." }, - "x-nullable": true, - "_key": "parent_account" + "_key": "sub_accounts" }, { "type": "string", "x-nullable": true, - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account, if any.", + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", "pattern": "[a-f0-9]{32}", - "_key": "parent_id" - }, - { - "type": "object", - "required": [ - "minimum_length" - ], - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "_key": "password_policy" - }, - { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "_key": "password_recovery_expiration" + "_key": "template_id" }, { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "_key": "phone_number" + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" }, { "type": "array", - "x-nullable": true, - "description": "List of policies if requested.", + "description": "Tier history for this account.", "items": { "type": "object", "properties": [ { "type": "string", - "example": "GET", - "description": "Comma-separated list of actions, empty string represents all actions.", - "api_fieldname": "action", - "entity_fieldname": "action", - "_key": "action" - }, - { - "type": "boolean", - "example": true, - "description": "True or false controlling whether an action is allowed or not.", - "api_fieldname": "allow", - "entity_fieldname": "allow", - "_key": "allow" - }, - { - "type": "string", - "example": "update-campaigns", - "description": "Feature name corresponding to this policy.", - "api_fieldname": "feature", - "entity_fieldname": "feature", - "_key": "feature" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether this feature is inherited or overwritten specifically.", - "readOnly": true, - "api_fieldname": "inherited", - "entity_fieldname": "inherited", - "_key": "inherited" - }, - { - "type": "string", - "example": "016ada3ec2d46665bf66e32e00000000", - "description": "An ID indicating where this policy is inherited from.", - "pattern": "[a-f0-9]{32}", - "readOnly": true, - "api_fieldname": "inherited_from", - "entity_fieldname": "inherited_from", - "_key": "inherited_from" - }, - { - "type": "string", - "example": "account", - "description": "Indicates the type of entity this policy is inherited from.", - "readOnly": true, - "enum": [ - "account", - "template", - "tier_template" - ], - "api_fieldname": "inherited_type", - "entity_fieldname": "inherited_type", - "_key": "inherited_type" + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" }, { "type": "string", - "example": "/v3/update-campaign", - "description": "Resource that is protected by this policy.", - "api_fieldname": "resource", - "entity_fieldname": "resource", - "_key": "resource" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" } - ], - "description": "Represents a feature policy. Either the feature or the resource must be specified.", - "foreign_key": { - "group": "Accounts", - "entity": "policy" - } + ] }, - "_key": "policies" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "_key": "postal_code" - }, - { - "type": "string", - "x-nullable": true, - "example": "Subscription paid.", - "description": "A note with the reason for account status update.", - "_key": "reason" + "_key": "tier_history" }, { "type": "string", - "x-nullable": true, - "example": "ARM-INT-0001", - "description": "A reference note for updating the status of the account.", - "_key": "reference_note" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" }, { - "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "_key": "sales_contact" - }, + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "_key": "upgraded_at" + } + ], + "description": "Represents an account in requests and responses." + }, + "api_fieldname": "sub_accounts", + "entity_fieldname": "sub_accounts", + "_key": "sub_accounts" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "template_id", + "entity_fieldname": "template_id", + "_key": "template_id" + }, + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "api_fieldname": "tier", + "entity_fieldname": "tier", + "_key": "tier" + }, + { + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "_key": "state" + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" }, { "type": "string", - "example": "ACTIVE", - "description": "The status of the account.", - "enum": [ - "ENROLLING", - "ACTIVE", - "RESTRICTED", - "SUSPENDED" - ], - "_key": "status" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of sub accounts. Not available for developer users.", - "items": [], - "_key": "sub_accounts" - }, + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "api_fieldname": "tier_history", + "entity_fieldname": "tier_history", + "_key": "tier_history" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "api_fieldname": "upgraded_at", + "entity_fieldname": "upgraded_at", + "_key": "upgraded_at" + } + ], + "description": "Represents an account in requests and responses.", + "foreign_key": { + "group": "Accounts", + "entity": "account" + } + }, + "_key": "201" + }, + { + "description": "Error in input data, for example, invalid username.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ { "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "_key": "template_id" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "_key": "tier" - }, + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ { "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "_key": "upgraded_at" + "description": "Name of the field which caused the error.", + "_key": "name" } - ], - "description": "Represents an account in requests and responses." + ] }, - "api_fieldname": "sub_accounts", - "entity_fieldname": "sub_accounts", - "_key": "sub_accounts" + "_key": "fields" }, { "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "template_id", - "entity_fieldname": "template_id", - "_key": "template_id" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "api_fieldname": "tier", - "entity_fieldname": "tier", - "_key": "tier" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "api_fieldname": "upgraded_at", - "entity_fieldname": "upgraded_at", - "_key": "upgraded_at" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "description": "Represents an account in requests and responses." + ] }, - "_key": "200" + "_key": "401" }, { - "description": "Authentication failure.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -8497,10 +4166,10 @@ } ] }, - "_key": "401" + "_key": "403" }, { - "description": "Forbidden.", + "description": "Account with the specified alias exists already.", "schema": { "type": "object", "required": [ @@ -8570,11 +4239,11 @@ } ] }, - "_key": "403" + "_key": "409" } ], - "path": "/v3/accounts/me", - "summary": "Get account info.", + "path": "/v3/accounts", + "summary": "Create a new account.", "return_type": "account", "return_info": { "self": true, @@ -8593,18 +4262,6 @@ "created_at", "updated_at", "parent_id", - "display_name", - "company", - "country", - "address_line1", - "address_line2", - "city", - "state", - "postal_code", - "contact", - "email", - "phone_number", - "aliases", "tier", "status", "upgraded_at", @@ -8612,7 +4269,6 @@ "policies", "template_id", "reason", - "end_market", "idle_timeout", "password_policy", "reference_note", @@ -8621,1482 +4277,1485 @@ "notification_emails", "sales_contact", "expiration_warning_threshold", - "contract_number", - "customer_number", "parent_account", "expiration", "admin_id", - "admin_name", - "admin_email", "admin_key", - "admin_password", - "admin_full_name", "limitations", "password_recovery_expiration", - "business_model", - "business_model_history" + "business_model_history", + "tier_history" ], "group_id": "Accounts", "parameter_map": { "account_id": "id" }, - "operation_id": "getMyAccountInfo", - "notes": "This is provided by the SDK to avoid listing to retrieve the user's own Account.", + "operation_id": "createAccount", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "me" + "_key": "create" }, { - "description": "Retrieve detailed information about an account.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve dark theme branding colors for an account.\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}/branding-colors/dark \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { + "name": "account_id", + "in": "path", + "description": "The ID of the account.", + "required": true, "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", "entity_fieldname": "id", + "api_fieldname": "account_id", + "external_param": false, "parameter_fieldname": "account_id", - "in": "path", - "required": true, "_key": "id" - }, - { - "name": "include", - "in": "query", - "description": "Comma-separated additional data to return. Currently supported: limits, policies, sub_accounts, history.", - "required": false, - "type": "string", - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "_key": "include" - }, - { - "name": "properties", - "in": "query", - "description": "Property name to return from account-specific properties.", - "required": false, - "type": "string", - "entity_fieldname": "properties", - "api_fieldname": "properties", - "external_param": true, - "parameter_fieldname": "properties", - "_key": "properties" } ], "method": "get", - "mode": "read", + "mode": "dark_theme_branding_colors", "responses": [ { "description": "Successful operation.", "schema": { "type": "object", "required": [ - "end_market", - "etag", - "id", + "data", + "has_more", + "limit", "object", - "status", - "tier" + "total_count" ], "properties": [ { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "api_fieldname": "address_line1", - "entity_fieldname": "address_line1", - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "api_fieldname": "address_line2", - "entity_fieldname": "address_line2", - "_key": "address_line2" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_full_name", - "entity_fieldname": "admin_full_name", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", - "api_fieldname": "admin_id", - "entity_fieldname": "admin_id", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "api_fieldname": "admin_key", - "entity_fieldname": "admin_key", - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_password", - "entity_fieldname": "admin_password", - "_key": "admin_password" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "api_fieldname": "aliases", - "entity_fieldname": "aliases", - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "api_fieldname": "business_model", - "entity_fieldname": "business_model", - "_key": "business_model" + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { "type": "array", - "description": "Business model history for this account.", + "description": "A list of entities.", "items": { "type": "object", "properties": [ { "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", + "example": "#f3f93e", + "description": "The color given as name (purple) or as a hex code.", + "x-nullable": true, + "_key": "color" + }, + { + "type": "string", + "description": "Entity name: always 'branding_color'", + "readOnly": true, "enum": [ - "active_device_business_model", - "api_calls_1_business_model" + "branding_color" ], - "_key": "business_model" + "_key": "object" + }, + { + "enum": [ + "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", + "description": "Color name.", + "is_primary_key": true, + "_override": true, + "_key": "reference" }, { "type": "string", "format": "date-time", "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", + "description": "Last update time in UTC.", + "readOnly": true, "_key": "updated_at" } - ] + ], + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_color" + } }, - "api_fieldname": "business_model_history", - "entity_fieldname": "business_model_history", - "_key": "business_model_history" + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "api_fieldname": "city", - "entity_fieldname": "city", - "_key": "city" + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" }, { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "api_fieldname": "company", - "entity_fieldname": "company", - "_key": "company" + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return, or equal to `total_count`.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "api_fieldname": "contact", - "entity_fieldname": "contact", - "_key": "contact" + "description": "Entity name: always `list`.", + "enum": [ + "list" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" }, { "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "api_fieldname": "contract_number", - "entity_fieldname": "contract_number", - "_key": "contract_number" + "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" + }, + { + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" + } + ], + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_color" + } + }, + "_key": "200" + }, + { + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "api_fieldname": "country", - "entity_fieldname": "country", - "_key": "country" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" - }, - "api_fieldname": "custom_fields", - "entity_fieldname": "custom_fields", - "_key": "custom_fields" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "api_fieldname": "customer_number", - "entity_fieldname": "customer_number", - "_key": "customer_number" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "api_fieldname": "display_name", - "entity_fieldname": "display_name", - "_key": "display_name" - }, + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "api_fieldname": "email", - "entity_fieldname": "email", - "_key": "email" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { - "type": "string", - "example": "IT", - "description": "Account end market.", - "api_fieldname": "end_market", - "entity_fieldname": "end_market", - "_key": "end_market" + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "example": "1", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "x-nullable": true, - "format": "date-time", - "description": "Expiration time of the account, as UTC time RFC3339.", - "api_fieldname": "expiration", - "entity_fieldname": "expiration", - "_key": "expiration" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "api_fieldname": "expiration_warning_threshold", - "entity_fieldname": "expiration_warning_threshold", - "_key": "expiration_warning_threshold" + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + }, + { + "description": "Account not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ { "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "api_fieldname": "idle_timeout", - "entity_fieldname": "idle_timeout", - "_key": "idle_timeout" + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { "type": "array", - "description": "List of account limitation objects.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Billing period of the account limitation.", - "_key": "billing_period" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "string", - "description": "Description of the account limitation.", - "readOnly": true, - "_key": "description" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "_key": "id" - }, - { - "type": "boolean", - "description": "Flag indicating whether this limitation is inherited.", - "readOnly": true, - "_key": "inherited" - }, - { - "type": "string", - "description": "Indicates where this limit is inherited from.", - "readOnly": true, - "_key": "inherited_from" - }, { "type": "string", - "description": "Indicates the type of the entity where the limitation is inherited from.", - "readOnly": true, - "_key": "inherited_type" - }, - { - "type": "integer", - "format": "int32", - "description": "The value of the limit.", - "_key": "limit" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Name of the account limitation.", + "description": "Name of the field which caused the error.", "_key": "name" - }, - { - "type": "string", - "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" - ], - "_key": "object" - }, - { - "type": "integer", - "format": "int32", - "description": "Quota of the account limitation.", - "_key": "quota" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" } - ], - "description": "This object represents an account limitation." - }, - "api_fieldname": "limitations", - "entity_fieldname": "limitations", - "_key": "limitations" - }, - { - "type": "object", - "x-nullable": true, - "deprecated": true, - "x-deprecation": { - "issued_at": "2019-08-27T12:03:58+00:00", - "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." - }, - "description": "List of limits as key-value pairs if requested.", - "additionalProperties": { - "type": "string" + ] }, - "api_fieldname": "limits", - "entity_fieldname": "limits", - "_key": "limits" + "_key": "fields" }, { "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "api_fieldname": "mfa_status", - "entity_fieldname": "mfa_status", - "_key": "mfa_status" - }, - { - "type": "array", - "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "api_fieldname": "notification_emails", - "entity_fieldname": "notification_emails", - "_key": "notification_emails" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "description": "Entity name: always `account`.", + "description": "Entity name, always `error`.", "enum": [ - "account" + "error" ], - "api_fieldname": "object", - "entity_fieldname": "object", "_key": "object" }, - { - "type": "object", - "properties": [ - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "info@arm.com", - "description": "The email address of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "example": "J. Doe", - "description": "The name of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - } - ], - "description": "Represents parent account contact details in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "parent_account" - }, - "x-nullable": true, - "api_fieldname": "parent_account", - "entity_fieldname": "parent_account", - "_key": "parent_account" - }, { "type": "string", - "x-nullable": true, - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account, if any.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "parent_id", - "entity_fieldname": "parent_id", - "_key": "parent_id" - }, - { - "type": "object", - "required": [ - "minimum_length" - ], - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "api_fieldname": "password_policy", - "entity_fieldname": "password_policy", - "_key": "password_policy" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "api_fieldname": "password_recovery_expiration", - "entity_fieldname": "password_recovery_expiration", - "_key": "password_recovery_expiration" - }, + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "404" + } + ], + "path": "/v3/accounts/{account_id}/branding-colors/dark", + "summary": "Get dark theme branding colors.", + "return_type": "paginated_response(subtenant_dark_theme_color)", + "return_info": { + "self": false, + "custom": false, + "type": "subtenant_dark_theme_color" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "sub_accounts", + "limit", + "after", + "order", + "total_count", + "has_more", + "data" + ], + "group_id": "Accounts", + "parameter_map": { + "account_id": "id" + }, + "operation_id": "getAccountDarkColors", + "notes": "This lists the dark theme banding colors of the subtenant account.", + "foreign_key": { + "entity": "subtenant_dark_theme_color" + }, + "pagination": true, + "request_content_type": "application/json", + "request_body": "json", + "_key": "dark_theme_branding_colors" + }, + { + "description": "Retrieve the metadata of all dark theme branding images.\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}/branding-images/dark \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], + "fields": [ + { + "name": "account_id", + "in": "path", + "description": "The ID of the account.", + "required": true, + "type": "string", + "entity_fieldname": "id", + "api_fieldname": "account_id", + "external_param": false, + "parameter_fieldname": "account_id", + "_key": "id" + } + ], + "method": "get", + "mode": "dark_theme_branding_images", + "responses": [ + { + "description": "Successful operation.", + "schema": { + "type": "object", + "required": [ + "data", + "has_more", + "limit", + "object", + "total_count" + ], + "properties": [ { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "api_fieldname": "phone_number", - "entity_fieldname": "phone_number", - "_key": "phone_number" + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { "type": "array", - "x-nullable": true, - "description": "List of policies if requested.", + "description": "A list of entities.", "items": { "type": "object", "properties": [ { "type": "string", - "example": "GET", - "description": "Comma-separated list of actions, empty string represents all actions.", - "api_fieldname": "action", - "entity_fieldname": "action", - "_key": "action" - }, - { - "type": "boolean", - "example": true, - "description": "True or false controlling whether an action is allowed or not.", - "api_fieldname": "allow", - "entity_fieldname": "allow", - "_key": "allow" - }, - { - "type": "string", - "example": "update-campaigns", - "description": "Feature name corresponding to this policy.", - "api_fieldname": "feature", - "entity_fieldname": "feature", - "_key": "feature" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "description": "Entity name: always 'branding_image'", "readOnly": true, - "api_fieldname": "inherited", - "entity_fieldname": "inherited", - "_key": "inherited" + "enum": [ + "branding_image" + ], + "_key": "object" }, { + "enum": [ + "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", - "example": "016ada3ec2d46665bf66e32e00000000", - "description": "An ID indicating where this policy is inherited from.", - "pattern": "[a-f0-9]{32}", - "readOnly": true, - "api_fieldname": "inherited_from", - "entity_fieldname": "inherited_from", - "_key": "inherited_from" + "description": "Name of the image.", + "is_primary_key": true, + "_override": true, + "_key": "reference" }, { "type": "string", - "example": "account", - "description": "Indicates the type of entity this policy is inherited from.", + "format": "uri", + "example": "https://static.mbed.com/123456789.jpg", + "description": "The static link to the image.", "readOnly": true, - "enum": [ - "account", - "template", - "tier_template" - ], - "api_fieldname": "inherited_type", - "entity_fieldname": "inherited_type", - "_key": "inherited_type" + "_key": "static_uri" }, { "type": "string", - "example": "/v3/update-campaign", - "description": "Resource that is protected by this policy.", - "api_fieldname": "resource", - "entity_fieldname": "resource", - "_key": "resource" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "_key": "updated_at" } ], - "description": "Represents a feature policy. Either the feature or the resource must be specified.", "foreign_key": { - "group": "Accounts", - "entity": "policy" + "group": "Branding", + "entity": "dark_theme_image" } }, - "api_fieldname": "policies", - "entity_fieldname": "policies", - "_key": "policies" + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "api_fieldname": "postal_code", - "entity_fieldname": "postal_code", - "_key": "postal_code" + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" }, { - "type": "string", - "x-nullable": true, - "example": "Subscription paid.", - "description": "A note with the reason for account status update.", - "api_fieldname": "reason", - "entity_fieldname": "reason", - "_key": "reason" + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return, or equal to `total_count`.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "x-nullable": true, - "example": "ARM-INT-0001", - "description": "A reference note for updating the status of the account.", - "api_fieldname": "reference_note", - "entity_fieldname": "reference_note", - "_key": "reference_note" + "description": "Entity name: always `list`.", + "enum": [ + "list" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" }, { - "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "api_fieldname": "sales_contact", - "entity_fieldname": "sales_contact", - "_key": "sales_contact" + "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "api_fieldname": "state", - "entity_fieldname": "state", - "_key": "state" - }, + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" + } + ], + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_image" + } + }, + "_key": "200" + }, + { + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ { - "type": "string", - "example": "ACTIVE", - "description": "The status of the account.", - "enum": [ - "ENROLLING", - "ACTIVE", - "RESTRICTED", - "SUSPENDED" - ], - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { "type": "array", - "x-nullable": true, - "description": "List of sub accounts. Not available for developer users.", + "description": "Request fields which failed validation.", "items": { "type": "object", "required": [ - "end_market", - "etag", - "id", - "object", - "status", - "tier" + "name", + "message" ], "properties": [ { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "_key": "address_line2" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_password" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "array", - "description": "Business model history for this account.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ] - }, - "_key": "business_model_history" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "_key": "city" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "_key": "company" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "_key": "contact" - }, - { - "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "_key": "contract_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "_key": "country" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" - }, - "_key": "custom_fields" - }, - { - "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "_key": "customer_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "_key": "display_name" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "_key": "email" - }, - { - "type": "string", - "example": "IT", - "description": "Account end market.", - "_key": "end_market" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "x-nullable": true, - "format": "date-time", - "description": "Expiration time of the account, as UTC time RFC3339.", - "_key": "expiration" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "_key": "expiration_warning_threshold" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "_key": "id" - }, + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ { - "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "_key": "idle_timeout" + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" }, { - "type": "array", - "description": "List of account limitation objects.", - "items": { - "type": "object", - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Billing period of the account limitation.", - "_key": "billing_period" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "string", - "description": "Description of the account limitation.", - "readOnly": true, - "_key": "description" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "_key": "id" - }, - { - "type": "boolean", - "description": "Flag indicating whether this limitation is inherited.", - "readOnly": true, - "_key": "inherited" - }, - { - "type": "string", - "description": "Indicates where this limit is inherited from.", - "readOnly": true, - "_key": "inherited_from" - }, - { - "type": "string", - "description": "Indicates the type of the entity where the limitation is inherited from.", - "readOnly": true, - "_key": "inherited_type" - }, - { - "type": "integer", - "format": "int32", - "description": "The value of the limit.", - "_key": "limit" - }, - { - "type": "string", - "description": "Name of the account limitation.", - "_key": "name" - }, - { - "type": "string", - "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" - ], - "_key": "object" - }, - { - "type": "integer", - "format": "int32", - "description": "Quota of the account limitation.", - "_key": "quota" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ], - "description": "This object represents an account limitation." - }, - "_key": "limitations" - }, + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + }, + { + "description": "Account not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ { - "type": "object", - "x-nullable": true, - "deprecated": true, - "x-deprecation": { - "issued_at": "2019-08-27T12:03:58+00:00", - "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." - }, - "description": "List of limits as key-value pairs if requested.", - "additionalProperties": { - "type": "string" - }, - "_key": "limits" + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "_key": "mfa_status" - }, + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "404" + } + ], + "path": "/v3/accounts/{account_id}/branding-images/dark", + "summary": "Get metadata of all dark theme images.", + "return_type": "paginated_response(subtenant_dark_theme_image)", + "return_info": { + "self": false, + "custom": false, + "type": "subtenant_dark_theme_image" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "sub_accounts", + "limit", + "after", + "order", + "total_count", + "has_more", + "data" + ], + "group_id": "Accounts", + "parameter_map": { + "account_id": "id" + }, + "operation_id": "getAllAccountDarkImageData", + "notes": "This lists the dark theme banding images of the subtenant account.", + "foreign_key": { + "entity": "subtenant_dark_theme_image" + }, + "pagination": true, + "request_content_type": "application/json", + "request_body": "json", + "_key": "dark_theme_branding_images" + }, + { + "description": "Retrieve light theme branding colors for an account.\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}/branding-colors/light \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], + "fields": [ + { + "name": "account_id", + "in": "path", + "description": "The ID of the account.", + "required": true, + "type": "string", + "entity_fieldname": "id", + "api_fieldname": "account_id", + "external_param": false, + "parameter_fieldname": "account_id", + "_key": "id" + } + ], + "method": "get", + "mode": "light_theme_branding_colors", + "responses": [ + { + "description": "Successful operation.", + "schema": { + "type": "object", + "required": [ + "data", + "has_more", + "limit", + "object", + "total_count" + ], + "properties": [ + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" + }, + { + "type": "array", + "description": "A list of entities.", + "items": { + "type": "object", + "properties": [ { - "type": "array", + "type": "string", + "example": "#f3f93e", + "description": "The color given as name (purple) or as a hex code.", "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "_key": "notification_emails" + "_key": "color" }, { "type": "string", - "description": "Entity name: always `account`.", + "description": "Entity name: always 'branding_color'", + "readOnly": true, "enum": [ - "account" + "branding_color" ], "_key": "object" }, { - "type": "object", - "properties": [ - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "info@arm.com", - "description": "The email address of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "example": "J. Doe", - "description": "The name of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - } + "enum": [ + "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" ], - "description": "Represents parent account contact details in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "parent_account" - }, - "x-nullable": true, - "_key": "parent_account" - }, - { "type": "string", - "x-nullable": true, - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account, if any.", - "pattern": "[a-f0-9]{32}", - "_key": "parent_id" - }, - { - "type": "object", - "required": [ - "minimum_length" - ], - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "_key": "password_policy" + "description": "Color name.", + "is_primary_key": true, + "_override": true, + "_key": "reference" }, { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "_key": "password_recovery_expiration" - }, + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "_key": "updated_at" + } + ], + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_color" + } + }, + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return, or equal to `total_count`.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" + }, + { + "type": "string", + "description": "Entity name: always `list`.", + "enum": [ + "list" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" + }, + { + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" + } + ], + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_color" + } + }, + "_key": "200" + }, + { + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "_key": "phone_number" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of policies if requested.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "GET", - "description": "Comma-separated list of actions, empty string represents all actions.", - "api_fieldname": "action", - "entity_fieldname": "action", - "_key": "action" - }, - { - "type": "boolean", - "example": true, - "description": "True or false controlling whether an action is allowed or not.", - "api_fieldname": "allow", - "entity_fieldname": "allow", - "_key": "allow" - }, - { - "type": "string", - "example": "update-campaigns", - "description": "Feature name corresponding to this policy.", - "api_fieldname": "feature", - "entity_fieldname": "feature", - "_key": "feature" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether this feature is inherited or overwritten specifically.", - "readOnly": true, - "api_fieldname": "inherited", - "entity_fieldname": "inherited", - "_key": "inherited" - }, - { - "type": "string", - "example": "016ada3ec2d46665bf66e32e00000000", - "description": "An ID indicating where this policy is inherited from.", - "pattern": "[a-f0-9]{32}", - "readOnly": true, - "api_fieldname": "inherited_from", - "entity_fieldname": "inherited_from", - "_key": "inherited_from" - }, - { - "type": "string", - "example": "account", - "description": "Indicates the type of entity this policy is inherited from.", - "readOnly": true, - "enum": [ - "account", - "template", - "tier_template" - ], - "api_fieldname": "inherited_type", - "entity_fieldname": "inherited_type", - "_key": "inherited_type" - }, - { - "type": "string", - "example": "/v3/update-campaign", - "description": "Resource that is protected by this policy.", - "api_fieldname": "resource", - "entity_fieldname": "resource", - "_key": "resource" - } - ], - "description": "Represents a feature policy. Either the feature or the resource must be specified.", - "foreign_key": { - "group": "Accounts", - "entity": "policy" - } - }, - "_key": "policies" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "_key": "postal_code" - }, + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ { "type": "string", - "x-nullable": true, - "example": "Subscription paid.", - "description": "A note with the reason for account status update.", - "_key": "reason" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "x-nullable": true, - "example": "ARM-INT-0001", - "description": "A reference note for updating the status of the account.", - "_key": "reference_note" - }, + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + }, + { + "description": "Account not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ { - "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "_key": "sales_contact" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "_key": "state" - }, + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "404" + } + ], + "path": "/v3/accounts/{account_id}/branding-colors/light", + "summary": "Get light theme branding colors.", + "return_type": "paginated_response(subtenant_light_theme_color)", + "return_info": { + "self": false, + "custom": false, + "type": "subtenant_light_theme_color" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "sub_accounts", + "limit", + "after", + "order", + "total_count", + "has_more", + "data" + ], + "group_id": "Accounts", + "parameter_map": { + "account_id": "id" + }, + "operation_id": "getAccountLightColors", + "notes": "This lists the light theme banding colors of the subtenant account.", + "foreign_key": { + "entity": "subtenant_light_theme_color" + }, + "pagination": true, + "request_content_type": "application/json", + "request_body": "json", + "_key": "light_theme_branding_colors" + }, + { + "description": "Retrieve the metadata of all light theme branding images.\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}/branding-images/light \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], + "fields": [ + { + "name": "account_id", + "in": "path", + "description": "The ID of the account.", + "required": true, + "type": "string", + "entity_fieldname": "id", + "api_fieldname": "account_id", + "external_param": false, + "parameter_fieldname": "account_id", + "_key": "id" + } + ], + "method": "get", + "mode": "light_theme_branding_images", + "responses": [ + { + "description": "Successful operation.", + "schema": { + "type": "object", + "required": [ + "data", + "has_more", + "limit", + "object", + "total_count" + ], + "properties": [ + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" + }, + { + "type": "array", + "description": "A list of entities.", + "items": { + "type": "object", + "properties": [ { "type": "string", - "example": "ACTIVE", - "description": "The status of the account.", + "description": "Entity name: always 'branding_image'", + "readOnly": true, "enum": [ - "ENROLLING", - "ACTIVE", - "RESTRICTED", - "SUSPENDED" + "branding_image" ], - "_key": "status" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of sub accounts. Not available for developer users.", - "items": [], - "_key": "sub_accounts" + "_key": "object" }, { + "enum": [ + "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", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "_key": "template_id" + "description": "Name of the image.", + "is_primary_key": true, + "_override": true, + "_key": "reference" }, { "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "_key": "tier" + "format": "uri", + "example": "https://static.mbed.com/123456789.jpg", + "description": "The static link to the image.", + "readOnly": true, + "_key": "static_uri" }, { "type": "string", "format": "date-time", "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", + "description": "Last update time in UTC.", + "readOnly": true, "_key": "updated_at" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "_key": "upgraded_at" } ], - "description": "Represents an account in requests and responses." + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_image" + } }, - "api_fieldname": "sub_accounts", - "entity_fieldname": "sub_accounts", - "_key": "sub_accounts" + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "template_id", - "entity_fieldname": "template_id", - "_key": "template_id" + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return, or equal to `total_count`.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "api_fieldname": "tier", - "entity_fieldname": "tier", - "_key": "tier" + "description": "Entity name: always `list`.", + "enum": [ + "list" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" }, { "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "api_fieldname": "upgraded_at", - "entity_fieldname": "upgraded_at", - "_key": "upgraded_at" + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } ], - "description": "Represents an account in requests and responses." + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_image" + } }, "_key": "200" }, @@ -10247,7 +5906,7 @@ "_key": "403" }, { - "description": "Account with the given ID not found.", + "description": "Account not found.", "schema": { "type": "object", "required": [ @@ -10320,13 +5979,13 @@ "_key": "404" } ], - "path": "/v3/accounts/{account_id}", - "summary": "Get account info.", - "return_type": "account", + "path": "/v3/accounts/{account_id}/branding-images/light", + "summary": "Get metadata of all light theme images.", + "return_type": "paginated_response(subtenant_light_theme_image)", "return_info": { - "self": true, + "self": false, "custom": false, - "type": "account" + "type": "subtenant_light_theme_image" }, "x_filter": {}, "x_deprecation": null, @@ -10336,70 +5995,35 @@ "type", "filter", "sub_accounts", - "created_at", - "updated_at", - "parent_id", - "display_name", - "company", - "country", - "address_line1", - "address_line2", - "city", - "state", - "postal_code", - "contact", - "email", - "phone_number", - "aliases", - "tier", - "status", - "upgraded_at", - "limits", - "policies", - "template_id", - "reason", - "end_market", - "idle_timeout", - "password_policy", - "reference_note", - "custom_fields", - "mfa_status", - "notification_emails", - "sales_contact", - "expiration_warning_threshold", - "contract_number", - "customer_number", - "parent_account", - "expiration", - "admin_id", - "admin_name", - "admin_email", - "admin_key", - "admin_password", - "admin_full_name", - "limitations", - "password_recovery_expiration", - "business_model", - "business_model_history" + "limit", + "after", + "order", + "total_count", + "has_more", + "data" ], "group_id": "Accounts", "parameter_map": { "account_id": "id" }, - "operation_id": "getAccountInfo", - "pagination": false, + "operation_id": "getAllAccountLightImageData", + "notes": "This lists the light theme banding images of the subtenant account.", + "foreign_key": { + "entity": "subtenant_light_theme_image" + }, + "pagination": true, "request_content_type": "application/json", "request_body": "json", - "_key": "read" + "_key": "light_theme_branding_images" }, { - "description": "Retrieve trusted certificates in an array.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of tenant accounts, optionally filtered by status and tier level.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -10411,21 +6035,21 @@ "_key": "after" }, { - "name": "account_id", - "in": "path", - "description": "Account ID.", - "required": true, + "name": "format", + "in": "query", + "description": "Format information for the query response. Supported: format=breakdown.", + "required": false, "type": "string", - "entity_fieldname": "id", - "api_fieldname": "account_id", - "external_param": false, - "parameter_fieldname": "account_id", - "_key": "id" + "entity_fieldname": "format", + "api_fieldname": "format", + "external_param": true, + "parameter_fieldname": "format", + "_key": "format" }, { "name": "include", "in": "query", - "description": "Comma-separated additional data to return. Currently supported: total_count.", + "description": "Comma-separated additional data to return. Currently supported: limits, policies, sub_accounts, history.", "required": false, "type": "string", "entity_fieldname": "include", @@ -10438,20 +6062,20 @@ "type": "integer", "format": "int32", "example": 50, - "description": "The number of results to return (2-1000). Default 50.", + "description": "The number of results to return (2-1000). Default 1000.", "api_fieldname": "limit", "entity_fieldname": "limit", "name": "limit", "in": "query", "required": false, - "default": 50, + "default": 1000, "external_param": true, "parameter_fieldname": "limit", "_key": "limit" }, { "type": "string", - "description": "Record order based on creation time. Acceptable values: ASC, DESC. Default: ASC.", + "description": "Record order. Acceptable values: ASC, DESC. Default: ASC.", "enum": [ "ASC", "DESC" @@ -10466,10 +6090,22 @@ "parameter_fieldname": "order", "enum_reference": "account_order_enum", "_key": "order" + }, + { + "name": "properties", + "in": "query", + "description": "Property name returned from account-specific properties.", + "required": false, + "type": "string", + "entity_fieldname": "properties", + "api_fieldname": "properties", + "external_param": true, + "parameter_fieldname": "properties", + "_key": "properties" } ], "method": "get", - "mode": "trusted_certificates", + "mode": "list", "responses": [ { "description": "Successful operation.", @@ -10486,15 +6122,10 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", - "name": "after", - "in": "query", - "required": false, - "external_param": true, - "parameter_fieldname": "after", "_key": "after" }, { @@ -10503,132 +6134,1242 @@ "items": { "type": "object", "required": [ - "account_id", - "certificate", - "certificate_fingerprint", + "end_market", "etag", "id", - "issuer", - "name", "object", - "service", - "subject", - "validity" + "status", + "tier" ], "properties": [ { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account.", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "_key": "country" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "_key": "display_name" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", + "_key": "email" + }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "_key": "end_market" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "x-nullable": true, + "format": "date-time", + "description": "Expiration time of the account, as UTC time RFC3339.", + "_key": "expiration" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "_key": "expiration_warning_threshold" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "_key": "idle_timeout" + }, + { + "type": "array", + "description": "List of account limitation objects.", + "items": { + "type": "object", + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", + "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "This object represents an account limitation." + }, + "_key": "limitations" + }, + { + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "_key": "limits" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", + "enum": [ + "enforced", + "optional" + ], + "_key": "mfa_status" + }, + { + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "_key": "notification_emails" + }, + { + "type": "string", + "description": "Entity name: always `account`.", + "enum": [ + "account" + ], + "_key": "object" + }, + { + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + } + ], + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" + }, + "x-nullable": true, + "_key": "parent_account" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", "pattern": "[a-f0-9]{32}", - "_key": "account_id" + "_key": "parent_id" }, { - "type": "string", - "example": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----", - "description": "X509.v3 trusted certificate in PEM format.", - "_key": "certificate" + "type": "object", + "required": [ + "minimum_length" + ], + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" + }, + "description": "The password policy for this account.", + "x-nullable": true, + "_key": "password_policy" }, { - "type": "string", - "example": "a10fb2c8ba90e6de927bd0ae391dcc38f6115685de2d7024712af37ead0608f1", - "description": "A SHA-256 fingerprint of the certificate.", - "_key": "certificate_fingerprint" + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "_key": "password_recovery_expiration" }, { "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "_key": "phone_number" }, { - "type": "string", - "maxLength": 500, + "type": "array", "x-nullable": true, - "example": "Certificate created by me.", - "description": "Human readable description of this certificate.", - "_key": "description" + "description": "List of policies if requested.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" + }, + { + "type": "string", + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" + }, + { + "type": "string", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", + "readOnly": true, + "enum": [ + "account", + "template", + "tier_template" + ], + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" + } + ], + "description": "Represents a feature policy. Either the feature or the resource must be specified.", + "foreign_key": { + "group": "Accounts", + "entity": "policy" + } + }, + "_key": "policies" }, { - "type": "integer", - "format": "int32", - "example": 1, - "description": "Device execution mode where 1 means a developer certificate.", - "_key": "device_execution_mode" + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "_key": "postal_code" }, { - "type": "boolean", - "example": false, - "description": "If true, signature is not required. Default value false.", - "_key": "enrollment_mode" + "type": "string", + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "_key": "reason" }, { "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "_key": "reference_note" }, { + "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "pattern": "[a-f0-9]{32}", - "_key": "id" + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "_key": "sales_contact" }, { "type": "string", - "example": "CN=issuer", - "description": "Issuer of the certificate.", - "_key": "issuer" + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "_key": "state" }, { "type": "string", - "maxLength": 100, - "example": "My certificate", - "description": "Certificate name.", - "_key": "name" + "example": "ACTIVE", + "description": "The status of the account.", + "enum": [ + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" + ], + "_key": "status" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of sub accounts. Not available for developer users.", + "items": { + "type": "object", + "required": [ + "end_market", + "etag", + "id", + "object", + "status", + "tier" + ], + "properties": [ + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "_key": "country" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "_key": "display_name" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", + "_key": "email" + }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "_key": "end_market" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "x-nullable": true, + "format": "date-time", + "description": "Expiration time of the account, as UTC time RFC3339.", + "_key": "expiration" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "_key": "expiration_warning_threshold" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "_key": "idle_timeout" + }, + { + "type": "array", + "description": "List of account limitation objects.", + "items": { + "type": "object", + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", + "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "This object represents an account limitation." + }, + "_key": "limitations" + }, + { + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "_key": "limits" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", + "enum": [ + "enforced", + "optional" + ], + "_key": "mfa_status" + }, + { + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "_key": "notification_emails" + }, + { + "type": "string", + "description": "Entity name: always `account`.", + "enum": [ + "account" + ], + "_key": "object" + }, + { + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + } + ], + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" + }, + "x-nullable": true, + "_key": "parent_account" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", + "pattern": "[a-f0-9]{32}", + "_key": "parent_id" + }, + { + "type": "object", + "required": [ + "minimum_length" + ], + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" + }, + "description": "The password policy for this account.", + "x-nullable": true, + "_key": "password_policy" + }, + { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "_key": "password_recovery_expiration" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "_key": "phone_number" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of policies if requested.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" + }, + { + "type": "string", + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" + }, + { + "type": "string", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", + "readOnly": true, + "enum": [ + "account", + "template", + "tier_template" + ], + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" + } + ], + "description": "Represents a feature policy. Either the feature or the resource must be specified.", + "foreign_key": { + "group": "Accounts", + "entity": "policy" + } + }, + "_key": "policies" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "_key": "postal_code" + }, + { + "type": "string", + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "_key": "reason" + }, + { + "type": "string", + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "_key": "reference_note" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "_key": "sales_contact" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "_key": "state" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the account.", + "enum": [ + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" + ], + "_key": "status" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of sub accounts. Not available for developer users.", + "items": [], + "_key": "sub_accounts" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", + "pattern": "[a-f0-9]{32}", + "_key": "template_id" + }, + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "_key": "tier_history" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "_key": "upgraded_at" + } + ], + "description": "Represents an account in requests and responses." + }, + "_key": "sub_accounts" }, { "type": "string", - "description": "Entity name: always 'trusted-cert'", - "enum": [ - "trusted-cert" - ], - "_key": "object" - }, - { "x-nullable": true, - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the owner.", + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", "pattern": "[a-f0-9]{32}", - "_key": "owner_id" - }, - { - "type": "string", - "description": "Service name where the certificate is used.", - "enum": [ - "lwm2m", - "bootstrap" - ], - "_key": "service" + "_key": "template_id" }, { "type": "string", - "example": "ACTIVE", - "description": "Status of the certificate.", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "_key": "status" + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" }, { - "type": "string", - "example": "CN=subject", - "description": "Subject of the certificate.", - "_key": "subject" + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "_key": "tier_history" }, { "type": "string", @@ -10637,26 +7378,15 @@ "description": "Last update UTC time RFC3339.", "_key": "updated_at" }, - { - "type": "boolean", - "example": true, - "description": "This read-only flag indicates whether the certificate is valid or not.", - "readOnly": true, - "_key": "valid" - }, { "type": "string", "format": "date-time", - "example": "2038-02-14T15:24:14Z", - "description": "Expiration time in UTC formatted as RFC3339.", - "_key": "validity" + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "_key": "upgraded_at" } ], - "description": "Represents a trusted certificate in responses.", - "foreign_key": { - "group": "Security", - "entity": "trusted_certificate" - } + "description": "Represents an account in requests and responses." }, "api_fieldname": "data", "entity_fieldname": "data", @@ -10674,15 +7404,9 @@ "type": "integer", "format": "int32", "example": 50, - "description": "The number of results to return (2-1000). Default 50.", + "description": "The number of results to return (2-1000), or equal to `total_count`.", "api_fieldname": "limit", "entity_fieldname": "limit", - "name": "limit", - "in": "query", - "required": false, - "default": 50, - "external_param": true, - "parameter_fieldname": "limit", "_key": "limit" }, { @@ -10697,20 +7421,13 @@ }, { "type": "string", - "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" ], "api_fieldname": "order", "entity_fieldname": "order", - "name": "order", - "in": "query", - "required": false, - "default": "ASC", - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "trusted_certificate_order_enum", "_key": "order" }, { @@ -10725,8 +7442,8 @@ ], "pagination": true, "foreign_key": { - "group": "Security", - "entity": "trusted_certificate" + "group": "Accounts", + "entity": "account" } }, "_key": "200" @@ -10805,7 +7522,7 @@ "_key": "401" }, { - "description": "Forbidden, only available for admins of commercial accounts.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -10876,120 +7593,33 @@ ] }, "_key": "403" - }, - { - "description": "An account with the given ID does not exist.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/accounts/{account_id}/trusted-certificates", - "summary": "Get all trusted certificates.", - "return_type": "paginated_response(subtenant_trusted_certificate)", + } + ], + "path": "/v3/accounts", + "summary": "Get all accounts.", + "return_type": "paginated_response(account)", "return_info": { - "self": false, + "self": true, "custom": false, - "type": "subtenant_trusted_certificate" + "type": "account" }, "x_filter": { - "name": [ - "eq" - ], - "service": [ - "eq" - ], - "expire": [ - "eq" - ], - "device_execution_mode": [ + "status": [ "eq", - "neq" + "in", + "nin" ], - "owner": [ + "tier": [ "eq" ], - "enrollment_mode": [ + "parent": [ "eq" ], - "status": [ + "end_market": [ "eq" ], - "issuer": [ - "like" - ], - "subject": [ + "country": [ "like" - ], - "valid": [ - "eq" ] }, "x_deprecation": null, @@ -11002,387 +7632,60 @@ "total_count", "has_more", "data", - "name__eq", - "service__eq", - "expire__eq", - "device_execution_mode__eq", - "device_execution_mode__neq", - "owner__eq", - "enrollment_mode__eq", "status__eq", - "issuer__like", - "subject__like", - "valid__eq" + "status__in", + "status__nin", + "tier__eq", + "parent__eq", + "end_market__eq", + "country__like" ], + "foreign_key_priority": "self", "group_id": "Accounts", "parameter_map": { "account_id": "id" }, - "operation_id": "getAllAccountCertificates", - "notes": "This lists the trusted certificates of the subtenant account.", + "operation_id": "getAllAccounts", + "pagination": true, "foreign_key": { - "entity": "subtenant_trusted_certificate" + "group": "Accounts", + "entity": "account" }, - "pagination": true, "request_content_type": "application/json", "request_body": "json", - "_key": "trusted_certificates" + "_key": "list" }, { - "description": "Update an account.\n\n**Example:**\n\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"phone_number\": \"12345678\"}'\n```", + "description": "Retrieve information about the account.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/me?include=policies \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "api_fieldname": "address_line1", - "entity_fieldname": "address_line1", - "parameter_fieldname": "address_line1", - "in": "body", - "required": false, - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "api_fieldname": "address_line2", - "entity_fieldname": "address_line2", - "parameter_fieldname": "address_line2", - "in": "body", - "required": false, - "_key": "address_line2" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "api_fieldname": "aliases", - "entity_fieldname": "aliases", - "parameter_fieldname": "aliases", - "in": "body", - "required": false, - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "api_fieldname": "business_model", - "entity_fieldname": "business_model", - "parameter_fieldname": "business_model", - "in": "body", - "required": false, - "enum_reference": "account_business_model_enum", - "_key": "business_model" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "api_fieldname": "city", - "entity_fieldname": "city", - "parameter_fieldname": "city", - "in": "body", - "required": false, - "_key": "city" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "api_fieldname": "company", - "entity_fieldname": "company", - "parameter_fieldname": "company", - "in": "body", - "required": false, - "_key": "company" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "api_fieldname": "contact", - "entity_fieldname": "contact", - "parameter_fieldname": "contact", - "in": "body", - "required": false, - "_key": "contact" - }, - { - "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "api_fieldname": "contract_number", - "entity_fieldname": "contract_number", - "parameter_fieldname": "contract_number", - "in": "body", - "required": false, - "_key": "contract_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "api_fieldname": "country", - "entity_fieldname": "country", - "parameter_fieldname": "country", - "in": "body", - "required": false, - "_key": "country" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" - }, - "api_fieldname": "custom_fields", - "entity_fieldname": "custom_fields", - "parameter_fieldname": "custom_fields", - "in": "body", - "required": false, - "_key": "custom_fields" - }, - { - "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "api_fieldname": "customer_number", - "entity_fieldname": "customer_number", - "parameter_fieldname": "customer_number", - "in": "body", - "required": false, - "_key": "customer_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "api_fieldname": "display_name", - "entity_fieldname": "display_name", - "parameter_fieldname": "display_name", - "in": "body", - "required": false, - "_key": "display_name" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "api_fieldname": "email", - "entity_fieldname": "email", - "parameter_fieldname": "email", - "in": "body", - "required": false, - "_key": "email" - }, - { - "type": "string", - "example": "IT", - "description": "Account end market.", - "api_fieldname": "end_market", - "entity_fieldname": "end_market", - "parameter_fieldname": "end_market", - "in": "body", - "required": false, - "_key": "end_market" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "api_fieldname": "expiration_warning_threshold", - "entity_fieldname": "expiration_warning_threshold", - "parameter_fieldname": "expiration_warning_threshold", - "in": "body", - "required": false, - "_key": "expiration_warning_threshold" - }, - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "account_id", - "in": "path", - "required": true, - "_key": "id" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "api_fieldname": "idle_timeout", - "entity_fieldname": "idle_timeout", - "parameter_fieldname": "idle_timeout", - "in": "body", - "required": false, - "_key": "idle_timeout" - }, - { - "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "api_fieldname": "mfa_status", - "entity_fieldname": "mfa_status", - "parameter_fieldname": "mfa_status", - "in": "body", - "required": false, - "enum_reference": "account_mfa_status_enum", - "_key": "mfa_status" - }, - { - "type": "array", - "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "api_fieldname": "notification_emails", - "entity_fieldname": "notification_emails", - "parameter_fieldname": "notification_emails", - "in": "body", - "required": false, - "_key": "notification_emails" - }, - { - "type": "object", - "required": false, - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "api_fieldname": "password_policy", - "entity_fieldname": "password_policy", - "parameter_fieldname": "password_policy", - "in": "body", - "_key": "password_policy" - }, - { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "api_fieldname": "password_recovery_expiration", - "entity_fieldname": "password_recovery_expiration", - "parameter_fieldname": "password_recovery_expiration", - "in": "body", - "required": false, - "_key": "password_recovery_expiration" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "api_fieldname": "phone_number", - "entity_fieldname": "phone_number", - "parameter_fieldname": "phone_number", - "in": "body", + "name": "include", + "in": "query", + "description": "Comma-separated additional data to return. Currently supported: limits, policies, sub_accounts.", "required": false, - "_key": "phone_number" - }, - { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "api_fieldname": "postal_code", - "entity_fieldname": "postal_code", - "parameter_fieldname": "postal_code", - "in": "body", - "required": false, - "_key": "postal_code" + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "_key": "include" }, { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "api_fieldname": "sales_contact", - "entity_fieldname": "sales_contact", - "parameter_fieldname": "sales_contact", - "in": "body", + "name": "properties", + "in": "query", + "description": "Property name to return from account-specific properties.", "required": false, - "_key": "sales_contact" - }, - { "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "api_fieldname": "state", - "entity_fieldname": "state", - "parameter_fieldname": "state", - "in": "body", - "required": false, - "_key": "state" + "entity_fieldname": "properties", + "api_fieldname": "properties", + "external_param": true, + "parameter_fieldname": "properties", + "_key": "properties" } ], - "method": "put", - "mode": "update", + "method": "get", + "mode": "me", "responses": [ { "description": "Successful operation.", @@ -11417,69 +7720,10 @@ "entity_fieldname": "address_line2", "_key": "address_line2" }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_full_name", - "entity_fieldname": "admin_full_name", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "admin_id", - "entity_fieldname": "admin_id", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "api_fieldname": "admin_key", - "entity_fieldname": "admin_key", - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_password", - "entity_fieldname": "admin_password", - "_key": "admin_password" - }, { "type": "array", "maxItems": 10, - "description": "An array of aliases.", + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", "items": { "type": "string", "pattern": "[\\w\\-._]{8,100}" @@ -11546,7 +7790,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM Holdings Plc", - "description": "The name of the company.", + "description": "The name of the company used in billing.", "api_fieldname": "company", "entity_fieldname": "company", "_key": "company" @@ -11614,7 +7858,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM", - "description": "The display name for the account.", + "description": "The display name for the tenant account.", "api_fieldname": "display_name", "entity_fieldname": "display_name", "_key": "display_name" @@ -11799,13 +8043,12 @@ { "type": "object", "x-nullable": true, - "deprecated": true, "x-deprecation": { "issued_at": "2019-08-27T12:03:58+00:00", "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." + "comment": "Replaced by the limitations parameter." }, - "description": "List of limits as key-value pairs if requested.", + "description": "DEPRECATED: Replaced by the limitations parameter.", "additionalProperties": { "type": "string" }, @@ -12121,57 +8364,10 @@ "description": "Postal address line 2.", "_key": "address_line2" }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "_key": "admin_password" - }, { "type": "array", "maxItems": 10, - "description": "An array of aliases.", + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", "items": { "type": "string", "pattern": "[\\w\\-._]{8,100}" @@ -12230,7 +8426,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM Holdings Plc", - "description": "The name of the company.", + "description": "The name of the company used in billing.", "_key": "company" }, { @@ -12284,7 +8480,7 @@ "maxLength": 100, "x-nullable": true, "example": "ARM", - "description": "The display name for the account.", + "description": "The display name for the tenant account.", "_key": "display_name" }, { @@ -12451,13 +8647,12 @@ { "type": "object", "x-nullable": true, - "deprecated": true, "x-deprecation": { "issued_at": "2019-08-27T12:03:58+00:00", "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." + "comment": "Replaced by the limitations parameter." }, - "description": "List of limits as key-value pairs if requested.", + "description": "DEPRECATED: Replaced by the limitations parameter.", "additionalProperties": { "type": "string" }, @@ -12731,6 +8926,29 @@ "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", "_key": "tier" }, + { + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "_key": "tier_history" + }, { "type": "string", "format": "date-time", @@ -12770,6 +8988,31 @@ "entity_fieldname": "tier", "_key": "tier" }, + { + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "api_fieldname": "tier_history", + "entity_fieldname": "tier_history", + "_key": "tier_history" + }, { "type": "string", "format": "date-time", @@ -12794,7 +9037,7 @@ "_key": "200" }, { - "description": "Error in input data format.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -12864,10 +9107,10 @@ } ] }, - "_key": "400" + "_key": "401" }, { - "description": "Authentication failure.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -12917,342 +9160,906 @@ }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + } + ], + "path": "/v3/accounts/me", + "summary": "Get account information.", + "return_type": "account", + "return_info": { + "self": true, + "custom": false, + "type": "account" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "sub_accounts", + "id", + "created_at", + "updated_at", + "parent_id", + "display_name", + "company", + "country", + "address_line1", + "address_line2", + "city", + "state", + "postal_code", + "contact", + "email", + "phone_number", + "aliases", + "tier", + "status", + "upgraded_at", + "limits", + "policies", + "template_id", + "reason", + "end_market", + "idle_timeout", + "password_policy", + "reference_note", + "custom_fields", + "mfa_status", + "notification_emails", + "sales_contact", + "expiration_warning_threshold", + "contract_number", + "customer_number", + "parent_account", + "expiration", + "limitations", + "password_recovery_expiration", + "business_model", + "business_model_history", + "tier_history" + ], + "group_id": "Accounts", + "parameter_map": { + "account_id": "id" + }, + "operation_id": "getMyAccountInfo", + "notes": "This is provided by the SDK to avoid listing to retrieve the user's own Account.", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "me" + }, + { + "description": "Retrieve detailed information about an account.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], + "fields": [ + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "account_id", + "in": "path", + "required": true, + "_key": "id" + }, + { + "name": "include", + "in": "query", + "description": "Comma-separated additional data to return. Currently supported: limits, policies, sub_accounts, history.", + "required": false, + "type": "string", + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "_key": "include" + }, + { + "name": "properties", + "in": "query", + "description": "Property name to return from account-specific properties.", + "required": false, + "type": "string", + "entity_fieldname": "properties", + "api_fieldname": "properties", + "external_param": true, + "parameter_fieldname": "properties", + "_key": "properties" + } + ], + "method": "get", + "mode": "read", + "responses": [ + { + "description": "Successful operation.", + "schema": { + "type": "object", + "required": [ + "end_market", + "etag", + "id", + "object", + "status", + "tier" + ], + "properties": [ + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "api_fieldname": "address_line1", + "entity_fieldname": "address_line1", + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "api_fieldname": "address_line2", + "entity_fieldname": "address_line2", + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "api_fieldname": "aliases", + "entity_fieldname": "aliases", + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "api_fieldname": "business_model", + "entity_fieldname": "business_model", + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "api_fieldname": "business_model_history", + "entity_fieldname": "business_model_history", + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "api_fieldname": "city", + "entity_fieldname": "city", + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "api_fieldname": "company", + "entity_fieldname": "company", + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "api_fieldname": "contact", + "entity_fieldname": "contact", + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "api_fieldname": "contract_number", + "entity_fieldname": "contract_number", + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "api_fieldname": "country", + "entity_fieldname": "country", + "_key": "country" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "api_fieldname": "custom_fields", + "entity_fieldname": "custom_fields", + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "api_fieldname": "customer_number", + "entity_fieldname": "customer_number", + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "api_fieldname": "display_name", + "entity_fieldname": "display_name", + "_key": "display_name" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", + "api_fieldname": "email", + "entity_fieldname": "email", + "_key": "email" + }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "api_fieldname": "end_market", + "entity_fieldname": "end_market", + "_key": "end_market" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "x-nullable": true, + "format": "date-time", + "description": "Expiration time of the account, as UTC time RFC3339.", + "api_fieldname": "expiration", + "entity_fieldname": "expiration", + "_key": "expiration" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "api_fieldname": "expiration_warning_threshold", + "entity_fieldname": "expiration_warning_threshold", + "_key": "expiration_warning_threshold" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, { "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "api_fieldname": "idle_timeout", + "entity_fieldname": "idle_timeout", + "_key": "idle_timeout" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "List of account limitation objects.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" }, { "type": "string", - "description": "Name of the field which caused the error.", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" } - ] + ], + "description": "This object represents an account limitation." }, - "_key": "fields" + "api_fieldname": "limitations", + "entity_fieldname": "limitations", + "_key": "limitations" }, { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "api_fieldname": "limits", + "entity_fieldname": "limits", + "_key": "limits" }, { "type": "string", - "description": "Entity name, always `error`.", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", "enum": [ - "error" + "enforced", + "optional" ], - "_key": "object" + "api_fieldname": "mfa_status", + "entity_fieldname": "mfa_status", + "_key": "mfa_status" }, { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "api_fieldname": "notification_emails", + "entity_fieldname": "notification_emails", + "_key": "notification_emails" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "Account with the given ID not found.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "description": "Entity name: always `account`.", + "enum": [ + "account" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" }, { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + } + ], + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" }, - "_key": "fields" + "x-nullable": true, + "api_fieldname": "parent_account", + "entity_fieldname": "parent_account", + "_key": "parent_account" }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "parent_id", + "entity_fieldname": "parent_id", + "_key": "parent_id" }, { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" + "type": "object", + "required": [ + "minimum_length" ], - "_key": "object" + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" + }, + "description": "The password policy for this account.", + "x-nullable": true, + "api_fieldname": "password_policy", + "entity_fieldname": "password_policy", + "_key": "password_policy" }, { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "api_fieldname": "password_recovery_expiration", + "entity_fieldname": "password_recovery_expiration", + "_key": "password_recovery_expiration" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/accounts/{account_id}", - "summary": "Update attributes of an existing account.", - "return_type": "account", - "return_info": { - "self": true, - "custom": false, - "type": "account" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "created_at", - "updated_at", - "parent_id", - "tier", - "status", - "upgraded_at", - "limits", - "policies", - "template_id", - "reason", - "reference_note", - "parent_account", - "expiration", - "admin_id", - "admin_name", - "admin_email", - "admin_key", - "admin_password", - "admin_full_name", - "limitations", - "business_model_history" - ], - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "updateAccount", - "additional_operations": [ - { - "operation_id": "updateMyAccount", - "notes": "After retrieving the resource using the `me` method, it can modified using using this SDK method." - } - ], - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "update" - }, - { - "description": "Retrieve details of all active user invitations sent for new or existing users.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "name": "after", - "in": "query", - "required": false, - "external_param": true, - "parameter_fieldname": "after", - "_key": "after" - }, - { - "name": "account_id", - "in": "path", - "description": "Account ID.", - "required": true, - "type": "string", - "entity_fieldname": "id", - "api_fieldname": "account_id", - "external_param": false, - "parameter_fieldname": "account_id", - "_key": "id" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return (2-1000). Default 50.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "name": "limit", - "in": "query", - "required": false, - "default": 50, - "external_param": true, - "parameter_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Record order based on creation time. Acceptable values: ASC, DESC. Default: ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "name": "order", - "in": "query", - "required": false, - "default": "ASC", - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "account_order_enum", - "_key": "order" - } - ], - "method": "get", - "mode": "user_invitations", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], - "properties": [ + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "api_fieldname": "phone_number", + "entity_fieldname": "phone_number", + "_key": "phone_number" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of policies if requested.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" + }, + { + "type": "string", + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" + }, + { + "type": "string", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", + "readOnly": true, + "enum": [ + "account", + "template", + "tier_template" + ], + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" + } + ], + "description": "Represents a feature policy. Either the feature or the resource must be specified.", + "foreign_key": { + "group": "Accounts", + "entity": "policy" + } + }, + "api_fieldname": "policies", + "entity_fieldname": "policies", + "_key": "policies" + }, { "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "name": "after", - "in": "query", - "required": false, - "external_param": true, - "parameter_fieldname": "after", - "_key": "after" + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "api_fieldname": "postal_code", + "entity_fieldname": "postal_code", + "_key": "postal_code" + }, + { + "type": "string", + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "api_fieldname": "reason", + "entity_fieldname": "reason", + "_key": "reason" + }, + { + "type": "string", + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "api_fieldname": "reference_note", + "entity_fieldname": "reference_note", + "_key": "reference_note" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "api_fieldname": "sales_contact", + "entity_fieldname": "sales_contact", + "_key": "sales_contact" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "api_fieldname": "state", + "entity_fieldname": "state", + "_key": "state" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the account.", + "enum": [ + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" + ], + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" }, { "type": "array", - "description": "A list of entities.", + "x-nullable": true, + "description": "List of sub accounts. Not available for developer users.", "items": { "type": "object", "required": [ - "account_id", - "email", + "end_market", "etag", "id", "object", - "user_id" + "status", + "tier" ], "properties": [ { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account the user is invited to.", - "pattern": "[a-f0-9]{32}", - "_key": "account_id" + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "_key": "country" }, { "type": "string", @@ -13261,13 +10068,44 @@ "description": "Creation UTC time RFC3339.", "_key": "created_at" }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "_key": "display_name" + }, { "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", - "example": "friend@arm.com", - "description": "Email address of the invited user.", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", "_key": "email" }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "_key": "end_market" + }, { "type": "string", "example": "1", @@ -13276,84 +10114,449 @@ }, { "type": "string", + "x-nullable": true, "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Invitation expiration as UTC time RFC3339.", + "description": "Expiration time of the account, as UTC time RFC3339.", "_key": "expiration" }, { - "type": "array", - "description": "A list of IDs of the groups the user is invited to.", - "items": { - "type": "string" + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "_key": "expiration_warning_threshold" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "_key": "idle_timeout" + }, + { + "type": "array", + "description": "List of account limitation objects.", + "items": { + "type": "object", + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", + "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "This object represents an account limitation." + }, + "_key": "limitations" + }, + { + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "_key": "limits" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", + "enum": [ + "enforced", + "optional" + ], + "_key": "mfa_status" + }, + { + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "_key": "notification_emails" + }, + { + "type": "string", + "description": "Entity name: always `account`.", + "enum": [ + "account" + ], + "_key": "object" + }, + { + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + } + ], + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" + }, + "x-nullable": true, + "_key": "parent_account" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", + "pattern": "[a-f0-9]{32}", + "_key": "parent_id" + }, + { + "type": "object", + "required": [ + "minimum_length" + ], + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" }, - "_key": "groups" + "description": "The password policy for this account.", + "x-nullable": true, + "_key": "password_policy" + }, + { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "_key": "password_recovery_expiration" }, { "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the invitation.", - "pattern": "[a-f0-9]{32}", - "_key": "id" + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "_key": "phone_number" }, { "type": "array", - "description": "A list of login profiles for the user. Specified as the identity providers the user is associated with.", "x-nullable": true, + "description": "List of policies if requested.", "items": { "type": "object", - "required": [ - "id" - ], "properties": [ { "type": "string", - "description": "ID of the identity provider.", - "readOnly": false, - "_override": true, - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" }, { "type": "string", - "readOnly": false, - "description": "Name of the identity provider.", - "_override": true, - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" }, { "type": "string", - "description": "Identity provider type.", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", "readOnly": true, "enum": [ - "NATIVE", - "MBED", - "SAML2", - "OIDC" + "account", + "template", + "tier_template" ], - "api_fieldname": "type", - "entity_fieldname": "login_profile_type", - "_key": "type" + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" } ], - "description": "Represents a user login profile in Device Management.", + "description": "Represents a feature policy. Either the feature or the resource must be specified.", "foreign_key": { "group": "Accounts", - "entity": "login_profile" + "entity": "policy" } }, - "_key": "login_profiles" + "_key": "policies" }, { "type": "string", - "description": "Entity name: always 'user-invitation'", + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "_key": "postal_code" + }, + { + "type": "string", + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "_key": "reason" + }, + { + "type": "string", + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "_key": "reference_note" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "_key": "sales_contact" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "_key": "state" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the account.", "enum": [ - "user-invitation" + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" ], - "_key": "object" + "_key": "status" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of sub accounts. Not available for developer users.", + "items": [], + "_key": "sub_accounts" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", + "pattern": "[a-f0-9]{32}", + "_key": "template_id" + }, + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "_key": "tier_history" }, { "type": "string", @@ -13364,88 +10567,81 @@ }, { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the invited user.", - "pattern": "[a-f0-9]{32}", - "_key": "user_id" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "_key": "upgraded_at" } ], - "description": "Represents an user invitation in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "user_invitation" - } + "description": "Represents an account in requests and responses." }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" + "api_fieldname": "sub_accounts", + "entity_fieldname": "sub_accounts", + "_key": "sub_accounts" }, { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" + "type": "string", + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "template_id", + "entity_fieldname": "template_id", + "_key": "template_id" }, { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return (2-1000). Default 50.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "name": "limit", - "in": "query", - "required": false, - "default": 50, - "external_param": true, - "parameter_fieldname": "limit", - "_key": "limit" + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "api_fieldname": "tier", + "entity_fieldname": "tier", + "_key": "tier" }, { - "type": "string", - "description": "Entity name: always `list`.", - "enum": [ - "list" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "api_fieldname": "tier_history", + "entity_fieldname": "tier_history", + "_key": "tier_history" }, { "type": "string", - "description": "Record order based on creation time. Acceptable values: ASC, DESC. Default: ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "name": "order", - "in": "query", - "required": false, - "default": "ASC", - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "user_invitation_order_enum", - "_key": "order" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" }, { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "api_fieldname": "upgraded_at", + "entity_fieldname": "upgraded_at", + "_key": "upgraded_at" } ], - "pagination": true, - "foreign_key": { - "group": "Accounts", - "entity": "user_invitation" - } + "description": "Represents an account in requests and responses." }, "_key": "200" }, @@ -13596,7 +10792,7 @@ "_key": "403" }, { - "description": "An account with the specified ID does not exist.", + "description": "Account with the given ID not found.", "schema": { "type": "object", "required": [ @@ -13669,19 +10865,15 @@ "_key": "404" } ], - "path": "/v3/accounts/{account_id}/user-invitations", - "summary": "Get the details of all user invitations.", - "return_type": "paginated_response(subtenant_user_invitation)", + "path": "/v3/accounts/{account_id}", + "summary": "Get account information.", + "return_type": "account", "return_info": { - "self": false, + "self": true, "custom": false, - "type": "subtenant_user_invitation" - }, - "x_filter": { - "login_profiles": [ - "eq" - ] + "type": "account" }, + "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", @@ -13689,33 +10881,65 @@ "type", "filter", "sub_accounts", - "total_count", - "has_more", - "data", - "login_profiles__eq" + "created_at", + "updated_at", + "parent_id", + "display_name", + "company", + "country", + "address_line1", + "address_line2", + "city", + "state", + "postal_code", + "contact", + "email", + "phone_number", + "aliases", + "tier", + "status", + "upgraded_at", + "limits", + "policies", + "template_id", + "reason", + "end_market", + "idle_timeout", + "password_policy", + "reference_note", + "custom_fields", + "mfa_status", + "notification_emails", + "sales_contact", + "expiration_warning_threshold", + "contract_number", + "customer_number", + "parent_account", + "expiration", + "limitations", + "password_recovery_expiration", + "business_model", + "business_model_history", + "tier_history" ], "group_id": "Accounts", "parameter_map": { "account_id": "id" }, - "operation_id": "getAllAccountInvitations", - "notes": "This lists the user invitations of the subtenant account.", - "foreign_key": { - "entity": "subtenant_user_invitation" - }, - "pagination": true, + "operation_id": "getAccountInfo", + "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "user_invitations" + "_key": "read" }, { - "description": "Retrieve details of all users.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of trusted certificates.\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}/trusted-certificates \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -13767,7 +10991,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -13785,7 +11009,7 @@ } ], "method": "get", - "mode": "users", + "mode": "trusted_certificates", "responses": [ { "description": "Successful operation.", @@ -13802,7 +11026,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -13820,11 +11044,16 @@ "type": "object", "required": [ "account_id", - "email", + "certificate", + "certificate_fingerprint", "etag", "id", + "issuer", + "name", "object", - "status" + "service", + "subject", + "validity" ], "properties": [ { @@ -13835,95 +11064,16 @@ "_key": "account_id" }, { - "type": "array", - "description": "List of active user sessions.", - "items": { - "type": "object", - "required": [ - "account_id", - "ip_address", - "login_time", - "object", - "reference_token", - "user_agent" - ], - "properties": [ - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The UUID of the account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "string", - "example": "127.0.0.1", - "description": "IP address of the client.", - "api_fieldname": "ip_address", - "entity_fieldname": "ip_address", - "_key": "ip_address" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T17:52:07Z", - "description": "The login time of the user.", - "api_fieldname": "login_time", - "entity_fieldname": "login_time", - "_key": "login_time" - }, - { - "type": "string", - "description": "Entity name: always 'user-session'", - "enum": [ - "user-session" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "example": "rt_CI6+5hS8p9DrCmkRyS6u4doUdiXr71dX7MqD+g0327hYQthEkYTxMMnCwHyf1rDdk", - "description": "The reference token.", - "api_fieldname": "reference_token", - "entity_fieldname": "reference_token", - "_key": "reference_token" - }, - { - "type": "string", - "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", - "description": "User Agent header from the login request.", - "api_fieldname": "user_agent", - "entity_fieldname": "user_agent", - "_key": "user_agent" - } - ], - "description": "Represents an active user session.", - "foreign_key": { - "group": "Accounts", - "entity": "active_session" - } - }, - "_key": "active_sessions" + "type": "string", + "example": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----", + "description": "X509.v3 trusted certificate in PEM format.", + "_key": "certificate" }, { "type": "string", - "example": "110 Fulbourn Rd, Cambridge, United Kingdom", - "description": "Address.", - "x-nullable": true, - "_key": "address" + "example": "a10fb2c8ba90e6de927bd0ae391dcc38f6115685de2d7024712af37ead0608f1", + "description": "A SHA-256 fingerprint of the certificate.", + "_key": "certificate_fingerprint" }, { "type": "string", @@ -13933,33 +11083,31 @@ "_key": "created_at" }, { - "type": "integer", - "format": "int64", - "example": 1518630727683, - "description": "A timestamp of the user creation in the storage, in milliseconds.", - "_key": "creation_time" - }, - { - "type": "object", + "type": "string", + "maxLength": 500, "x-nullable": true, - "description": "User's account-specific custom properties. The value is a string.", - "additionalProperties": { - "type": "string" - }, - "_key": "custom_fields" + "example": "Certificate created by me.", + "description": "Human readable description of this certificate.", + "_key": "description" }, { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "user@arm.com", - "description": "The email address.", - "_key": "email" + "type": "integer", + "format": "int32", + "example": 1, + "description": "Device execution mode where 1 means a developer certificate.", + "_key": "device_execution_mode" }, { "type": "boolean", - "example": true, - "description": "A flag indicating whether the user's email address has been verified or not.", - "_key": "email_verified" + "example": false, + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, + "_key": "enrollment_mode" }, { "type": "string", @@ -13969,209 +11117,64 @@ }, { "type": "string", - "maxLength": 100, - "example": "User Doe", - "x-nullable": true, - "description": "The full name of the user.", - "_key": "full_name" - }, - { - "type": "array", - "description": "A list of IDs of the groups this user belongs to.", - "items": { - "type": "string" - }, - "_key": "groups" - }, - { - "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the user.", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", "pattern": "[a-f0-9]{32}", "_key": "id" }, { - "type": "boolean", - "example": true, - "description": "A flag indicating that the user has accepted General Terms and Conditions.", - "_key": "is_gtc_accepted" - }, - { - "type": "boolean", - "example": true, - "description": "A flag indicating that the user has consented to receive marketing information.", - "_key": "is_marketing_accepted" - }, - { - "type": "boolean", - "example": true, - "description": "A flag indicating whether two-factor authentication (TOTP) has been enabled.", - "_key": "is_totp_enabled" - }, - { - "type": "integer", - "format": "int64", - "example": 1518630727688, - "description": "A timestamp of the latest login of the user, in milliseconds.", - "_key": "last_login_time" - }, - { - "type": "array", - "maxItems": 5, - "description": "Timestamps, succeedings, IP addresses and user agent information of the last five logins of the user, with timestamps in RFC3339 format.", - "items": { - "type": "object", - "required": [ - "date", - "ip_address", - "success", - "user_agent" - ], - "properties": [ - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T17:52:07Z", - "description": "UTC time RFC3339 for this login attempt.", - "api_fieldname": "date", - "entity_fieldname": "date", - "_key": "date" - }, - { - "type": "string", - "example": "127.0.0.1", - "description": "IP address of the client.", - "api_fieldname": "ip_address", - "entity_fieldname": "ip_address", - "_key": "ip_address" - }, - { - "type": "boolean", - "example": true, - "description": "Flag indicating whether login attempt was successful or not.", - "api_fieldname": "success", - "entity_fieldname": "success", - "_key": "success" - }, - { - "type": "string", - "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", - "description": "User Agent header from the login request.", - "api_fieldname": "user_agent", - "entity_fieldname": "user_agent", - "_key": "user_agent" - } - ], - "description": "Represents an entry in login history.", - "foreign_key": { - "group": "Accounts", - "entity": "login_history" - } - }, - "_key": "login_history" + "type": "string", + "example": "CN=issuer", + "description": "Issuer of the certificate.", + "_key": "issuer" }, { - "type": "array", - "description": "A list of login profiles for the user. Specified as the identity providers the user is associated with.", - "x-nullable": true, - "items": { - "type": "object", - "required": [ - "id" - ], - "properties": [ - { - "type": "string", - "description": "ID of the identity provider.", - "readOnly": false, - "_override": true, - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "string", - "readOnly": false, - "description": "Name of the identity provider.", - "_override": true, - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" - }, - { - "type": "string", - "description": "Identity provider type.", - "readOnly": true, - "enum": [ - "NATIVE", - "MBED", - "SAML2", - "OIDC" - ], - "api_fieldname": "type", - "entity_fieldname": "login_profile_type", - "_key": "type" - } - ], - "description": "Represents a user login profile in Device Management.", - "foreign_key": { - "group": "Accounts", - "entity": "login_profile" - } - }, - "_key": "login_profiles" + "type": "string", + "maxLength": 100, + "example": "My certificate", + "description": "Certificate name.", + "_key": "name" }, { "type": "string", - "description": "Entity name: always `user`.", + "description": "Entity name: always 'trusted-cert'", "enum": [ - "user" + "trusted-cert" ], "_key": "object" }, { - "type": "string", - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password when creating a new user. It will be generated when not present in the request.", "x-nullable": true, - "_key": "password" - }, - { - "type": "integer", - "format": "int64", - "example": 1518630727688, - "description": "A timestamp of the latest change of the user password, in milliseconds.", - "_key": "password_changed_time" + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the owner.", + "pattern": "[a-f0-9]{32}", + "_key": "owner_id" }, { "type": "string", - "maxLength": 100, - "example": "+44 (1223) 400 400", - "description": "Phone number.", - "x-nullable": true, - "_key": "phone_number" + "description": "Service name where the certificate is used.", + "enum": [ + "lwm2m", + "bootstrap" + ], + "_key": "service" }, { "type": "string", "example": "ACTIVE", - "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" ], "_key": "status" }, { - "type": "array", - "x-nullable": true, - "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" - }, - "_key": "totp_scratch_codes" + "type": "string", + "example": "CN=subject", + "description": "Subject of the certificate.", + "_key": "subject" }, { "type": "string", @@ -14181,18 +11184,24 @@ "_key": "updated_at" }, { - "pattern": "[\\w\\-,._@+=]{4,30}", + "type": "boolean", + "example": true, + "description": "This read-only flag indicates whether the certificate is valid or not.", + "readOnly": true, + "_key": "valid" + }, + { "type": "string", - "example": "admin", - "description": "A username.", - "x-nullable": true, - "_key": "username" + "format": "date-time", + "example": "2038-02-14T15:24:14Z", + "description": "Expiration time in UTC formatted as RFC3339.", + "_key": "validity" } ], - "description": "Represents a user in Device Management.", + "description": "Represents a trusted certificate in responses.", "foreign_key": { - "group": "Accounts", - "entity": "user" + "group": "Security", + "entity": "trusted_certificate" } }, "api_fieldname": "data", @@ -14234,7 +11243,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -14247,7 +11256,7 @@ "default": "ASC", "external_param": true, "parameter_fieldname": "order", - "enum_reference": "user_order_enum", + "enum_reference": "trusted_certificate_order_enum", "_key": "order" }, { @@ -14262,8 +11271,8 @@ ], "pagination": true, "foreign_key": { - "group": "Accounts", - "entity": "user" + "group": "Security", + "entity": "trusted_certificate" } }, "_key": "200" @@ -14342,7 +11351,7 @@ "_key": "401" }, { - "description": "Forbidden.", + "description": "Forbidden, only available for administrators of commercial accounts.", "schema": { "type": "object", "required": [ @@ -14425,1177 +11434,2003 @@ "request_id", "type" ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/accounts/{account_id}/users", - "summary": "Get the details of all users.", - "return_type": "paginated_response(subtenant_user)", - "return_info": { - "self": false, - "custom": false, - "type": "subtenant_user" - }, - "x_filter": { - "email": [ - "eq" - ], - "status": [ - "eq", - "in", - "nin" - ], - "login_profiles": [ - "eq" - ] - }, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "sub_accounts", - "total_count", - "has_more", - "data", - "email__eq", - "status__eq", - "status__in", - "status__nin", - "login_profiles__eq" - ], - "group_id": "Accounts", - "parameter_map": { - "account_id": "id" - }, - "operation_id": "getAllAccountUsers", - "notes": "This lists the users of the subtenant account.", - "foreign_key": { - "entity": "subtenant_user" - }, - "pagination": true, - "request_content_type": "application/json", - "request_body": "json", - "_key": "users" - } - ], - "fields": [ - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "110 Fulbourn Rd", - "description": "Postal address line 1.", - "api_fieldname": "address_line1", - "readOnly": false, - "required": false, - "_key": "address_line1" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "Postal address line 2.", - "api_fieldname": "address_line2", - "readOnly": false, - "required": false, - "_key": "address_line2" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "admin@arm.com", - "description": "The email address of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_email", - "readOnly": false, - "required": false, - "_key": "admin_email" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Admin Doe", - "description": "The full name of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_full_name", - "readOnly": false, - "required": false, - "_key": "admin_full_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e2e89242ac12000600000000", - "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "admin_id", - "readOnly": true, - "required": false, - "_key": "admin_id" - }, - { - "type": "string", - "x-nullable": true, - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", - "description": "The admin API key created for this account. Present only in the response for account creation.", - "readOnly": true, - "api_fieldname": "admin_key", - "required": false, - "_key": "admin_key" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "admin", - "description": "The username of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_name", - "readOnly": false, - "required": false, - "_key": "admin_name" - }, - { - "type": "string", - "x-nullable": true, - "example": "PZf9eEUH43DAPE9ULINFeuj", - "description": "The password of the admin user created for this account. Present only in the response for account creation.", - "api_fieldname": "admin_password", - "readOnly": false, - "required": false, - "_key": "admin_password" - }, - { - "type": "array", - "maxItems": 10, - "description": "An array of aliases.", - "items": { - "type": "string", - "pattern": "[\\w\\-._]{8,100}" - }, - "api_fieldname": "aliases", - "readOnly": false, - "required": false, - "_key": "aliases" - }, - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "api_fieldname": "business_model", - "readOnly": false, - "required": false, - "enum_reference": "account_business_model_enum", - "_key": "business_model" - }, - { - "type": "array", - "description": "Business model history for this account.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "default": "active_device_business_model", - "example": "api_calls_1_business_model", - "description": "Business model for this account. Manageable by the root admin only.", - "enum": [ - "active_device_business_model", - "api_calls_1_business_model" - ], - "_key": "business_model" + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } + "_key": "404" + } + ], + "path": "/v3/accounts/{account_id}/trusted-certificates", + "summary": "Get trusted certificates.", + "return_type": "paginated_response(subtenant_trusted_certificate)", + "return_info": { + "self": false, + "custom": false, + "type": "subtenant_trusted_certificate" + }, + "x_filter": { + "name": [ + "eq" + ], + "service": [ + "eq" + ], + "expire": [ + "eq" + ], + "device_execution_mode": [ + "eq", + "neq" + ], + "owner": [ + "eq" + ], + "enrollment_mode": [ + "eq" + ], + "status": [ + "eq" + ], + "issuer": [ + "like" + ], + "subject": [ + "like" + ], + "certificate_fingerprint": [ + "eq" + ], + "valid": [ + "eq" ] }, - "api_fieldname": "business_model_history", - "readOnly": true, - "required": false, - "_key": "business_model_history" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "Cambridge", - "description": "The city part of the postal address.", - "api_fieldname": "city", - "readOnly": false, - "required": false, - "_key": "city" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM Holdings Plc", - "description": "The name of the company.", - "api_fieldname": "company", - "readOnly": false, - "required": false, - "_key": "company" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "J. Doe", - "description": "The name of the contact person for this account.", - "api_fieldname": "contact", - "readOnly": false, - "required": false, - "_key": "contact" - }, - { - "type": "string", - "example": "1NX25_0001", - "x-nullable": true, - "description": "Contract number of the customer.", - "api_fieldname": "contract_number", - "readOnly": false, - "required": false, - "_key": "contract_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "United Kingdom", - "description": "The country part of the postal address.", - "api_fieldname": "country", - "readOnly": false, - "required": false, - "_key": "country" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "object", - "x-nullable": true, - "description": "Account's custom properties as key-value pairs.", - "additionalProperties": { - "type": "string" + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "sub_accounts", + "total_count", + "has_more", + "data", + "name__eq", + "service__eq", + "expire__eq", + "device_execution_mode__eq", + "device_execution_mode__neq", + "owner__eq", + "enrollment_mode__eq", + "status__eq", + "issuer__like", + "subject__like", + "certificate_fingerprint__eq", + "valid__eq" + ], + "group_id": "Accounts", + "parameter_map": { + "account_id": "id" }, - "api_fieldname": "custom_fields", - "readOnly": false, - "required": false, - "_key": "custom_fields" - }, - { - "type": "string", - "example": "1NC25_0001", - "x-nullable": true, - "description": "Customer number of the customer.", - "api_fieldname": "customer_number", - "readOnly": false, - "required": false, - "_key": "customer_number" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "ARM", - "description": "The display name for the account.", - "api_fieldname": "display_name", - "readOnly": false, - "required": false, - "_key": "display_name" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "x-nullable": true, - "example": "info@arm.com", - "description": "The company email address for this account.", - "api_fieldname": "email", - "readOnly": false, - "required": false, - "_key": "email" - }, - { - "type": "string", - "example": "IT", - "description": "Account end market.", - "api_fieldname": "end_market", - "readOnly": false, - "required": true, - "_key": "end_market" - }, - { - "type": "string", - "x-nullable": true, - "format": "date-time", - "description": "Expiration time of the account, as UTC time RFC3339.", - "api_fieldname": "expiration", - "readOnly": true, - "required": false, - "_key": "expiration" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 180, - "example": "180", - "x-nullable": true, - "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", - "api_fieldname": "expiration_warning_threshold", - "readOnly": false, - "required": false, - "_key": "expiration_warning_threshold" - }, - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "Account ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - }, - { - "type": "integer", - "minimum": 1, - "maximum": 120, - "x-nullable": true, - "example": "30", - "description": "The reference token expiration time, in minutes, for this account.", - "api_fieldname": "idle_timeout", - "readOnly": false, - "required": false, - "_key": "idle_timeout" + "operation_id": "getAllAccountCertificates", + "notes": "This lists the trusted certificates of the subtenant account.", + "foreign_key": { + "entity": "subtenant_trusted_certificate" + }, + "pagination": true, + "request_content_type": "application/json", + "request_body": "json", + "_key": "trusted_certificates" }, { - "type": "array", - "description": "List of account limitation objects.", - "items": { - "type": "object", - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Billing period of the account limitation.", - "_key": "billing_period" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "string", - "description": "Description of the account limitation.", - "readOnly": true, - "_key": "description" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "_key": "id" - }, - { - "type": "boolean", - "description": "Flag indicating whether this limitation is inherited.", - "readOnly": true, - "_key": "inherited" - }, - { - "type": "string", - "description": "Indicates where this limit is inherited from.", - "readOnly": true, - "_key": "inherited_from" - }, - { - "type": "string", - "description": "Indicates the type of the entity where the limitation is inherited from.", - "readOnly": true, - "_key": "inherited_type" - }, - { - "type": "integer", - "format": "int32", - "description": "The value of the limit.", - "_key": "limit" - }, - { - "type": "string", - "description": "Name of the account limitation.", - "_key": "name" - }, - { + "description": "Update an account.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"phone_number\": \"12345678\"}'\n```", + "field_renames": [], + "fields": [ + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "api_fieldname": "address_line1", + "entity_fieldname": "address_line1", + "parameter_fieldname": "address_line1", + "in": "body", + "required": false, + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "api_fieldname": "address_line2", + "entity_fieldname": "address_line2", + "parameter_fieldname": "address_line2", + "in": "body", + "required": false, + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { "type": "string", - "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" - ], - "_key": "object" + "pattern": "[\\w\\-._]{8,100}" }, - { - "type": "integer", - "format": "int32", - "description": "Quota of the account limitation.", - "_key": "quota" + "api_fieldname": "aliases", + "entity_fieldname": "aliases", + "parameter_fieldname": "aliases", + "in": "body", + "required": false, + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "api_fieldname": "business_model", + "entity_fieldname": "business_model", + "parameter_fieldname": "business_model", + "in": "body", + "required": false, + "enum_reference": "account_business_model_enum", + "_key": "business_model" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "api_fieldname": "city", + "entity_fieldname": "city", + "parameter_fieldname": "city", + "in": "body", + "required": false, + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "api_fieldname": "company", + "entity_fieldname": "company", + "parameter_fieldname": "company", + "in": "body", + "required": false, + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "api_fieldname": "contact", + "entity_fieldname": "contact", + "parameter_fieldname": "contact", + "in": "body", + "required": false, + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "api_fieldname": "contract_number", + "entity_fieldname": "contract_number", + "parameter_fieldname": "contract_number", + "in": "body", + "required": false, + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "api_fieldname": "country", + "entity_fieldname": "country", + "parameter_fieldname": "country", + "in": "body", + "required": false, + "_key": "country" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - } - ], - "description": "This object represents an account limitation." - }, - "api_fieldname": "limitations", - "readOnly": true, - "required": false, - "_key": "limitations" - }, - { - "type": "object", - "x-nullable": true, - "deprecated": true, - "x-deprecation": { - "issued_at": "2019-08-27T12:03:58+00:00", - "end_of_life_at": "2020-08-27T12:03:58+00:00", - "comment": "Superseded by the limitations parameter." - }, - "description": "List of limits as key-value pairs if requested.", - "additionalProperties": { - "type": "string" - }, - "api_fieldname": "limits", - "readOnly": true, - "required": false, - "_key": "limits" - }, - { - "type": "string", - "x-nullable": true, - "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", - "enum": [ - "enforced", - "optional" - ], - "api_fieldname": "mfa_status", - "readOnly": false, - "required": false, - "enum_reference": "account_mfa_status_enum", - "_key": "mfa_status" - }, - { - "type": "array", - "x-nullable": true, - "description": "A list of notification email addresses.", - "items": { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string" - }, - "api_fieldname": "notification_emails", - "readOnly": false, - "required": false, - "_key": "notification_emails" - }, - { - "type": "object", - "properties": [ + "api_fieldname": "custom_fields", + "entity_fieldname": "custom_fields", + "parameter_fieldname": "custom_fields", + "in": "body", + "required": false, + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "api_fieldname": "customer_number", + "entity_fieldname": "customer_number", + "parameter_fieldname": "customer_number", + "in": "body", + "required": false, + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "api_fieldname": "display_name", + "entity_fieldname": "display_name", + "parameter_fieldname": "display_name", + "in": "body", + "required": false, + "_key": "display_name" + }, { "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", + "x-nullable": true, "example": "info@arm.com", - "description": "The email address of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_email", - "entity_fieldname": "admin_email", - "_key": "admin_email" + "description": "The company email address for this account.", + "api_fieldname": "email", + "entity_fieldname": "email", + "parameter_fieldname": "email", + "in": "body", + "required": false, + "_key": "email" }, { "type": "string", - "maxLength": 100, - "example": "J. Doe", - "description": "The name of the admin user who is the contact person of the parent account.", - "api_fieldname": "admin_name", - "entity_fieldname": "admin_name", - "_key": "admin_name" + "example": "IT", + "description": "Account end market.", + "api_fieldname": "end_market", + "entity_fieldname": "end_market", + "parameter_fieldname": "end_market", + "in": "body", + "required": false, + "_key": "end_market" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "api_fieldname": "expiration_warning_threshold", + "entity_fieldname": "expiration_warning_threshold", + "parameter_fieldname": "expiration_warning_threshold", + "in": "body", + "required": false, + "_key": "expiration_warning_threshold" }, { "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account.", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", "pattern": "[a-f0-9]{32}", "api_fieldname": "id", "entity_fieldname": "id", - "_key": "id" - } - ], - "description": "Represents parent account contact details in responses.", - "foreign_key": { - "group": "Accounts", - "entity": "parent_account" - }, - "x-nullable": true, - "api_fieldname": "parent_account", - "readOnly": true, - "required": false, - "_key": "parent_account" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the parent account, if any.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "parent_id", - "readOnly": true, - "required": false, - "_key": "parent_id" - }, - { - "type": "object", - "required": false, - "properties": [ - { - "type": "integer", - "minimum": 8, - "maximum": 512, - "example": "8", - "description": "Minimum length for the password.", - "api_fieldname": "minimum_length", - "entity_fieldname": "minimum_length", - "_key": "minimum_length" - } - ], - "foreign_key": { - "group": "Accounts", - "entity": "password_policy" - }, - "description": "The password policy for this account.", - "x-nullable": true, - "api_fieldname": "password_policy", - "readOnly": false, - "_key": "password_policy" - }, - { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 45, - "description": "Indicates for how many minutes a password recovery email is valid.", - "api_fieldname": "password_recovery_expiration", - "readOnly": false, - "required": false, - "_key": "password_recovery_expiration" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "+44 (1223) 400 400", - "description": "The phone number of a company representative.", - "api_fieldname": "phone_number", - "readOnly": false, - "required": false, - "_key": "phone_number" - }, - { - "type": "array", - "x-nullable": true, - "description": "List of policies if requested.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "GET", - "description": "Comma-separated list of actions, empty string represents all actions.", - "api_fieldname": "action", - "entity_fieldname": "action", - "_key": "action" - }, - { - "type": "boolean", - "example": true, - "description": "True or false controlling whether an action is allowed or not.", - "api_fieldname": "allow", - "entity_fieldname": "allow", - "_key": "allow" - }, - { - "type": "string", - "example": "update-campaigns", - "description": "Feature name corresponding to this policy.", - "api_fieldname": "feature", - "entity_fieldname": "feature", - "_key": "feature" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether this feature is inherited or overwritten specifically.", - "readOnly": true, - "api_fieldname": "inherited", - "entity_fieldname": "inherited", - "_key": "inherited" - }, - { - "type": "string", - "example": "016ada3ec2d46665bf66e32e00000000", - "description": "An ID indicating where this policy is inherited from.", - "pattern": "[a-f0-9]{32}", - "readOnly": true, - "api_fieldname": "inherited_from", - "entity_fieldname": "inherited_from", - "_key": "inherited_from" - }, - { - "type": "string", - "example": "account", - "description": "Indicates the type of entity this policy is inherited from.", - "readOnly": true, - "enum": [ - "account", - "template", - "tier_template" - ], - "api_fieldname": "inherited_type", - "entity_fieldname": "inherited_type", - "_key": "inherited_type" - }, - { - "type": "string", - "example": "/v3/update-campaign", - "description": "Resource that is protected by this policy.", - "api_fieldname": "resource", - "entity_fieldname": "resource", - "_key": "resource" - } - ], - "description": "Represents a feature policy. Either the feature or the resource must be specified.", - "foreign_key": { - "group": "Accounts", - "entity": "policy" - } - }, - "api_fieldname": "policies", - "readOnly": true, - "required": false, - "_key": "policies" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": "CB1 9NJ", - "description": "The postal code part of the postal address.", - "api_fieldname": "postal_code", - "readOnly": false, - "required": false, - "_key": "postal_code" - }, - { - "type": "string", - "x-nullable": true, - "example": "Subscription paid.", - "description": "A note with the reason for account status update.", - "api_fieldname": "reason", - "readOnly": true, - "required": false, - "_key": "reason" - }, - { - "type": "string", - "x-nullable": true, - "example": "ARM-INT-0001", - "description": "A reference note for updating the status of the account.", - "api_fieldname": "reference_note", - "readOnly": true, - "required": false, - "_key": "reference_note" - }, - { - "pattern": "^(?=.{3,254}$).+\\@.+", - "type": "string", - "example": "sales@arm.com", - "x-nullable": true, - "description": "Email address of the sales contact.", - "api_fieldname": "sales_contact", - "readOnly": false, - "required": false, - "_key": "sales_contact" - }, - { - "type": "string", - "maxLength": 100, - "x-nullable": true, - "example": " ", - "description": "The state part of the postal address.", - "api_fieldname": "state", - "readOnly": false, - "required": false, - "_key": "state" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the account.", - "enum": [ - "ENROLLING", - "ACTIVE", - "RESTRICTED", - "SUSPENDED" - ], - "api_fieldname": "status", - "readOnly": true, - "required": false, - "enum_reference": "account_status_enum", - "_key": "status" - }, - { - "type": "string", - "x-nullable": true, - "example": "01619571e7160242ac12000600000000", - "description": "Account template ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "template_id", - "readOnly": true, - "required": false, - "_key": "template_id" - }, - { - "type": "string", - "example": "1", - "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", - "api_fieldname": "tier", - "readOnly": true, - "required": false, - "_key": "tier" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "readOnly": true, - "required": false, - "_key": "updated_at" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Time when upgraded to commercial account in UTC format RFC3339.", - "api_fieldname": "upgraded_at", - "readOnly": true, - "required": false, - "_key": "upgraded_at" - } - ], - "field_renames": [], - "tags": [ - "Account - profile", - "Tenant accounts - accounts", - "Tenant accounts - API keys", - "Tenant accounts - users", - "Tenant accounts - user invitations", - "Tenant device security - certificates", - "Tenant user interface configuration - colors", - "Tenant user interface configuration - images" - ], - "group_id": "Accounts", - "_key": "account" - }, - { - "swagger_models": [ - "ActiveSession" - ], - "primary_key_field": null, - "methods": [], - "fields": [ - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The UUID of the account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "account_id", - "readOnly": true, - "required": false, - "_key": "account_id" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "example": "127.0.0.1", - "description": "IP address of the client.", - "api_fieldname": "ip_address", - "readOnly": true, - "required": false, - "_key": "ip_address" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T17:52:07Z", - "description": "The login time of the user.", - "api_fieldname": "login_time", - "readOnly": true, - "required": false, - "_key": "login_time" - }, - { - "type": "string", - "example": "rt_CI6+5hS8p9DrCmkRyS6u4doUdiXr71dX7MqD+g0327hYQthEkYTxMMnCwHyf1rDdk", - "description": "The reference token.", - "api_fieldname": "reference_token", - "readOnly": true, - "required": false, - "_key": "reference_token" - }, - { - "type": "string", - "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", - "description": "User Agent header from the login request.", - "api_fieldname": "user_agent", - "readOnly": true, - "required": false, - "_key": "user_agent" - } - ], - "field_renames": [], - "tags": [], - "group_id": "Accounts", - "_key": "active_session" - }, - { - "swagger_models": [ - "ApiKeyInfoReq", - "ApiKeyInfoResp", - "ApiKeyInfoRespList", - "ApiKeyUpdateReq", - "GroupSummaryList" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Create a new API key.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys -d '{\"name\": \"MyKey1\"}' \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\n```", - "field_renames": [], - "fields": [ + "parameter_fieldname": "account_id", + "in": "path", + "required": true, + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "api_fieldname": "idle_timeout", + "entity_fieldname": "idle_timeout", + "parameter_fieldname": "idle_timeout", + "in": "body", + "required": false, + "_key": "idle_timeout" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", + "enum": [ + "enforced", + "optional" + ], + "api_fieldname": "mfa_status", + "entity_fieldname": "mfa_status", + "parameter_fieldname": "mfa_status", + "in": "body", + "required": false, + "enum_reference": "account_mfa_status_enum", + "_key": "mfa_status" + }, { "type": "array", - "description": "A list of group IDs this API key belongs to.", + "x-nullable": true, + "description": "A list of notification email addresses.", "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string" }, - "api_fieldname": "groups", - "entity_fieldname": "groups", - "parameter_fieldname": "groups", + "api_fieldname": "notification_emails", + "entity_fieldname": "notification_emails", + "parameter_fieldname": "notification_emails", "in": "body", "required": false, - "_key": "groups" + "_key": "notification_emails" + }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" + }, + "description": "The password policy for this account.", + "x-nullable": true, + "api_fieldname": "password_policy", + "entity_fieldname": "password_policy", + "parameter_fieldname": "password_policy", + "in": "body", + "_key": "password_policy" + }, + { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "api_fieldname": "password_recovery_expiration", + "entity_fieldname": "password_recovery_expiration", + "parameter_fieldname": "password_recovery_expiration", + "in": "body", + "required": false, + "_key": "password_recovery_expiration" }, { "type": "string", "maxLength": 100, - "example": "API key gorgon", - "description": "The display name for the API key.", - "api_fieldname": "name", - "entity_fieldname": "name", - "parameter_fieldname": "name", + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "api_fieldname": "phone_number", + "entity_fieldname": "phone_number", + "parameter_fieldname": "phone_number", "in": "body", - "required": true, - "_key": "name" + "required": false, + "_key": "phone_number" }, { "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The owner of this API key, who is the creator by default.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "owner", - "entity_fieldname": "owner", - "parameter_fieldname": "owner", + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "api_fieldname": "postal_code", + "entity_fieldname": "postal_code", + "parameter_fieldname": "postal_code", "in": "body", "required": false, - "_key": "owner" + "_key": "postal_code" }, { + "pattern": "^(?=.{3,254}$).+\\@.+", "type": "string", - "example": "ACTIVE", - "description": "The status of the API key.", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "api_fieldname": "status", - "entity_fieldname": "status", - "parameter_fieldname": "status", + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "api_fieldname": "sales_contact", + "entity_fieldname": "sales_contact", + "parameter_fieldname": "sales_contact", "in": "body", "required": false, - "enum_reference": "api_key_status_enum", - "_key": "status" + "_key": "sales_contact" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "api_fieldname": "state", + "entity_fieldname": "state", + "parameter_fieldname": "state", + "in": "body", + "required": false, + "_key": "state" } ], - "method": "post", - "mode": "create", + "method": "put", + "mode": "update", "responses": [ { - "description": "New entity created.", + "description": "Successful operation.", "schema": { "type": "object", "required": [ + "end_market", "etag", "id", - "key", - "name", - "object" + "object", + "status", + "tier" ], "properties": [ { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account.", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "api_fieldname": "address_line1", + "entity_fieldname": "address_line1", + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "api_fieldname": "address_line2", + "entity_fieldname": "address_line2", + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "api_fieldname": "aliases", + "entity_fieldname": "aliases", + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "api_fieldname": "business_model", + "entity_fieldname": "business_model", + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "api_fieldname": "business_model_history", + "entity_fieldname": "business_model_history", + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "api_fieldname": "city", + "entity_fieldname": "city", + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "api_fieldname": "company", + "entity_fieldname": "company", + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "api_fieldname": "contact", + "entity_fieldname": "contact", + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "api_fieldname": "contract_number", + "entity_fieldname": "contract_number", + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "api_fieldname": "country", + "entity_fieldname": "country", + "_key": "country" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "api_fieldname": "custom_fields", + "entity_fieldname": "custom_fields", + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "api_fieldname": "customer_number", + "entity_fieldname": "customer_number", + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "api_fieldname": "display_name", + "entity_fieldname": "display_name", + "_key": "display_name" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", + "api_fieldname": "email", + "entity_fieldname": "email", + "_key": "email" + }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "api_fieldname": "end_market", + "entity_fieldname": "end_market", + "_key": "end_market" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "x-nullable": true, + "format": "date-time", + "description": "Expiration time of the account, as UTC time RFC3339.", + "api_fieldname": "expiration", + "entity_fieldname": "expiration", + "_key": "expiration" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "api_fieldname": "expiration_warning_threshold", + "entity_fieldname": "expiration_warning_threshold", + "_key": "expiration_warning_threshold" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "api_fieldname": "idle_timeout", + "entity_fieldname": "idle_timeout", + "_key": "idle_timeout" + }, + { + "type": "array", + "description": "List of account limitation objects.", + "items": { + "type": "object", + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", + "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "This object represents an account limitation." + }, + "api_fieldname": "limitations", + "entity_fieldname": "limitations", + "_key": "limitations" + }, + { + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "api_fieldname": "limits", + "entity_fieldname": "limits", + "_key": "limits" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", + "enum": [ + "enforced", + "optional" + ], + "api_fieldname": "mfa_status", + "entity_fieldname": "mfa_status", + "_key": "mfa_status" + }, + { + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "api_fieldname": "notification_emails", + "entity_fieldname": "notification_emails", + "_key": "notification_emails" + }, + { + "type": "string", + "description": "Entity name: always `account`.", + "enum": [ + "account" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + } + ], + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" + }, + "x-nullable": true, + "api_fieldname": "parent_account", + "entity_fieldname": "parent_account", + "_key": "parent_account" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "parent_id", + "entity_fieldname": "parent_id", + "_key": "parent_id" + }, + { + "type": "object", + "required": [ + "minimum_length" + ], + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" + }, + "description": "The password policy for this account.", + "x-nullable": true, + "api_fieldname": "password_policy", + "entity_fieldname": "password_policy", + "_key": "password_policy" + }, + { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "api_fieldname": "password_recovery_expiration", + "entity_fieldname": "password_recovery_expiration", + "_key": "password_recovery_expiration" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "api_fieldname": "phone_number", + "entity_fieldname": "phone_number", + "_key": "phone_number" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of policies if requested.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" + }, + { + "type": "string", + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" + }, + { + "type": "string", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", + "readOnly": true, + "enum": [ + "account", + "template", + "tier_template" + ], + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" + } + ], + "description": "Represents a feature policy. Either the feature or the resource must be specified.", + "foreign_key": { + "group": "Accounts", + "entity": "policy" + } + }, + "api_fieldname": "policies", + "entity_fieldname": "policies", + "_key": "policies" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "api_fieldname": "postal_code", + "entity_fieldname": "postal_code", + "_key": "postal_code" + }, + { + "type": "string", + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "api_fieldname": "reason", + "entity_fieldname": "reason", + "_key": "reason" + }, + { + "type": "string", + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "api_fieldname": "reference_note", + "entity_fieldname": "reference_note", + "_key": "reference_note" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "api_fieldname": "sales_contact", + "entity_fieldname": "sales_contact", + "_key": "sales_contact" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "api_fieldname": "state", + "entity_fieldname": "state", + "_key": "state" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the account.", + "enum": [ + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" + ], + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of sub accounts. Not available for developer users.", + "items": { + "type": "object", + "required": [ + "end_market", + "etag", + "id", + "object", + "status", + "tier" + ], + "properties": [ + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "_key": "address_line2" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "_key": "country" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "_key": "display_name" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", + "_key": "email" + }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "_key": "end_market" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "x-nullable": true, + "format": "date-time", + "description": "Expiration time of the account, as UTC time RFC3339.", + "_key": "expiration" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "_key": "expiration_warning_threshold" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "_key": "idle_timeout" + }, + { + "type": "array", + "description": "List of account limitation objects.", + "items": { + "type": "object", + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", + "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "This object represents an account limitation." + }, + "_key": "limitations" + }, + { + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "_key": "limits" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", + "enum": [ + "enforced", + "optional" + ], + "_key": "mfa_status" + }, + { + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "_key": "notification_emails" + }, + { + "type": "string", + "description": "Entity name: always `account`.", + "enum": [ + "account" + ], + "_key": "object" + }, + { + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + } + ], + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" + }, + "x-nullable": true, + "_key": "parent_account" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", + "pattern": "[a-f0-9]{32}", + "_key": "parent_id" + }, + { + "type": "object", + "required": [ + "minimum_length" + ], + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "password_policy" + }, + "description": "The password policy for this account.", + "x-nullable": true, + "_key": "password_policy" + }, + { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "_key": "password_recovery_expiration" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "_key": "phone_number" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of policies if requested.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" + }, + { + "type": "string", + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" + }, + { + "type": "string", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", + "readOnly": true, + "enum": [ + "account", + "template", + "tier_template" + ], + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" + } + ], + "description": "Represents a feature policy. Either the feature or the resource must be specified.", + "foreign_key": { + "group": "Accounts", + "entity": "policy" + } + }, + "_key": "policies" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "_key": "postal_code" + }, + { + "type": "string", + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "_key": "reason" + }, + { + "type": "string", + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "_key": "reference_note" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "_key": "sales_contact" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "_key": "state" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the account.", + "enum": [ + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" + ], + "_key": "status" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of sub accounts. Not available for developer users.", + "items": [], + "_key": "sub_accounts" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", + "pattern": "[a-f0-9]{32}", + "_key": "template_id" + }, + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "_key": "tier_history" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "_key": "upgraded_at" + } + ], + "description": "Represents an account in requests and responses." + }, + "api_fieldname": "sub_accounts", + "entity_fieldname": "sub_accounts", + "_key": "sub_accounts" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", "pattern": "[a-f0-9]{32}", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" + "api_fieldname": "template_id", + "entity_fieldname": "template_id", + "_key": "template_id" }, { "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "api_fieldname": "tier", + "entity_fieldname": "tier", + "_key": "tier" }, { - "type": "integer", - "format": "int64", - "example": 1518630727683, - "description": "The timestamp of the API key creation in the storage, in milliseconds.", - "api_fieldname": "creation_time", - "entity_fieldname": "creation_time", - "_key": "creation_time" + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "api_fieldname": "tier_history", + "entity_fieldname": "tier_history", + "_key": "tier_history" }, { "type": "string", - "example": "1", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "api_fieldname": "upgraded_at", + "entity_fieldname": "upgraded_at", + "_key": "upgraded_at" + } + ], + "description": "Represents an account in requests and responses." + }, + "_key": "200" + }, + { + "description": "Error in input data format.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { "type": "array", - "description": "A list of group IDs this API key belongs to.", + "description": "Request fields which failed validation.", "items": { - "type": "string" + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] }, - "api_fieldname": "groups", - "entity_fieldname": "groups", - "_key": "groups" + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "example": "01619571f7020242ac12000600000000", - "description": "The ID of the API key.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", - "description": "The API key.", - "api_fieldname": "key", - "entity_fieldname": "key", - "_key": "key" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ { "type": "integer", - "format": "int64", - "example": 1518630727688, - "description": "The timestamp of the latest API key usage, in milliseconds.", - "api_fieldname": "last_login_time", - "entity_fieldname": "last_login_time", - "_key": "last_login_time" + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "maxLength": 100, - "example": "API key gorgon", - "description": "The display name for the API key.", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "description": "Entity name: always 'api-key'", + "description": "Entity name, always `error`.", "enum": [ - "api-key" + "error" ], - "api_fieldname": "object", - "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The owner of this API key, who is the creator by default.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "owner", - "entity_fieldname": "owner", - "_key": "owner" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the API key.", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "description": "Represents an API key in Device Management.", - "foreign_key": { - "group": "Accounts", - "entity": "subtenant_api_key" - } + ] }, - "_key": "201" + "_key": "401" }, { - "description": "Error in input data, for example, missing display name.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -15665,10 +13500,10 @@ } ] }, - "_key": "400" + "_key": "403" }, { - "description": "Authentication failure.", + "description": "Account with the given ID not found.", "schema": { "type": "object", "required": [ @@ -15738,10 +13573,10 @@ } ] }, - "_key": "401" + "_key": "404" }, { - "description": "Forbidden.", + "description": "Account with the specified new alias exists already.", "schema": { "type": "object", "required": [ @@ -15811,16 +13646,16 @@ } ] }, - "_key": "403" + "_key": "409" } ], - "path": "/v3/api-keys", - "summary": "Create a new API key.", - "return_type": "api_key", + "path": "/v3/accounts/{account_id}", + "summary": "Update attributes of an existing account.", + "return_type": "account", "return_info": { "self": true, "custom": false, - "type": "api_key" + "type": "account" }, "x_filter": {}, "x_deprecation": null, @@ -15829,47 +13664,360 @@ "etag", "type", "filter", - "id", + "sub_accounts", "created_at", "updated_at", - "key", - "creation_time", - "last_login_time", - "account_id" + "parent_id", + "tier", + "status", + "upgraded_at", + "limits", + "policies", + "template_id", + "reason", + "reference_note", + "parent_account", + "expiration", + "limitations", + "business_model_history", + "tier_history" ], "group_id": "Accounts", "parameter_map": { - "apikey_id": "id" + "account_id": "id" }, - "operation_id": "createApiKey", + "operation_id": "updateAccount", + "additional_operations": [ + { + "operation_id": "updateMyAccount", + "notes": "After retrieving the resource using the `me` method, it can modified using using this SDK method." + } + ], "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "create" + "_key": "update" }, { - "description": "Delete the API key.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of active user invitations.\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}/user-invitations \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { - "name": "apikey_id", + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "name": "after", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "after", + "_key": "after" + }, + { + "name": "account_id", "in": "path", - "description": "The ID of the API key to delete.", + "description": "Account ID.", "required": true, "type": "string", "entity_fieldname": "id", - "api_fieldname": "apikey_id", + "api_fieldname": "account_id", "external_param": false, - "parameter_fieldname": "apikey_id", + "parameter_fieldname": "account_id", "_key": "id" + }, + { + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return (2-1000). Default 50.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "name": "limit", + "in": "query", + "required": false, + "default": 50, + "external_param": true, + "parameter_fieldname": "limit", + "_key": "limit" + }, + { + "type": "string", + "description": "Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "name": "order", + "in": "query", + "required": false, + "default": "ASC", + "external_param": true, + "parameter_fieldname": "order", + "enum_reference": "account_order_enum", + "_key": "order" } ], - "method": "delete", - "mode": "delete", + "method": "get", + "mode": "user_invitations", "responses": [ { - "description": "Deleted successfully.", - "_key": "204" + "description": "Successful operation.", + "schema": { + "type": "object", + "required": [ + "data", + "has_more", + "limit", + "object", + "total_count" + ], + "properties": [ + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "name": "after", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "after", + "_key": "after" + }, + { + "type": "array", + "description": "A list of entities.", + "items": { + "type": "object", + "required": [ + "account_id", + "email", + "etag", + "id", + "object", + "user_id" + ], + "properties": [ + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account the user is invited to.", + "pattern": "[a-f0-9]{32}", + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "friend@arm.com", + "description": "Email address of the invited user.", + "_key": "email" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Invitation expiration as UTC time RFC3339.", + "_key": "expiration" + }, + { + "type": "array", + "description": "A list of IDs of the groups the user is invited to.", + "items": { + "type": "string" + }, + "_key": "groups" + }, + { + "type": "string", + "example": "01619571e2e89242ac12000600000000", + "description": "The ID of the invitation.", + "pattern": "[a-f0-9]{32}", + "_key": "id" + }, + { + "type": "array", + "description": "A list of login profiles for the user. Specified as the identity providers the user is associated with.", + "x-nullable": true, + "items": { + "type": "object", + "required": [ + "id" + ], + "properties": [ + { + "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "ID of the identity provider.", + "readOnly": false, + "_override": true, + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "string", + "example": "Pelion", + "readOnly": false, + "description": "Name of the identity provider.", + "_override": true, + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" + }, + { + "type": "string", + "description": "Identity provider type.", + "example": "NATIVE", + "readOnly": true, + "enum": [ + "NATIVE", + "MBED", + "SAML2", + "OIDC" + ], + "api_fieldname": "type", + "entity_fieldname": "login_profile_type", + "_key": "type" + } + ], + "description": "Represents a user login profile in Device Management.", + "foreign_key": { + "group": "Accounts", + "entity": "login_profile" + } + }, + "_key": "login_profiles" + }, + { + "type": "string", + "description": "Entity name: always 'user-invitation'", + "enum": [ + "user-invitation" + ], + "_key": "object" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the invited user.", + "pattern": "[a-f0-9]{32}", + "_key": "user_id" + } + ], + "description": "Represents an user invitation in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "user_invitation" + } + }, + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return (2-1000). Default 50.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "name": "limit", + "in": "query", + "required": false, + "default": 50, + "external_param": true, + "parameter_fieldname": "limit", + "_key": "limit" + }, + { + "type": "string", + "description": "Entity name: always `list`.", + "enum": [ + "list" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "description": "Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "name": "order", + "in": "query", + "required": false, + "default": "ASC", + "external_param": true, + "parameter_fieldname": "order", + "enum_reference": "user_invitation_order_enum", + "_key": "order" + }, + { + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" + } + ], + "pagination": true, + "foreign_key": { + "group": "Accounts", + "entity": "user_invitation" + } + }, + "_key": "200" }, { "description": "Authentication failure.", @@ -16018,7 +14166,7 @@ "_key": "403" }, { - "description": "The API key with the specified ID does not exist.", + "description": "An account with the specified ID does not exist.", "schema": { "type": "object", "required": [ @@ -16091,40 +14239,53 @@ "_key": "404" } ], - "path": "/v3/api-keys/{apikey_id}", - "summary": "Delete API key.", - "return_type": "api_key", + "path": "/v3/accounts/{account_id}/user-invitations", + "summary": "Get user invitations.", + "return_type": "paginated_response(subtenant_user_invitation)", "return_info": { - "self": true, + "self": false, "custom": false, - "type": "api_key" + "type": "subtenant_user_invitation" + }, + "x_filter": { + "login_profiles": [ + "eq" + ] }, - "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", "etag", "type", - "filter" + "filter", + "sub_accounts", + "total_count", + "has_more", + "data", + "login_profiles__eq" ], "group_id": "Accounts", "parameter_map": { - "apikey_id": "id" + "account_id": "id" }, - "operation_id": "deleteApiKey", - "pagination": false, + "operation_id": "getAllAccountInvitations", + "notes": "This lists the user invitations of the subtenant account.", + "foreign_key": { + "entity": "subtenant_user_invitation" + }, + "pagination": true, "request_content_type": "application/json", "request_body": "json", - "_key": "delete" + "_key": "user_invitations" }, { - "description": "Retrieve API keys in an array, optionally filtered by the owner.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of users.\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}/users \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -16135,6 +14296,18 @@ "parameter_fieldname": "after", "_key": "after" }, + { + "name": "account_id", + "in": "path", + "description": "Account ID.", + "required": true, + "type": "string", + "entity_fieldname": "id", + "api_fieldname": "account_id", + "external_param": false, + "parameter_fieldname": "account_id", + "_key": "id" + }, { "name": "include", "in": "query", @@ -16164,7 +14337,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -16177,12 +14350,12 @@ "default": "ASC", "external_param": true, "parameter_fieldname": "order", - "enum_reference": "api_key_order_enum", + "enum_reference": "account_order_enum", "_key": "order" } ], "method": "get", - "mode": "list", + "mode": "users", "responses": [ { "description": "Successful operation.", @@ -16199,10 +14372,15 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", + "name": "after", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "after", "_key": "after" }, { @@ -16211,11 +14389,12 @@ "items": { "type": "object", "required": [ + "account_id", + "email", "etag", "id", - "key", - "name", - "object" + "object", + "status" ], "properties": [ { @@ -16225,6 +14404,97 @@ "pattern": "[a-f0-9]{32}", "_key": "account_id" }, + { + "type": "array", + "description": "List of active user sessions.", + "items": { + "type": "object", + "required": [ + "account_id", + "ip_address", + "login_time", + "object", + "reference_token", + "user_agent" + ], + "properties": [ + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "The UUID of the account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "string", + "example": "127.0.0.1", + "description": "IP address of the client.", + "api_fieldname": "ip_address", + "entity_fieldname": "ip_address", + "_key": "ip_address" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T17:52:07Z", + "description": "The login time of the user.", + "api_fieldname": "login_time", + "entity_fieldname": "login_time", + "_key": "login_time" + }, + { + "type": "string", + "description": "Entity name: always 'user-session'", + "enum": [ + "user-session" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "example": "rt_CI6+5hS8p9DrCmkRyS6u4doUdiXr71dX7MqD+g0327hYQthEkYTxMMnCwHyf1rDdk", + "description": "The reference token.", + "api_fieldname": "reference_token", + "entity_fieldname": "reference_token", + "_key": "reference_token" + }, + { + "type": "string", + "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", + "description": "User Agent header from the login request.", + "api_fieldname": "user_agent", + "entity_fieldname": "user_agent", + "_key": "user_agent" + } + ], + "description": "Represents an active user session.", + "foreign_key": { + "group": "Accounts", + "entity": "active_session" + } + }, + "_key": "active_sessions" + }, + { + "type": "string", + "example": "110 Fulbourn Rd, Cambridge, United Kingdom", + "description": "Address.", + "x-nullable": true, + "_key": "address" + }, { "type": "string", "format": "date-time", @@ -16236,18 +14506,48 @@ "type": "integer", "format": "int64", "example": 1518630727683, - "description": "The timestamp of the API key creation in the storage, in milliseconds.", + "description": "A timestamp of the user creation in the storage, in milliseconds.", "_key": "creation_time" }, + { + "type": "object", + "x-nullable": true, + "description": "User's account-specific custom properties. The value is a string.", + "additionalProperties": { + "type": "string" + }, + "_key": "custom_fields" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "user@arm.com", + "description": "The email address.", + "_key": "email" + }, + { + "type": "boolean", + "example": true, + "description": "A flag indicating whether the user's email address has been verified or not.", + "_key": "email_verified" + }, { "type": "string", "example": "1", "description": "API resource entity version.", "_key": "etag" }, + { + "type": "string", + "maxLength": 100, + "example": "User Doe", + "x-nullable": true, + "description": "The full name of the user.", + "_key": "full_name" + }, { "type": "array", - "description": "A list of group IDs this API key belongs to.", + "description": "A list of IDs of the groups this user belongs to.", "items": { "type": "string" }, @@ -16255,68 +14555,226 @@ }, { "type": "string", - "example": "01619571f7020242ac12000600000000", - "description": "The ID of the API key.", + "example": "01619571e2e89242ac12000600000000", + "description": "The ID of the user.", "pattern": "[a-f0-9]{32}", "_key": "id" }, { - "type": "string", - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", - "description": "The API key.", - "_key": "key" + "type": "boolean", + "example": true, + "description": "A flag indicating that the user has accepted General Terms and Conditions.", + "_key": "is_gtc_accepted" + }, + { + "type": "boolean", + "example": true, + "description": "A flag indicating that the user has consented to receive marketing information.", + "_key": "is_marketing_accepted" + }, + { + "type": "boolean", + "example": true, + "description": "A flag indicating whether two-factor authentication (TOTP) has been enabled.", + "_key": "is_totp_enabled" }, { "type": "integer", "format": "int64", "example": 1518630727688, - "description": "The timestamp of the latest API key usage, in milliseconds.", + "description": "A timestamp of the latest login of the user, in milliseconds.", "_key": "last_login_time" }, { - "type": "string", - "maxLength": 100, - "example": "API key gorgon", - "description": "The display name for the API key.", - "_key": "name" + "type": "array", + "maxItems": 5, + "description": "Timestamps, succeedings, IP addresses and user agent information of the last five logins of the user, with timestamps in RFC3339 format.", + "items": { + "type": "object", + "required": [ + "date", + "ip_address", + "success", + "user_agent" + ], + "properties": [ + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T17:52:07Z", + "description": "UTC time RFC3339 for this login attempt.", + "api_fieldname": "date", + "entity_fieldname": "date", + "_key": "date" + }, + { + "type": "string", + "example": "127.0.0.1", + "description": "IP address of the client.", + "api_fieldname": "ip_address", + "entity_fieldname": "ip_address", + "_key": "ip_address" + }, + { + "type": "boolean", + "example": true, + "description": "Flag indicating whether login attempt was successful or not.", + "api_fieldname": "success", + "entity_fieldname": "success", + "_key": "success" + }, + { + "type": "string", + "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", + "description": "User Agent header from the login request.", + "api_fieldname": "user_agent", + "entity_fieldname": "user_agent", + "_key": "user_agent" + } + ], + "description": "Represents an entry in login history.", + "foreign_key": { + "group": "Accounts", + "entity": "login_history" + } + }, + "_key": "login_history" + }, + { + "type": "array", + "description": "A list of login profiles for the user. Specified as the identity providers the user is associated with.", + "x-nullable": true, + "items": { + "type": "object", + "required": [ + "id" + ], + "properties": [ + { + "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "ID of the identity provider.", + "readOnly": false, + "_override": true, + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "string", + "example": "Pelion", + "readOnly": false, + "description": "Name of the identity provider.", + "_override": true, + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" + }, + { + "type": "string", + "description": "Identity provider type.", + "example": "NATIVE", + "readOnly": true, + "enum": [ + "NATIVE", + "MBED", + "SAML2", + "OIDC" + ], + "api_fieldname": "type", + "entity_fieldname": "login_profile_type", + "_key": "type" + } + ], + "description": "Represents a user login profile in Device Management.", + "foreign_key": { + "group": "Accounts", + "entity": "login_profile" + } + }, + "_key": "login_profiles" }, { "type": "string", - "description": "Entity name: always 'api-key'", + "description": "Entity name: always `user`.", "enum": [ - "api-key" + "user" ], "_key": "object" }, { "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The owner of this API key, who is the creator by default.", - "pattern": "[a-f0-9]{32}", - "_key": "owner" + "example": "PZf9eEUH43DAPE9ULINFeuj", + "description": "The password when creating a new user. It will be generated when not present in the request.", + "x-nullable": true, + "_key": "password" + }, + { + "type": "integer", + "format": "int64", + "example": 1518630727688, + "description": "A timestamp of the latest change of the user password, in milliseconds.", + "_key": "password_changed_time" + }, + { + "type": "string", + "maxLength": 100, + "example": "+44 (1223) 400 400", + "description": "Phone number.", + "x-nullable": true, + "_key": "phone_number" }, { "type": "string", "example": "ACTIVE", - "description": "The status of the API key.", + "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" ], "_key": "status" }, + { + "type": "array", + "x-nullable": true, + "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" + }, + "_key": "totp_scratch_codes" + }, { "type": "string", "format": "date-time", "example": "2018-02-14T15:24:14Z", "description": "Last update UTC time RFC3339.", "_key": "updated_at" + }, + { + "pattern": "[\\w\\-,._@+=]{4,30}", + "type": "string", + "example": "admin", + "description": "A username.", + "x-nullable": true, + "_key": "username" } ], - "description": "Represents an API key in Device Management.", + "description": "Represents a user in Device Management.", "foreign_key": { "group": "Accounts", - "entity": "api_key" + "entity": "user" } }, "api_fieldname": "data", @@ -16335,9 +14793,15 @@ "type": "integer", "format": "int32", "example": 50, - "description": "The number of results to return, or equal to `total_count`.", + "description": "The number of results to return (2-1000). Default 50.", "api_fieldname": "limit", "entity_fieldname": "limit", + "name": "limit", + "in": "query", + "required": false, + "default": 50, + "external_param": true, + "parameter_fieldname": "limit", "_key": "limit" }, { @@ -16352,13 +14816,20 @@ }, { "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", + "description": "Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.", "enum": [ "ASC", "DESC" ], "api_fieldname": "order", "entity_fieldname": "order", + "name": "order", + "in": "query", + "required": false, + "default": "ASC", + "external_param": true, + "parameter_fieldname": "order", + "enum_reference": "user_order_enum", "_key": "order" }, { @@ -16374,13 +14845,159 @@ "pagination": true, "foreign_key": { "group": "Accounts", - "entity": "api_key" + "entity": "user" } }, "_key": "200" }, { - "description": "Authentication failure.", + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + }, + { + "description": "An account with the given ID does not exist.", "schema": { "type": "object", "required": [ @@ -16450,134 +15067,1007 @@ } ] }, - "_key": "401" + "_key": "404" + } + ], + "path": "/v3/accounts/{account_id}/users", + "summary": "Get users.", + "return_type": "paginated_response(subtenant_user)", + "return_info": { + "self": false, + "custom": false, + "type": "subtenant_user" + }, + "x_filter": { + "email": [ + "eq" + ], + "status": [ + "eq", + "in", + "nin" + ], + "login_profiles": [ + "eq" + ] + }, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "sub_accounts", + "total_count", + "has_more", + "data", + "email__eq", + "status__eq", + "status__in", + "status__nin", + "login_profiles__eq" + ], + "group_id": "Accounts", + "parameter_map": { + "account_id": "id" + }, + "operation_id": "getAllAccountUsers", + "notes": "This lists the users of the subtenant account.", + "foreign_key": { + "entity": "subtenant_user" + }, + "pagination": true, + "request_content_type": "application/json", + "request_body": "json", + "_key": "users" + } + ], + "fields": [ + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "110 Fulbourn Rd", + "description": "Postal address line 1.", + "api_fieldname": "address_line1", + "readOnly": false, + "required": false, + "_key": "address_line1" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "Postal address line 2.", + "api_fieldname": "address_line2", + "readOnly": false, + "required": false, + "_key": "address_line2" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "admin@arm.com", + "description": "The email address of the admin user created for this account. Present only in the response for account creation.", + "api_fieldname": "admin_email", + "readOnly": false, + "required": false, + "_key": "admin_email" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Admin Doe", + "description": "The full name of the admin user created for this account. Present only in the response for account creation.", + "api_fieldname": "admin_full_name", + "readOnly": false, + "required": false, + "_key": "admin_full_name" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571e2e89242ac12000600000000", + "description": "The ID of the admin user created for this account. Present only in the response for the account creation.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "admin_id", + "readOnly": true, + "required": false, + "_key": "admin_id" + }, + { + "type": "string", + "x-nullable": true, + "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT", + "description": "The admin API key created for this account. Present only in the response for account creation.", + "readOnly": true, + "x-deprecation": { + "issued_at": "2020-09-01T00:00:00+00:00", + "end_of_life_at": "2021-09-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, + "api_fieldname": "admin_key", + "required": false, + "_key": "admin_key" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "admin", + "description": "The username of the admin user created for this account. Present only in the response for account creation.", + "api_fieldname": "admin_name", + "readOnly": false, + "required": false, + "_key": "admin_name" + }, + { + "type": "string", + "x-nullable": true, + "example": "PZf9eEUH43DAPE9ULINFeuj", + "description": "The password of the admin user created for this account. Present only in the response for account creation.", + "api_fieldname": "admin_password", + "readOnly": false, + "required": false, + "_key": "admin_password" + }, + { + "type": "array", + "maxItems": 10, + "description": "An array of aliases for the tenant account ID. The aliases must be globally unique.", + "items": { + "type": "string", + "pattern": "[\\w\\-._]{8,100}" + }, + "api_fieldname": "aliases", + "readOnly": false, + "required": false, + "_key": "aliases" + }, + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "api_fieldname": "business_model", + "readOnly": false, + "required": false, + "enum_reference": "account_business_model_enum", + "_key": "business_model" + }, + { + "type": "array", + "description": "Business model history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "default": "active_device_business_model", + "example": "api_calls_1_business_model", + "description": "Business model for this account. Manageable by the root admin only.", + "enum": [ + "active_device_business_model", + "api_calls_1_business_model" + ], + "_key": "business_model" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ] + }, + "api_fieldname": "business_model_history", + "readOnly": true, + "required": false, + "_key": "business_model_history" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "Cambridge", + "description": "The city part of the postal address.", + "api_fieldname": "city", + "readOnly": false, + "required": false, + "_key": "city" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM Holdings Plc", + "description": "The name of the company used in billing.", + "api_fieldname": "company", + "readOnly": false, + "required": false, + "_key": "company" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "J. Doe", + "description": "The name of the contact person for this account.", + "api_fieldname": "contact", + "readOnly": false, + "required": false, + "_key": "contact" + }, + { + "type": "string", + "example": "1NX25_0001", + "x-nullable": true, + "description": "Contract number of the customer.", + "api_fieldname": "contract_number", + "readOnly": false, + "required": false, + "_key": "contract_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "United Kingdom", + "description": "The country part of the postal address.", + "api_fieldname": "country", + "readOnly": false, + "required": false, + "_key": "country" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "object", + "x-nullable": true, + "description": "Account's custom properties as key-value pairs.", + "additionalProperties": { + "type": "string" + }, + "api_fieldname": "custom_fields", + "readOnly": false, + "required": false, + "_key": "custom_fields" + }, + { + "type": "string", + "example": "1NC25_0001", + "x-nullable": true, + "description": "Customer number of the customer.", + "api_fieldname": "customer_number", + "readOnly": false, + "required": false, + "_key": "customer_number" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "ARM", + "description": "The display name for the tenant account.", + "api_fieldname": "display_name", + "readOnly": false, + "required": false, + "_key": "display_name" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "x-nullable": true, + "example": "info@arm.com", + "description": "The company email address for this account.", + "api_fieldname": "email", + "readOnly": false, + "required": false, + "_key": "email" + }, + { + "type": "string", + "example": "IT", + "description": "Account end market.", + "api_fieldname": "end_market", + "readOnly": false, + "required": true, + "_key": "end_market" + }, + { + "type": "string", + "x-nullable": true, + "format": "date-time", + "description": "Expiration time of the account, as UTC time RFC3339.", + "api_fieldname": "expiration", + "readOnly": true, + "required": false, + "_key": "expiration" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 180, + "example": "180", + "x-nullable": true, + "description": "Indicates how many days (1-180) before account expiration a notification email is sent.", + "api_fieldname": "expiration_warning_threshold", + "readOnly": false, + "required": false, + "_key": "expiration_warning_threshold" + }, + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "Account ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "_key": "id" + }, + { + "type": "integer", + "minimum": 1, + "maximum": 120, + "x-nullable": true, + "example": "30", + "description": "The reference token expiration time, in minutes, for this account.", + "api_fieldname": "idle_timeout", + "readOnly": false, + "required": false, + "_key": "idle_timeout" + }, + { + "type": "array", + "description": "List of account limitation objects.", + "items": { + "type": "object", + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Billing period of the account limitation.", + "_key": "billing_period" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description of the account limitation.", + "readOnly": true, + "_key": "description" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "_key": "id" + }, + { + "type": "boolean", + "description": "Flag indicating whether this limitation is inherited.", + "readOnly": true, + "_key": "inherited" + }, + { + "type": "string", + "description": "Indicates where this limit is inherited from.", + "readOnly": true, + "_key": "inherited_from" + }, + { + "type": "string", + "description": "Indicates the type of the entity where the limitation is inherited from.", + "readOnly": true, + "_key": "inherited_type" + }, + { + "type": "integer", + "format": "int32", + "description": "The value of the limit.", + "_key": "limit" + }, + { + "type": "string", + "description": "Name of the account limitation.", + "_key": "name" + }, + { + "type": "string", + "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" + ], + "_key": "object" + }, + { + "type": "integer", + "format": "int32", + "description": "Quota of the account limitation.", + "_key": "quota" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "This object represents an account limitation." + }, + "api_fieldname": "limitations", + "readOnly": true, + "required": false, + "_key": "limitations" + }, + { + "type": "object", + "x-nullable": true, + "x-deprecation": { + "issued_at": "2019-08-27T12:03:58+00:00", + "end_of_life_at": "2020-08-27T12:03:58+00:00", + "comment": "Replaced by the limitations parameter." + }, + "description": "DEPRECATED: Replaced by the limitations parameter.", + "additionalProperties": { + "type": "string" + }, + "api_fieldname": "limits", + "readOnly": true, + "required": false, + "_key": "limits" + }, + { + "type": "string", + "x-nullable": true, + "description": "The enforcement status of multi-factor authentication, either `enforced` or `optional`.", + "enum": [ + "enforced", + "optional" + ], + "api_fieldname": "mfa_status", + "readOnly": false, + "required": false, + "enum_reference": "account_mfa_status_enum", + "_key": "mfa_status" + }, + { + "type": "array", + "x-nullable": true, + "description": "A list of notification email addresses.", + "items": { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string" + }, + "api_fieldname": "notification_emails", + "readOnly": false, + "required": false, + "_key": "notification_emails" + }, + { + "type": "object", + "properties": [ + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "info@arm.com", + "description": "The email address of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_email", + "entity_fieldname": "admin_email", + "_key": "admin_email" }, { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" + "type": "string", + "maxLength": 100, + "example": "J. Doe", + "description": "The name of the admin user who is the contact person of the parent account.", + "api_fieldname": "admin_name", + "entity_fieldname": "admin_name", + "_key": "admin_name" + }, + { + "type": "string", + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" } ], - "path": "/v3/api-keys", - "summary": "Get all API keys.", - "return_type": "paginated_response(api_key)", - "return_info": { - "self": true, - "custom": false, - "type": "api_key" - }, - "x_filter": { - "key": [ - "eq" - ], - "owner": [ - "eq" - ] + "description": "Represents parent account contact details in responses.", + "foreign_key": { + "group": "Accounts", + "entity": "parent_account" }, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "total_count", - "has_more", - "data", - "key__eq", - "owner__eq" + "x-nullable": true, + "api_fieldname": "parent_account", + "readOnly": true, + "required": false, + "_key": "parent_account" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the parent account, if any.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "parent_id", + "readOnly": true, + "required": false, + "_key": "parent_id" + }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "integer", + "minimum": 8, + "maximum": 512, + "example": "8", + "description": "Minimum length for the password.", + "api_fieldname": "minimum_length", + "entity_fieldname": "minimum_length", + "_key": "minimum_length" + } ], - "foreign_key_priority": "self", - "group_id": "Accounts", - "parameter_map": { - "apikey_id": "id" - }, - "operation_id": "getAllApiKeys", - "pagination": true, "foreign_key": { "group": "Accounts", - "entity": "api_key" + "entity": "password_policy" }, - "request_content_type": "application/json", - "request_body": "json", - "_key": "list" + "description": "The password policy for this account.", + "x-nullable": true, + "api_fieldname": "password_policy", + "readOnly": false, + "_key": "password_policy" + }, + { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 45, + "description": "Indicates for how many minutes a password recovery email is valid.", + "api_fieldname": "password_recovery_expiration", + "readOnly": false, + "required": false, + "_key": "password_recovery_expiration" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "+44 (1223) 400 400", + "description": "The phone number of a company representative.", + "api_fieldname": "phone_number", + "readOnly": false, + "required": false, + "_key": "phone_number" + }, + { + "type": "array", + "x-nullable": true, + "description": "List of policies if requested.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "GET", + "description": "Comma-separated list of actions, empty string represents all actions.", + "api_fieldname": "action", + "entity_fieldname": "action", + "_key": "action" + }, + { + "type": "boolean", + "example": true, + "description": "True or false controlling whether an action is allowed or not.", + "api_fieldname": "allow", + "entity_fieldname": "allow", + "_key": "allow" + }, + { + "type": "string", + "example": "update-campaigns", + "description": "Feature name corresponding to this policy.", + "api_fieldname": "feature", + "entity_fieldname": "feature", + "_key": "feature" + }, + { + "type": "boolean", + "example": false, + "description": "Flag indicating whether this feature is inherited or overwritten specifically.", + "readOnly": true, + "api_fieldname": "inherited", + "entity_fieldname": "inherited", + "_key": "inherited" + }, + { + "type": "string", + "example": "016ada3ec2d46665bf66e32e00000000", + "description": "An ID indicating where this policy is inherited from.", + "pattern": "[a-f0-9]{32}", + "readOnly": true, + "api_fieldname": "inherited_from", + "entity_fieldname": "inherited_from", + "_key": "inherited_from" + }, + { + "type": "string", + "example": "account", + "description": "Indicates the type of entity this policy is inherited from.", + "readOnly": true, + "enum": [ + "account", + "template", + "tier_template" + ], + "api_fieldname": "inherited_type", + "entity_fieldname": "inherited_type", + "_key": "inherited_type" + }, + { + "type": "string", + "example": "/v3/update-campaign", + "description": "Resource that is protected by this policy.", + "api_fieldname": "resource", + "entity_fieldname": "resource", + "_key": "resource" + } + ], + "description": "Represents a feature policy. Either the feature or the resource must be specified.", + "foreign_key": { + "group": "Accounts", + "entity": "policy" + } + }, + "api_fieldname": "policies", + "readOnly": true, + "required": false, + "_key": "policies" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": "CB1 9NJ", + "description": "The postal code part of the postal address.", + "api_fieldname": "postal_code", + "readOnly": false, + "required": false, + "_key": "postal_code" + }, + { + "type": "string", + "x-nullable": true, + "example": "Subscription paid.", + "description": "A note with the reason for account status update.", + "api_fieldname": "reason", + "readOnly": true, + "required": false, + "_key": "reason" + }, + { + "type": "string", + "x-nullable": true, + "example": "ARM-INT-0001", + "description": "A reference note for updating the status of the account.", + "api_fieldname": "reference_note", + "readOnly": true, + "required": false, + "_key": "reference_note" + }, + { + "pattern": "^(?=.{3,254}$).+\\@.+", + "type": "string", + "example": "sales@arm.com", + "x-nullable": true, + "description": "Email address of the sales contact.", + "api_fieldname": "sales_contact", + "readOnly": false, + "required": false, + "_key": "sales_contact" + }, + { + "type": "string", + "maxLength": 100, + "x-nullable": true, + "example": " ", + "description": "The state part of the postal address.", + "api_fieldname": "state", + "readOnly": false, + "required": false, + "_key": "state" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the account.", + "enum": [ + "ENROLLING", + "ACTIVE", + "RESTRICTED", + "SUSPENDED" + ], + "api_fieldname": "status", + "readOnly": true, + "required": false, + "enum_reference": "account_status_enum", + "_key": "status" + }, + { + "type": "string", + "x-nullable": true, + "example": "01619571e7160242ac12000600000000", + "description": "Account template ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "template_id", + "readOnly": true, + "required": false, + "_key": "template_id" + }, + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "api_fieldname": "tier", + "readOnly": true, + "required": false, + "_key": "tier" + }, + { + "type": "array", + "description": "Tier history for this account.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "1", + "description": "The tier level of the account; `0`: free tier, `1`: commercial account, `2`: partner tier. Other values are reserved for the future.", + "_key": "tier" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updatedAt" + } + ] + }, + "api_fieldname": "tier_history", + "readOnly": true, + "required": false, + "_key": "tier_history" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "readOnly": true, + "required": false, + "_key": "updated_at" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Time when upgraded to commercial account in UTC format RFC3339.", + "api_fieldname": "upgraded_at", + "readOnly": true, + "required": false, + "_key": "upgraded_at" + } + ], + "field_renames": [], + "tags": [ + "Account - profile", + "Tenant accounts - accounts", + "Tenant accounts - API keys", + "Tenant accounts - users", + "Tenant accounts - user invitations", + "Tenant security and identity - certificates", + "Tenant user interface configuration - colors", + "Tenant user interface configuration - images" + ], + "group_id": "Accounts", + "_key": "account" + }, + { + "swagger_models": [ + "ActiveSession" + ], + "primary_key_field": null, + "methods": [], + "fields": [ + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "The UUID of the account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "account_id", + "readOnly": true, + "required": false, + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "string", + "example": "127.0.0.1", + "description": "IP address of the client.", + "api_fieldname": "ip_address", + "readOnly": true, + "required": false, + "_key": "ip_address" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T17:52:07Z", + "description": "The login time of the user.", + "api_fieldname": "login_time", + "readOnly": true, + "required": false, + "_key": "login_time" + }, + { + "type": "string", + "example": "rt_CI6+5hS8p9DrCmkRyS6u4doUdiXr71dX7MqD+g0327hYQthEkYTxMMnCwHyf1rDdk", + "description": "The reference token.", + "api_fieldname": "reference_token", + "readOnly": true, + "required": false, + "_key": "reference_token" }, { - "description": "Retrieve API key details.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/me \\\n-H 'Authorization: Bearer '\n```", + "type": "string", + "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", + "description": "User Agent header from the login request.", + "api_fieldname": "user_agent", + "readOnly": true, + "required": false, + "_key": "user_agent" + } + ], + "field_renames": [], + "tags": [], + "group_id": "Accounts", + "_key": "active_session" + }, + { + "swagger_models": [ + "ApiKeyInfoReq", + "ApiKeyInfoResp", + "ApiKeyInfoRespList", + "ApiKeyUpdateReq", + "GroupSummaryList" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Create a new API key.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/api-keys -d '{\"name\": \"MyKey1\"}' \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json'\n```", "field_renames": [], - "fields": [], - "method": "get", - "mode": "me", + "fields": [ + { + "type": "array", + "description": "A list of group IDs this API key belongs to.", + "items": { + "type": "string" + }, + "api_fieldname": "groups", + "entity_fieldname": "groups", + "parameter_fieldname": "groups", + "in": "body", + "required": false, + "_key": "groups" + }, + { + "type": "string", + "maxLength": 100, + "example": "API key gorgon", + "description": "The display name for the API key.", + "api_fieldname": "name", + "entity_fieldname": "name", + "parameter_fieldname": "name", + "in": "body", + "required": false, + "_key": "name" + }, + { + "type": "string", + "example": "01619571e2e89242ac12000600000000", + "description": "The owner of this API key, who is the creator by default.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "owner", + "entity_fieldname": "owner", + "parameter_fieldname": "owner", + "in": "body", + "required": false, + "_key": "owner" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the API key.", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "api_fieldname": "status", + "entity_fieldname": "status", + "parameter_fieldname": "status", + "in": "body", + "required": false, + "enum_reference": "api_key_status_enum", + "_key": "status" + } + ], + "method": "post", + "mode": "create", "responses": [ { - "description": "Successful operation.", + "description": "New entity created.", "schema": { "type": "object", "required": [ @@ -16715,83 +16205,10 @@ "entity": "subtenant_api_key" } }, - "_key": "200" - }, - { - "description": "Authentication failure.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "401" + "_key": "201" }, { - "description": "Forbidden.", + "description": "Error in input data, for example, missing API key name.", "schema": { "type": "object", "required": [ @@ -16861,309 +16278,7 @@ } ] }, - "_key": "403" - } - ], - "path": "/v3/api-keys/me", - "summary": "Get API key details.", - "return_type": "api_key", - "return_info": { - "self": true, - "custom": false, - "type": "api_key" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "id", - "created_at", - "updated_at", - "key", - "name", - "groups", - "owner", - "status", - "creation_time", - "last_login_time", - "account_id" - ], - "group_id": "Accounts", - "parameter_map": { - "apikey_id": "id" - }, - "operation_id": "getMyApiKey", - "notes": "This is provided by the SDK to avoid listing to retrieve the user's own API Key.", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "me" - }, - { - "description": "Retrieve groups associated with the API key.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "name": "after", - "in": "query", - "required": false, - "external_param": true, - "parameter_fieldname": "after", - "_key": "after" - }, - { - "name": "apikey_id", - "in": "path", - "description": "The ID of the API key.", - "required": true, - "type": "string", - "entity_fieldname": "id", - "api_fieldname": "apikey_id", - "external_param": false, - "parameter_fieldname": "apikey_id", - "_key": "id" - }, - { - "name": "include", - "in": "query", - "description": "Comma-separated additional data to return. Currently supported: total_count.", - "required": false, - "type": "string", - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "_key": "include" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return (2-1000). Default 50.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "name": "limit", - "in": "query", - "required": false, - "default": 50, - "external_param": true, - "parameter_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Record order based on creation time. Acceptable values: ASC, DESC. Default: ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "name": "order", - "in": "query", - "required": false, - "default": "ASC", - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "api_key_order_enum", - "_key": "order" - } - ], - "method": "get", - "mode": "policy_groups", - "responses": [ - { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], - "properties": [ - { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "name": "after", - "in": "query", - "required": false, - "external_param": true, - "parameter_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "description": "A list of entities.", - "items": { - "type": "object", - "required": [ - "account_id", - "apikey_count", - "etag", - "id", - "name", - "object", - "user_count" - ], - "properties": [ - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account this group belongs to.", - "pattern": "[a-f0-9]{32}", - "_key": "account_id" - }, - { - "type": "integer", - "format": "int32", - "example": 0, - "description": "The number of API keys in this group.", - "_key": "apikey_count" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "_key": "created_at" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571dec00242ac12000600000000", - "description": "The ID of the group.", - "pattern": "[a-f0-9]{32}", - "_key": "id" - }, - { - "type": "string", - "maxLength": 100, - "example": "Administrators", - "description": "The name of the group.", - "_key": "name" - }, - { - "type": "string", - "description": "Entity name: always `group`.", - "enum": [ - "group" - ], - "_key": "object" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "_key": "updated_at" - }, - { - "type": "integer", - "format": "int32", - "example": 1, - "description": "The number of users in this group.", - "_key": "user_count" - } - ], - "description": "This object contains basic information about groups.", - "foreign_key": { - "group": "Accounts", - "entity": "subtenant_policy_group" - } - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return (2-1000). Default 50.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "name": "limit", - "in": "query", - "required": false, - "default": 50, - "external_param": true, - "parameter_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "Entity name: always `list`.", - "enum": [ - "list" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "Record order based on creation time. Acceptable values: ASC, DESC. Default: ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "name": "order", - "in": "query", - "required": false, - "default": "ASC", - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "subtenant_user_order_enum", - "_key": "order" - }, - { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Accounts", - "entity": "subtenant_policy_group" - } - }, - "_key": "200" + "_key": "400" }, { "description": "Authentication failure.", @@ -17309,274 +16424,70 @@ } ] }, - "_key": "403" - }, - { - "description": "An API key with the given ID does not exist.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" + "_key": "403" } ], - "path": "/v3/api-keys/{apikey_id}/groups", - "summary": "Get groups of the API key.", - "return_type": "paginated_response(policy_group)", + "path": "/v3/api-keys", + "summary": "Create a new API key.", + "return_type": "api_key", "return_info": { - "self": false, + "self": true, "custom": false, - "type": "policy_group" + "type": "api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys", + "links": [] + }, "drop_fields": [ "object", "etag", "type", "filter", - "total_count", - "has_more", - "data" + "id", + "created_at", + "updated_at", + "key", + "creation_time", + "last_login_time", + "account_id" ], "group_id": "Accounts", "parameter_map": { "apikey_id": "id" }, - "operation_id": "getGroupsOfApikey", - "foreign_key": { - "entity": "policy_group" - }, - "pagination": true, + "operation_id": "createApiKey", + "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "policy_groups" + "_key": "create" }, { - "description": "Retrieve API key details.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete the API key.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { + "name": "apikey_id", + "in": "path", + "description": "The ID of the API key to delete.", + "required": true, "type": "string", - "example": "01619571f7020242ac12000600000000", - "description": "The ID of the API key.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", "entity_fieldname": "id", + "api_fieldname": "apikey_id", + "external_param": false, "parameter_fieldname": "apikey_id", - "in": "path", - "required": true, "_key": "id" } ], - "method": "get", - "mode": "read", + "method": "delete", + "mode": "delete", "responses": [ { - "description": "Successful operation.", - "schema": { - "type": "object", - "required": [ - "etag", - "id", - "key", - "name", - "object" - ], - "properties": [ - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "integer", - "format": "int64", - "example": 1518630727683, - "description": "The timestamp of the API key creation in the storage, in milliseconds.", - "api_fieldname": "creation_time", - "entity_fieldname": "creation_time", - "_key": "creation_time" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, - { - "type": "array", - "description": "A list of group IDs this API key belongs to.", - "items": { - "type": "string" - }, - "api_fieldname": "groups", - "entity_fieldname": "groups", - "_key": "groups" - }, - { - "type": "string", - "example": "01619571f7020242ac12000600000000", - "description": "The ID of the API key.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "string", - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", - "description": "The API key.", - "api_fieldname": "key", - "entity_fieldname": "key", - "_key": "key" - }, - { - "type": "integer", - "format": "int64", - "example": 1518630727688, - "description": "The timestamp of the latest API key usage, in milliseconds.", - "api_fieldname": "last_login_time", - "entity_fieldname": "last_login_time", - "_key": "last_login_time" - }, - { - "type": "string", - "maxLength": 100, - "example": "API key gorgon", - "description": "The display name for the API key.", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" - }, - { - "type": "string", - "description": "Entity name: always 'api-key'", - "enum": [ - "api-key" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The owner of this API key, who is the creator by default.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "owner", - "entity_fieldname": "owner", - "_key": "owner" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the API key.", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" - } - ], - "description": "Represents an API key in Device Management.", - "foreign_key": { - "group": "Accounts", - "entity": "subtenant_api_key" - } - }, - "_key": "200" + "description": "Deleted successfully.", + "_key": "204" }, { "description": "Authentication failure.", @@ -17652,7 +16563,7 @@ "_key": "401" }, { - "description": "Forbidden.", + "description": "Forbidden. Only the owner of the API key or an administrator can delete an API key.", "schema": { "type": "object", "required": [ @@ -17725,7 +16636,7 @@ "_key": "403" }, { - "description": "API key with the specified ID does not exist.", + "description": "An API key with the specified ID does not exist.", "schema": { "type": "object", "required": [ @@ -17799,7 +16710,7 @@ } ], "path": "/v3/api-keys/{apikey_id}", - "summary": "Get API key details.", + "summary": "Delete API key.", "return_type": "api_key", "return_info": { "self": true, @@ -17807,203 +16718,256 @@ "type": "api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use DELETE https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id}", + "links": [] + }, "drop_fields": [ "object", "etag", "type", - "filter", - "created_at", - "updated_at", - "key", - "name", - "groups", - "owner", - "status", - "creation_time", - "last_login_time", - "account_id" + "filter" ], "group_id": "Accounts", "parameter_map": { "apikey_id": "id" }, - "operation_id": "getApiKey", + "operation_id": "deleteApiKey", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "read" + "_key": "delete" }, { - "description": "Update API key details.\n\n**Example:**\n`curl -X PUT https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestApiKey25\"}'\n```", + "description": "Retrieve an array of API keys, optionally filtered by the owner.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ - { - "type": "array", - "description": "A list of group IDs this API key belongs to.", - "items": { - "type": "string" - }, - "api_fieldname": "groups", - "entity_fieldname": "groups", - "parameter_fieldname": "groups", - "in": "body", - "required": false, - "_key": "groups" - }, { "type": "string", - "example": "01619571f7020242ac12000600000000", - "description": "The ID of the API key.", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "apikey_id", - "in": "path", - "required": true, - "_key": "id" + "api_fieldname": "after", + "entity_fieldname": "after", + "name": "after", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "after", + "_key": "after" }, { + "name": "include", + "in": "query", + "description": "Comma-separated additional data to return. Currently supported: total_count.", + "required": false, "type": "string", - "maxLength": 100, - "example": "API key gorgon", - "description": "The display name for the API key.", - "api_fieldname": "name", - "entity_fieldname": "name", - "parameter_fieldname": "name", - "in": "body", - "required": true, - "_key": "name" + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "_key": "include" }, { - "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The owner of this API key, who is the creator by default.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "owner", - "entity_fieldname": "owner", - "parameter_fieldname": "owner", - "in": "body", + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return (2-1000). Default 50.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "name": "limit", + "in": "query", "required": false, - "_key": "owner" + "default": 50, + "external_param": true, + "parameter_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "example": "ACTIVE", - "description": "The status of the API key.", + "description": "Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.", "enum": [ - "ACTIVE", - "INACTIVE" + "ASC", + "DESC" ], - "api_fieldname": "status", - "entity_fieldname": "status", - "parameter_fieldname": "status", - "in": "body", + "api_fieldname": "order", + "entity_fieldname": "order", + "name": "order", + "in": "query", "required": false, - "enum_reference": "api_key_status_enum", - "_key": "status" + "default": "ASC", + "external_param": true, + "parameter_fieldname": "order", + "enum_reference": "api_key_order_enum", + "_key": "order" } ], - "method": "put", - "mode": "update", + "method": "get", + "mode": "list", "responses": [ { "description": "Successful operation.", "schema": { "type": "object", "required": [ - "etag", - "id", - "key", - "name", - "object" + "data", + "has_more", + "limit", + "object", + "total_count" ], "properties": [ { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account.", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "integer", - "format": "int64", - "example": 1518630727683, - "description": "The timestamp of the API key creation in the storage, in milliseconds.", - "api_fieldname": "creation_time", - "entity_fieldname": "creation_time", - "_key": "creation_time" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { "type": "array", - "description": "A list of group IDs this API key belongs to.", + "description": "A list of entities.", "items": { - "type": "string" + "type": "object", + "required": [ + "etag", + "id", + "key", + "name", + "object" + ], + "properties": [ + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account.", + "pattern": "[a-f0-9]{32}", + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "_key": "created_at" + }, + { + "type": "integer", + "format": "int64", + "example": 1518630727683, + "description": "The timestamp of the API key creation in the storage, in milliseconds.", + "_key": "creation_time" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "_key": "etag" + }, + { + "type": "array", + "description": "A list of group IDs this API key belongs to.", + "items": { + "type": "string" + }, + "_key": "groups" + }, + { + "type": "string", + "example": "01619571f7020242ac12000600000000", + "description": "The ID of the API key.", + "pattern": "[a-f0-9]{32}", + "_key": "id" + }, + { + "type": "string", + "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", + "description": "The API key.", + "_key": "key" + }, + { + "type": "integer", + "format": "int64", + "example": 1518630727688, + "description": "The timestamp of the latest API key usage, in milliseconds.", + "_key": "last_login_time" + }, + { + "type": "string", + "maxLength": 100, + "example": "API key gorgon", + "description": "The display name for the API key.", + "_key": "name" + }, + { + "type": "string", + "description": "Entity name: always 'api-key'", + "enum": [ + "api-key" + ], + "_key": "object" + }, + { + "type": "string", + "example": "01619571e2e89242ac12000600000000", + "description": "The owner of this API key, who is the creator by default.", + "pattern": "[a-f0-9]{32}", + "_key": "owner" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the API key.", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "_key": "status" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" + } + ], + "description": "Represents an API key in Device Management.", + "foreign_key": { + "group": "Accounts", + "entity": "api_key" + } }, - "api_fieldname": "groups", - "entity_fieldname": "groups", - "_key": "groups" - }, - { - "type": "string", - "example": "01619571f7020242ac12000600000000", - "description": "The ID of the API key.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", - "description": "The API key.", - "api_fieldname": "key", - "entity_fieldname": "key", - "_key": "key" + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" }, { "type": "integer", - "format": "int64", - "example": 1518630727688, - "description": "The timestamp of the latest API key usage, in milliseconds.", - "api_fieldname": "last_login_time", - "entity_fieldname": "last_login_time", - "_key": "last_login_time" - }, - { - "type": "string", - "maxLength": 100, - "example": "API key gorgon", - "description": "The display name for the API key.", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "format": "int32", + "example": 50, + "description": "The number of results to return, or equal to `total_count`.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "description": "Entity name: always 'api-key'", + "description": "Entity name: always `list`.", "enum": [ - "api-key" + "list" ], "api_fieldname": "object", "entity_fieldname": "object", @@ -18011,45 +16975,35 @@ }, { "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The owner of this API key, who is the creator by default.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "owner", - "entity_fieldname": "owner", - "_key": "owner" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the API key.", + "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", "enum": [ - "ACTIVE", - "INACTIVE" + "ASC", + "DESC" ], - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } ], - "description": "Represents an API key in Device Management.", + "pagination": true, "foreign_key": { "group": "Accounts", - "entity": "subtenant_api_key" + "entity": "api_key" } }, "_key": "200" }, { - "description": "Error in input data, for example, missing display name.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -18119,10 +17073,10 @@ } ] }, - "_key": "400" + "_key": "401" }, { - "description": "Authentication failure.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -18192,746 +17146,596 @@ } ] }, - "_key": "401" - }, + "_key": "403" + } + ], + "path": "/v3/api-keys", + "summary": "Get all API keys.", + "return_type": "paginated_response(api_key)", + "return_info": { + "self": true, + "custom": false, + "type": "api_key" + }, + "x_filter": { + "key": [ + "eq" + ], + "owner": [ + "eq" + ] + }, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys", + "links": [] + }, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "total_count", + "has_more", + "data", + "key__eq", + "owner__eq" + ], + "foreign_key_priority": "self", + "group_id": "Accounts", + "parameter_map": { + "apikey_id": "id" + }, + "operation_id": "getAllApiKeys", + "pagination": true, + "foreign_key": { + "group": "Accounts", + "entity": "api_key" + }, + "request_content_type": "application/json", + "request_body": "json", + "_key": "list" + }, + { + "description": "Retrieve details of current API key.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/me \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], + "fields": [], + "method": "get", + "mode": "me", + "responses": [ { - "description": "Forbidden.", + "description": "Successful operation.", "schema": { "type": "object", "required": [ - "code", - "message", - "object", - "request_id", - "type" + "etag", + "id", + "key", + "name", + "object" ], "properties": [ { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" }, { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" }, { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "type": "integer", + "format": "int64", + "example": 1518630727683, + "description": "The timestamp of the API key creation in the storage, in milliseconds.", + "api_fieldname": "creation_time", + "entity_fieldname": "creation_time", + "_key": "creation_time" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" + "example": "1", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" }, { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "type": "array", + "description": "A list of group IDs this API key belongs to.", + "items": { + "type": "string" + }, + "api_fieldname": "groups", + "entity_fieldname": "groups", + "_key": "groups" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "The API key with the specified ID does not exist.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ + "example": "01619571f7020242ac12000600000000", + "description": "The ID of the API key.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "type": "string", + "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", + "description": "The API key.", + "api_fieldname": "key", + "entity_fieldname": "key", + "_key": "key" }, { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" + "type": "integer", + "format": "int64", + "example": 1518630727688, + "description": "The timestamp of the latest API key usage, in milliseconds.", + "api_fieldname": "last_login_time", + "entity_fieldname": "last_login_time", + "_key": "last_login_time" }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "maxLength": 100, + "example": "API key gorgon", + "description": "The display name for the API key.", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" }, { "type": "string", - "description": "Entity name, always `error`.", + "description": "Entity name: always 'api-key'", "enum": [ - "error" + "api-key" ], + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "example": "01619571e2e89242ac12000600000000", + "description": "The owner of this API key, who is the creator by default.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "owner", + "entity_fieldname": "owner", + "_key": "owner" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" + "example": "ACTIVE", + "description": "The status of the API key.", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" } - ] + ], + "description": "Represents an API key in Device Management.", + "foreign_key": { + "group": "Accounts", + "entity": "subtenant_api_key" + } }, - "_key": "404" - } - ], - "path": "/v3/api-keys/{apikey_id}", - "summary": "Update API key details.", - "return_type": "api_key", - "return_info": { - "self": true, - "custom": false, - "type": "api_key" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "created_at", - "updated_at", - "key", - "creation_time", - "last_login_time", - "account_id" - ], - "group_id": "Accounts", - "parameter_map": { - "apikey_id": "id" - }, - "operation_id": "updateApiKey", - "additional_operations": [ - { - "operation_id": "updateMyApiKey", - "notes": "After retrieving the resource using the `me` method, it can modified using using this SDK method." - } - ], - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "update" - } - ], - "fields": [ - { - "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "account_id", - "readOnly": true, - "required": false, - "_key": "account_id" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "integer", - "format": "int64", - "example": 1518630727683, - "description": "The timestamp of the API key creation in the storage, in milliseconds.", - "api_fieldname": "creation_time", - "readOnly": true, - "required": false, - "_key": "creation_time" - }, - { - "type": "array", - "description": "A list of group IDs this API key belongs to.", - "items": { - "type": "string" - }, - "api_fieldname": "groups", - "readOnly": false, - "required": false, - "_key": "groups" - }, - { - "type": "string", - "example": "01619571f7020242ac12000600000000", - "description": "The ID of the API key.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - }, - { - "type": "string", - "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", - "description": "The API key.", - "api_fieldname": "key", - "readOnly": true, - "required": false, - "_key": "key" - }, - { - "type": "integer", - "format": "int64", - "example": 1518630727688, - "description": "The timestamp of the latest API key usage, in milliseconds.", - "api_fieldname": "last_login_time", - "readOnly": true, - "required": false, - "_key": "last_login_time" - }, - { - "type": "string", - "maxLength": 100, - "example": "API key gorgon", - "description": "The display name for the API key.", - "api_fieldname": "name", - "readOnly": false, - "required": true, - "_key": "name" - }, - { - "type": "string", - "example": "01619571e2e89242ac12000600000000", - "description": "The owner of this API key, who is the creator by default.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "owner", - "readOnly": false, - "required": false, - "_key": "owner" - }, - { - "type": "string", - "example": "ACTIVE", - "description": "The status of the API key.", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "api_fieldname": "status", - "readOnly": false, - "required": false, - "enum_reference": "api_key_status_enum", - "_key": "status" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", - "api_fieldname": "updated_at", - "readOnly": true, - "required": false, - "_key": "updated_at" - } - ], - "field_renames": [], - "tags": [ - "Account - API keys" - ], - "group_id": "Accounts", - "_key": "api_key" - }, - { - "swagger_models": [ - "CampaignDeviceMetadata" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Get update campaign metadata for a specific device.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/campaign-device-metadata/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", - "field_renames": [ - { - "api_fieldname": "campaign", - "_key": "campaign_id" - } - ], - "fields": [ - { - "type": "string", - "description": "The device's campaign ID.", - "example": "015bf72fccda00000000000100100280", - "api_fieldname": "campaign", - "entity_fieldname": "campaign_id", - "parameter_fieldname": "campaign_id", - "in": "path", - "required": true, - "_key": "campaign_id" - }, - { - "type": "string", - "description": "The metadata record ID.", - "example": "015c3029f6f7000000000001001000c3", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "campaign_device_metadata_id", - "in": "path", - "required": true, - "_key": "id" - } - ], - "method": "get", - "mode": "read", - "responses": [ + "_key": "200" + }, { - "description": "Request successful.", + "description": "Authentication failure.", "schema": { "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], "properties": [ { - "type": "string", - "description": "The device's campaign ID.", - "example": "015bf72fccda00000000000100100280", - "api_fieldname": "campaign", - "entity_fieldname": "campaign_id", - "_key": "campaign" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { - "type": "string", - "format": "date-time", - "description": "The time the entity was created.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { - "description": "The state of the update campaign on the device.", - "enum": [ - "pending", - "updated_connector_channel", - "failed_connector_channel_update", - "deployed", - "manifestremoved", - "deregistered" - ], "type": "string", - "api_fieldname": "deployment_state", - "entity_fieldname": "deployment_state", - "_key": "deployment_state" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "maxLength": 2000, - "description": "Description.", - "example": "a description", - "api_fieldname": "description", - "entity_fieldname": "description", - "_key": "description" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "description": "The device ID.", - "example": "015c2fec9bba0000000000010010036f", - "api_fieldname": "device_id", - "entity_fieldname": "device_id", - "_key": "device_id" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "description": "API resource entity version.", - "example": "2017-05-22T12:37:58.753425Z", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ { - "type": "string", - "description": "The metadata record ID.", - "example": "015c3029f6f7000000000001001000c3", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { - "type": "string", - "description": "How the firmware is delivered (connector or direct).", - "example": "connector", - "api_fieldname": "mechanism", - "entity_fieldname": "mechanism", - "_key": "mechanism" + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "description": "The Device Management Connect URL.", - "api_fieldname": "mechanism_url", - "entity_fieldname": "mechanism_url", - "_key": "mechanism_url" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "maxLength": 128, - "description": "The record name.", - "default": "default_object_name", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "description": "The entity name: always 'update-campaign-device-metadata'.", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "format": "date-time", - "description": "The time the entity was updated.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "foreign_key": { - "group": "Device_Update", - "entity": "campaign_device_metadata" - } + ] }, - "_key": "200" - }, - { - "description": "Unauthorized.", - "_key": "401" - }, - { - "description": "Not Found.", - "_key": "404" + "_key": "403" } ], - "path": "/v3/update-campaigns/{campaign_id}/campaign-device-metadata/{campaign_device_metadata_id}", - "summary": "Get a campaign device metadata", - "return_type": "campaign_device_metadata", + "path": "/v3/api-keys/me", + "summary": "Get current API key.", + "return_type": "api_key", "return_info": { "self": true, "custom": false, - "type": "campaign_device_metadata" + "type": "api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated.", + "links": [] + }, "drop_fields": [ "object", "etag", "type", "filter", + "id", "created_at", "updated_at", - "deployment_state", - "description", - "device_id", - "mechanism", - "mechanism_url", - "name" + "key", + "name", + "groups", + "owner", + "status", + "creation_time", + "last_login_time", + "account_id" ], - "group_id": "Device_Update", + "group_id": "Accounts", "parameter_map": { - "campaign_device_metadata_id": "id" + "apikey_id": "id" }, - "operation_id": "Update_Campaign_Metadata_retrieve", + "operation_id": "getMyApiKey", + "notes": "This is provided by the SDK to avoid listing to retrieve the user's own API Key.", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "read" - } - ], - "fields": [ - { - "type": "string", - "description": "The device's campaign ID.", - "example": "015bf72fccda00000000000100100280", - "api_fieldname": "campaign", - "readOnly": false, - "required": true, - "_key": "campaign_id" - }, - { - "type": "string", - "format": "date-time", - "description": "The time the entity was created.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "description": "The state of the update campaign on the device.", - "enum": [ - "pending", - "updated_connector_channel", - "failed_connector_channel_update", - "deployed", - "manifestremoved", - "deregistered" - ], - "type": "string", - "api_fieldname": "deployment_state", - "readOnly": true, - "required": false, - "enum_reference": "campaign_device_metadata_deployment_state_enum", - "_key": "deployment_state" - }, - { - "type": "string", - "maxLength": 2000, - "description": "Description.", - "example": "a description", - "api_fieldname": "description", - "readOnly": true, - "required": false, - "_key": "description" - }, - { - "type": "string", - "description": "The device ID.", - "example": "015c2fec9bba0000000000010010036f", - "api_fieldname": "device_id", - "readOnly": true, - "required": false, - "_key": "device_id" - }, - { - "type": "string", - "description": "The metadata record ID.", - "example": "015c3029f6f7000000000001001000c3", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - }, - { - "type": "string", - "description": "How the firmware is delivered (connector or direct).", - "example": "connector", - "api_fieldname": "mechanism", - "readOnly": true, - "required": false, - "_key": "mechanism" - }, - { - "type": "string", - "description": "The Device Management Connect URL.", - "api_fieldname": "mechanism_url", - "readOnly": true, - "required": false, - "_key": "mechanism_url" - }, - { - "type": "string", - "maxLength": 128, - "description": "The record name.", - "default": "default_object_name", - "api_fieldname": "name", - "readOnly": true, - "required": false, - "_key": "name" + "_key": "me" }, { - "type": "string", - "format": "date-time", - "description": "The time the entity was updated.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "updated_at", - "readOnly": true, - "required": false, - "_key": "updated_at" - } - ], - "field_renames": [ - { - "api_fieldname": "campaign", - "_key": "campaign_id" - } - ], - "tags": [ - "Device update - campaigns" - ], - "group_id": "Device_Update", - "_key": "campaign_device_metadata" - }, - { - "swagger_models": [ - "EventTypeList", - "EventTypeSummary", - "EventTypeSummaryList" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Get a list of events grouped by summary.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012/event_types \\\n-H 'Authorization: '\n```\n", + "description": "Retrieve an array of policy groups associated with 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/api-keys/{apikey_id}/groups \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { - "description": "The campaign ID.", - "in": "path", - "name": "campaign_id", - "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, - "entity_fieldname": "campaign_id", - "api_fieldname": "campaign_id", - "external_param": false, - "parameter_fieldname": "campaign_id", - "_key": "campaign_id" + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "name": "after", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "after", + "_key": "after" }, { - "description": "The summary status. For example, fail.", + "name": "apikey_id", "in": "path", - "name": "summary_status_id", + "description": "The ID of the API key.", "required": true, "type": "string", "entity_fieldname": "id", - "api_fieldname": "summary_status_id", + "api_fieldname": "apikey_id", "external_param": false, - "parameter_fieldname": "summary_status_id", + "parameter_fieldname": "apikey_id", "_key": "id" + }, + { + "name": "include", + "in": "query", + "description": "Comma-separated additional data to return. Currently supported: total_count.", + "required": false, + "type": "string", + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "_key": "include" + }, + { + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return (2-1000). Default 50.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "name": "limit", + "in": "query", + "required": false, + "default": 50, + "external_param": true, + "parameter_fieldname": "limit", + "_key": "limit" + }, + { + "type": "string", + "description": "Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "name": "order", + "in": "query", + "required": false, + "default": "ASC", + "external_param": true, + "parameter_fieldname": "order", + "enum_reference": "api_key_order_enum", + "_key": "order" } ], "method": "get", - "mode": "events", + "mode": "policy_groups", "responses": [ { - "description": "OK.", + "description": "Successful operation.", "schema": { "type": "object", + "required": [ + "data", + "has_more", + "limit", + "object", + "total_count" + ], "properties": [ { "type": "string", - "description": "The entity ID to fetch after the given one.", - "example": "null", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", + "name": "after", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "after", "_key": "after" }, { "type": "array", + "description": "A list of entities.", "items": { "type": "object", + "required": [ + "account_id", + "apikey_count", + "etag", + "id", + "name", + "object", + "user_count" + ], "properties": [ { "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "_key": "campaign_id" + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account this group belongs to.", + "pattern": "[a-f0-9]{32}", + "_key": "account_id" }, { "type": "integer", - "example": 10, - "_key": "count" + "format": "int32", + "example": 0, + "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, + "_key": "apikey_count" + }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "_key": "application_count" }, { "type": "string", "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", "_key": "created_at" }, { "type": "string", - "example": "Update error, nonspecific network error", - "_key": "description" + "example": "1", + "description": "API resource entity version.", + "_key": "etag" }, { "type": "string", - "example": "UPD4_FAIL_101", - "_key": "event_type" + "example": "01619571dec00242ac12000600000000", + "description": "The ID of the group.", + "pattern": "[a-f0-9]{32}", + "_key": "id" }, { "type": "string", - "example": "upd_fail_101", - "_key": "id" + "maxLength": 100, + "example": "Administrators", + "description": "The name of the group.", + "_key": "name" }, { "type": "string", - "description": "Entity name: always 'event-type'.", + "description": "Entity name: always `group`.", + "enum": [ + "group" + ], "_key": "object" }, { "type": "string", - "example": "FAIL", - "_key": "summary_status" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "_key": "updated_at" }, { - "type": "string", - "example": "fail", - "_key": "summary_status_id" + "type": "integer", + "format": "int32", + "example": 1, + "description": "The number of users in this group.", + "_key": "user_count" } ], + "description": "This object contains basic information about groups.", "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics_events" + "group": "Accounts", + "entity": "subtenant_policy_group" } }, "api_fieldname": "data", @@ -18940,44 +17744,60 @@ }, { "type": "boolean", - "description": "A flag indicating whether there are more results.", - "example": "false", + "example": false, + "description": "Flag indicating whether there are more results.", "api_fieldname": "has_more", "entity_fieldname": "has_more", "_key": "has_more" }, { "type": "integer", - "description": "The number of results to return, (range: 2-1000), or equals to total_count.", - "example": "50", + "format": "int32", + "example": 50, + "description": "The number of results to return (2-1000). Default 50.", "api_fieldname": "limit", "entity_fieldname": "limit", + "name": "limit", + "in": "query", + "required": false, + "default": 50, + "external_param": true, + "parameter_fieldname": "limit", "_key": "limit" }, { "type": "string", - "description": "The entity name: always 'list'.", - "example": "list", + "description": "Entity name: always `list`.", + "enum": [ + "list" + ], "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { "type": "string", + "description": "Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.", "enum": [ "ASC", "DESC" ], - "description": "The order of the records to return. Acceptable values: ASC, DESC. Default: ASC.", - "example": "ASC", "api_fieldname": "order", "entity_fieldname": "order", + "name": "order", + "in": "query", + "required": false, + "default": "ASC", + "external_param": true, + "parameter_fieldname": "order", + "enum_reference": "subtenant_user_order_enum", "_key": "order" }, { "type": "integer", - "description": "The total number or records, if requested. It may be returned also for small lists.", - "example": "1", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", "api_fieldname": "total_count", "entity_fieldname": "total_count", "_key": "total_count" @@ -18985,14 +17805,14 @@ ], "pagination": true, "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics_events" + "group": "Accounts", + "entity": "subtenant_policy_group" } }, "_key": "200" }, { - "description": "Not Authenticated.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -19065,265 +17885,7 @@ "_key": "401" }, { - "description": "Not Found.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "404" - } - ], - "path": "/v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}/event_types", - "summary": "Get a list of events grouped by summary", - "return_type": "paginated_response(campaign_statistics_events)", - "return_info": { - "self": false, - "custom": false, - "type": "campaign_statistics_events" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "order", - "limit", - "after", - "has_more", - "total_count", - "data" - ], - "group_id": "Device_Update", - "parameter_map": { - "summary_status_id": "id" - }, - "operation_id": "Update_Campaign_event_types_list", - "pagination": true, - "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics_events" - }, - "request_content_type": "application/json", - "request_body": "json", - "_key": "events" - }, - { - "description": "Get a list of statistics for a campaign, including the number of devices reporting specific event codes.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics \\\n-H 'Authorization: '\n```\n", - "field_renames": [], - "fields": [ - { - "description": "The campaign ID.", - "in": "path", - "name": "campaign_id", - "required": true, - "type": "string", - "minLength": 32, - "maxLength": 32, - "entity_fieldname": "campaign_id", - "api_fieldname": "campaign_id", - "external_param": false, - "parameter_fieldname": "campaign_id", - "_key": "campaign_id" - } - ], - "method": "get", - "mode": "list", - "responses": [ - { - "description": "OK.", - "schema": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "The entity ID to fetch after the given one.", - "example": "null", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "_key": "campaign_id" - }, - { - "type": "integer", - "example": 10, - "_key": "count" - }, - { - "type": "string", - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "_key": "created_at" - }, - { - "type": "string", - "enum": [ - "fail", - "success", - "info", - "skipped" - ], - "example": "fail", - "description": "ID of the event type description.", - "_key": "id" - }, - { - "type": "string", - "description": "Entity name: always 'summary_status'.", - "_key": "object" - }, - { - "type": "string", - "enum": [ - "FAIL", - "SUCCESS", - "INFO", - "SKIPPED" - ], - "example": "FAIL", - "description": "The event type description.", - "_key": "summary_status" - } - ], - "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics" - } - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "description": "A flag indicating whether there are more results.", - "example": "false", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "description": "The number of results to return, (range: 2-1000), or equals to total_count.", - "example": "50", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "The entity name: always 'list'.", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The order of the records to return. Acceptable values: ASC, DESC. Default: ASC.", - "example": "ASC", - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" - }, - { - "type": "integer", - "description": "The total number or records, if requested. It may be returned also for small lists.", - "example": "1", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics" - } - }, - "_key": "200" - }, - { - "description": "Not Authenticated.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -19393,10 +17955,10 @@ } ] }, - "_key": "401" + "_key": "403" }, { - "description": "Not Found.", + "description": "An API key with the given ID does not exist.", "schema": { "type": "object", "required": [ @@ -19469,74 +18031,57 @@ "_key": "404" } ], - "path": "/v3/update-campaigns/{campaign_id}/statistics", - "summary": "Get statistics for a campaign", - "return_type": "paginated_response(campaign_statistics)", + "path": "/v3/api-keys/{apikey_id}/groups", + "summary": "Get policy groups of an API key.", + "return_type": "paginated_response(policy_group)", "return_info": { - "self": true, + "self": false, "custom": false, - "type": "campaign_statistics" + "type": "policy_group" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/groups", + "links": [] + }, "drop_fields": [ "object", "etag", "type", "filter", - "order", - "limit", - "after", - "has_more", "total_count", + "has_more", "data" ], - "foreign_key_priority": "self", - "group_id": "Device_Update", + "group_id": "Accounts", "parameter_map": { - "summary_status_id": "id" + "apikey_id": "id" }, - "operation_id": "Update_Campaign_statistics_list", - "pagination": true, + "operation_id": "getGroupsOfApikey", "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics" + "entity": "policy_group" }, + "pagination": true, "request_content_type": "application/json", "request_body": "json", - "_key": "list" + "_key": "policy_groups" }, { - "description": "Get the count of successfully updated, skipped, and failed devices. \n
\n**Usage example:**\n```\ncurl https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", + "description": "Retrieve details of an API key.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "api_fieldname": "campaign_id", - "entity_fieldname": "campaign_id", - "parameter_fieldname": "campaign_id", - "in": "path", - "required": true, - "_key": "campaign_id" - }, - { - "type": "string", - "enum": [ - "fail", - "success", - "info", - "skipped" - ], - "example": "fail", - "description": "ID of the event type description.", + "example": "01619571f7020242ac12000600000000", + "description": "The ID of the API key.", + "pattern": "[a-f0-9]{32}", "api_fieldname": "id", "entity_fieldname": "id", - "parameter_fieldname": "summary_status_id", + "parameter_fieldname": "apikey_id", "in": "path", "required": true, - "enum_reference": "campaign_statistics_id_enum", "_key": "id" } ], @@ -19544,151 +18089,148 @@ "mode": "read", "responses": [ { - "description": "OK.", + "description": "Successful operation.", "schema": { "type": "object", + "required": [ + "etag", + "id", + "key", + "name", + "object" + ], "properties": [ { "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "api_fieldname": "campaign_id", - "entity_fieldname": "campaign_id", - "_key": "campaign_id" - }, - { - "type": "integer", - "example": 10, - "api_fieldname": "count", - "entity_fieldname": "count", - "_key": "count" + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" }, { "type": "string", "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", "api_fieldname": "created_at", "entity_fieldname": "created_at", "_key": "created_at" }, { - "type": "string", - "enum": [ - "fail", - "success", - "info", - "skipped" - ], - "example": "fail", - "description": "ID of the event type description.", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "string", - "description": "Entity name: always 'summary_status'.", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "type": "integer", + "format": "int64", + "example": 1518630727683, + "description": "The timestamp of the API key creation in the storage, in milliseconds.", + "api_fieldname": "creation_time", + "entity_fieldname": "creation_time", + "_key": "creation_time" }, { "type": "string", - "enum": [ - "FAIL", - "SUCCESS", - "INFO", - "SKIPPED" - ], - "example": "FAIL", - "description": "The event type description.", - "api_fieldname": "summary_status", - "entity_fieldname": "summary_status", - "_key": "summary_status" - } - ], - "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics" - } - }, - "_key": "200" - }, - { - "description": "Not Authenticated.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "example": "1", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of group IDs this API key belongs to.", "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] + "type": "string" }, - "_key": "fields" + "api_fieldname": "groups", + "entity_fieldname": "groups", + "_key": "groups" + }, + { + "type": "string", + "example": "01619571f7020242ac12000600000000", + "description": "The ID of the API key.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "string", + "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", + "description": "The API key.", + "api_fieldname": "key", + "entity_fieldname": "key", + "_key": "key" + }, + { + "type": "integer", + "format": "int64", + "example": 1518630727688, + "description": "The timestamp of the latest API key usage, in milliseconds.", + "api_fieldname": "last_login_time", + "entity_fieldname": "last_login_time", + "_key": "last_login_time" }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "maxLength": 100, + "example": "API key gorgon", + "description": "The display name for the API key.", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" }, { "type": "string", - "description": "Entity name, always `error`.", + "description": "Entity name: always 'api-key'", "enum": [ - "error" + "api-key" ], + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "example": "01619571e2e89242ac12000600000000", + "description": "The owner of this API key, who is the creator by default.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "owner", + "entity_fieldname": "owner", + "_key": "owner" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" + "example": "ACTIVE", + "description": "The status of the API key.", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" } - ] + ], + "description": "Represents an API key in Device Management.", + "foreign_key": { + "group": "Accounts", + "entity": "subtenant_api_key" + } }, - "_key": "401" + "_key": "200" }, { - "description": "Not Found.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -19758,231 +18300,10 @@ } ] }, - "_key": "404" - } - ], - "path": "/v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}", - "summary": "Get a status summary", - "return_type": "campaign_statistics", - "return_info": { - "self": true, - "custom": false, - "type": "campaign_statistics" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "summary_status", - "count", - "created_at" - ], - "group_id": "Device_Update", - "parameter_map": { - "summary_status_id": "id" - }, - "operation_id": "Update_Campaign_statistics_retrieve", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "read" - } - ], - "fields": [ - { - "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "api_fieldname": "campaign_id", - "readOnly": false, - "required": true, - "_key": "campaign_id" - }, - { - "type": "integer", - "example": 10, - "api_fieldname": "count", - "readOnly": true, - "required": false, - "_key": "count" - }, - { - "type": "string", - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "enum": [ - "fail", - "success", - "info", - "skipped" - ], - "example": "fail", - "description": "ID of the event type description.", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "enum_reference": "campaign_statistics_id_enum", - "_key": "id" - }, - { - "type": "string", - "enum": [ - "FAIL", - "SUCCESS", - "INFO", - "SKIPPED" - ], - "example": "FAIL", - "description": "The event type description.", - "api_fieldname": "summary_status", - "readOnly": true, - "required": false, - "enum_reference": "campaign_statistics_summary_status_enum", - "_key": "summary_status" - } - ], - "field_renames": [], - "tags": [ - "Device update - campaigns" - ], - "group_id": "Device_Update", - "_key": "campaign_statistics" - }, - { - "swagger_models": [ - "EventType" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Get the count for a specific event type; for example, succeeded, failed, or skipped.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012/event_types/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", - "field_renames": [], - "fields": [ - { - "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "api_fieldname": "campaign_id", - "entity_fieldname": "campaign_id", - "parameter_fieldname": "campaign_id", - "in": "path", - "required": true, - "_key": "campaign_id" - }, - { - "type": "string", - "example": "upd_fail_101", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "event_type_id", - "in": "path", - "required": true, - "_key": "id" - }, - { - "type": "string", - "example": "fail", - "api_fieldname": "summary_status_id", - "entity_fieldname": "summary_status_id", - "parameter_fieldname": "summary_status_id", - "in": "path", - "required": true, - "_key": "summary_status_id" - } - ], - "method": "get", - "mode": "read", - "responses": [ - { - "description": "OK.", - "schema": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "api_fieldname": "campaign_id", - "entity_fieldname": "campaign_id", - "_key": "campaign_id" - }, - { - "type": "integer", - "example": 10, - "api_fieldname": "count", - "entity_fieldname": "count", - "_key": "count" - }, - { - "type": "string", - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "string", - "example": "Update error, nonspecific network error", - "api_fieldname": "description", - "entity_fieldname": "description", - "_key": "description" - }, - { - "type": "string", - "example": "UPD4_FAIL_101", - "api_fieldname": "event_type", - "entity_fieldname": "event_type", - "_key": "event_type" - }, - { - "type": "string", - "example": "upd_fail_101", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "string", - "description": "Entity name: always 'event-type'.", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "example": "FAIL", - "api_fieldname": "summary_status", - "entity_fieldname": "summary_status", - "_key": "summary_status" - }, - { - "type": "string", - "example": "fail", - "api_fieldname": "summary_status_id", - "entity_fieldname": "summary_status_id", - "_key": "summary_status_id" - } - ], - "foreign_key": { - "group": "Device_Update", - "entity": "campaign_statistics_events" - } - }, - "_key": "200" + "_key": "401" }, { - "description": "Not Authenticated.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -20052,10 +18373,10 @@ } ] }, - "_key": "401" + "_key": "403" }, { - "description": "Not Found.", + "description": "An API key with the specified ID does not exist.", "schema": { "type": "object", "required": [ @@ -20128,384 +18449,267 @@ "_key": "404" } ], - "path": "/v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}/event_types/{event_type_id}", - "summary": "Get an event type for a campaign", - "return_type": "campaign_statistics_events", + "path": "/v3/api-keys/{apikey_id}", + "summary": "Get API key.", + "return_type": "api_key", "return_info": { "self": true, "custom": false, - "type": "campaign_statistics_events" + "type": "api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id}", + "links": [] + }, "drop_fields": [ "object", "etag", "type", "filter", "created_at", - "event_type", - "description", - "summary_status", - "count" + "updated_at", + "key", + "name", + "groups", + "owner", + "status", + "creation_time", + "last_login_time", + "account_id" ], - "group_id": "Device_Update", + "group_id": "Accounts", "parameter_map": { - "event_type_id": "id" + "apikey_id": "id" }, - "operation_id": "Update_Campaign_event_types_retrieve", + "operation_id": "getApiKey", "pagination": false, "request_content_type": "application/json", "request_body": "json", "_key": "read" - } - ], - "fields": [ - { - "type": "string", - "example": "00000000000000000000000000000000", - "description": "ID of the associated campaign.", - "api_fieldname": "campaign_id", - "readOnly": false, - "required": true, - "_key": "campaign_id" - }, - { - "type": "integer", - "example": 10, - "api_fieldname": "count", - "readOnly": true, - "required": false, - "_key": "count" - }, - { - "type": "string", - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "example": "Update error, nonspecific network error", - "api_fieldname": "description", - "readOnly": true, - "required": false, - "_key": "description" - }, - { - "type": "string", - "example": "UPD4_FAIL_101", - "api_fieldname": "event_type", - "readOnly": true, - "required": false, - "_key": "event_type" - }, - { - "type": "string", - "example": "upd_fail_101", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - }, - { - "type": "string", - "example": "FAIL", - "api_fieldname": "summary_status", - "readOnly": true, - "required": false, - "_key": "summary_status" }, { - "type": "string", - "example": "fail", - "api_fieldname": "summary_status_id", - "readOnly": false, - "required": true, - "_key": "summary_status_id" - } - ], - "field_renames": [], - "tags": [ - "Device update - campaigns" - ], - "group_id": "Device_Update", - "_key": "campaign_statistics_events" - }, - { - "swagger_models": [ - "CertificateEnrollment", - "CertificateEnrollmentListResponse" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Get certificate enrollments list, optionally filtered.\n\n**Examples:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments \\\n-H 'Authorization: Bearer '\n```\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments?device_id__eq=01612df56f3b0a580a010fc700000000 \\\n-H 'Authorization: Bearer '\n```", + "description": "Update API key details.\n\n**Example:**\n`curl -X PUT https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestApiKey25\"}'\n```", "field_renames": [], "fields": [ { - "type": "string", - "description": "The ID of the item after which to retrieve the next page.", - "example": "01625daa23230a580a0100bd00000000", - "api_fieldname": "after", - "entity_fieldname": "after", - "name": "after", - "in": "query", - "pattern": "[0-9a-fA-F]{32}", + "type": "array", + "description": "A list of group IDs this API key belongs to.", + "items": { + "type": "string" + }, + "api_fieldname": "groups", + "entity_fieldname": "groups", + "parameter_fieldname": "groups", + "in": "body", "required": false, - "external_param": true, - "parameter_fieldname": "after", - "_key": "after" + "_key": "groups" }, { - "name": "include", - "in": "query", - "description": "a comma-separated list of data fields to return.", - "required": false, "type": "string", - "enum": [ - "total_count" - ], - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "enum_reference": "certificate_enrollment_include_enum", - "_key": "include" + "example": "01619571f7020242ac12000600000000", + "description": "The ID of the API key.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "apikey_id", + "in": "path", + "required": true, + "_key": "id" }, { - "type": "integer", - "format": "int32", - "description": "The number of results to return (2-1000).", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "name": "limit", - "in": "query", + "type": "string", + "maxLength": 100, + "example": "API key gorgon", + "description": "The display name for the API key.", + "api_fieldname": "name", + "entity_fieldname": "name", + "parameter_fieldname": "name", + "in": "body", "required": false, - "external_param": true, - "parameter_fieldname": "limit", - "_key": "limit" + "_key": "name" }, { "type": "string", - "description": "The order of results.", + "example": "01619571e2e89242ac12000600000000", + "description": "The owner of this API key, who is the creator by default.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "owner", + "entity_fieldname": "owner", + "parameter_fieldname": "owner", + "in": "body", + "required": false, + "_key": "owner" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the API key.", "enum": [ - "ASC", - "DESC" + "ACTIVE", + "INACTIVE" ], - "api_fieldname": "order", - "entity_fieldname": "order", - "name": "order", - "in": "query", + "api_fieldname": "status", + "entity_fieldname": "status", + "parameter_fieldname": "status", + "in": "body", "required": false, - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "certificate_enrollment_order_enum", - "_key": "order" + "enum_reference": "api_key_status_enum", + "_key": "status" } ], - "method": "get", - "mode": "list", + "method": "put", + "mode": "update", "responses": [ { - "description": "OK.", + "description": "Successful operation.", "schema": { "type": "object", + "required": [ + "etag", + "id", + "key", + "name", + "object" + ], "properties": [ { "type": "string", - "description": "The entity ID to fetch after the given one.", - "example": "01625daa23230a580a0100bd00000000", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "integer", + "format": "int64", + "example": 1518630727683, + "description": "The timestamp of the API key creation in the storage, in milliseconds.", + "api_fieldname": "creation_time", + "entity_fieldname": "creation_time", + "_key": "creation_time" + }, + { + "type": "string", + "example": "1", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" }, { "type": "array", + "description": "A list of group IDs this API key belongs to.", "items": { - "type": "object", - "properties": [ - { - "type": "string", - "maxLength": 50, - "description": "The certificate name.", - "example": "customer.dlms", - "api_fieldname": "certificate-name", - "entity_fieldname": "certificate_name", - "in": "path", - "name": "certificate-name", - "required": true, - "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", - "external_param": true, - "parameter_fieldname": "certificate-name", - "_key": "certificate_name" - }, - { - "type": "string", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "string", - "description": "The device ID.", - "example": "01625daa23230a580a0100bd00000000", - "api_fieldname": "device_id", - "entity_fieldname": "device_id", - "_key": "device_id" - }, - { - "type": "string", - "enum": [ - "success", - "failure" - ], - "description": "The result of certificate enrollment request.", - "example": "success", - "api_fieldname": "enroll_result", - "entity_fieldname": "enroll_result", - "_key": "enroll_result" - }, - { - "type": "string", - "description": "Additional information in case of failure.", - "example": "The device is currently processing too many certificate renewals.", - "api_fieldname": "enroll_result_detail", - "entity_fieldname": "enroll_result_detail", - "_key": "enroll_result_detail" - }, - { - "type": "string", - "description": "The status of certificate enrollment request.", - "enum": [ - "new", - "completed" - ], - "api_fieldname": "enroll_status", - "entity_fieldname": "enroll_status", - "_key": "enroll_status" - }, - { - "type": "string", - "description": "Entity instance signature.", - "example": "1", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, - { - "type": "string", - "description": "The certificate enrollment ID.", - "example": "01612df56f3b0a580a010fc700000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "device-id", - "in": "path", - "required": true, - "_key": "id" - }, - { - "type": "string", - "enum": [ - "certificate-enrollment" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "format": "date-time", - "description": "Update UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" - } - ], - "required": [ - "created_at", - "etag", - "id", - "device_id", - "certificate_name" - ], - "foreign_key": { - "group": "Security", - "entity": "certificate_enrollment" - } + "type": "string" }, - "description": "List of certificate enrollments.", - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" + "api_fieldname": "groups", + "entity_fieldname": "groups", + "_key": "groups" }, { - "type": "boolean", - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" + "type": "string", + "example": "01619571f7020242ac12000600000000", + "description": "The ID of the API key.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "string", + "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", + "description": "The API key.", + "api_fieldname": "key", + "entity_fieldname": "key", + "_key": "key" }, { "type": "integer", - "format": "int32", - "description": "The number of results to return.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" + "format": "int64", + "example": 1518630727688, + "description": "The timestamp of the latest API key usage, in milliseconds.", + "api_fieldname": "last_login_time", + "entity_fieldname": "last_login_time", + "_key": "last_login_time" + }, + { + "type": "string", + "maxLength": 100, + "example": "API key gorgon", + "description": "The display name for the API key.", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" }, { "type": "string", + "description": "Entity name: always 'api-key'", "enum": [ - "list" + "api-key" ], - "description": "Describes the type of objects in the list.", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "Record order based on creation time. Acceptable values: ASC, DESC. Default: ASC.", + "example": "01619571e2e89242ac12000600000000", + "description": "The owner of this API key, who is the creator by default.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "owner", + "entity_fieldname": "owner", + "_key": "owner" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the API key.", "enum": [ - "ASC", - "DESC" + "ACTIVE", + "INACTIVE" ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" }, { - "type": "integer", - "format": "int32", - "description": "The total number of records.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" } ], - "pagination": true, + "description": "Represents an API key in Device Management.", "foreign_key": { - "group": "Security", - "entity": "certificate_enrollment" + "group": "Accounts", + "entity": "subtenant_api_key" } }, "_key": "200" }, { - "description": "Validation error.", + "description": "Error in input data, for example, invalid API key name.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -20515,24 +18719,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -20540,22 +18749,28 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] @@ -20563,12 +18778,11 @@ "_key": "400" }, { - "description": "Unauthorized.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -20578,24 +18792,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -20603,22 +18822,28 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] @@ -20626,12 +18851,11 @@ "_key": "401" }, { - "description": "Forbidden.", + "description": "Forbidden. Only the owner of the API key or an administrator can update an API key.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -20641,24 +18865,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -20666,107 +18895,309 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] }, "_key": "403" + }, + { + "description": "An API key with the specified ID does not exist.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "404" } ], - "path": "/v3/certificate-enrollments", - "summary": "Get certificate enrollments list.", - "return_type": "paginated_response(certificate_enrollment)", + "path": "/v3/api-keys/{apikey_id}", + "summary": "Update API key details.", + "return_type": "api_key", "return_info": { "self": true, "custom": false, - "type": "certificate_enrollment" + "type": "api_key" }, - "x_filter": { - "device_id": [ - "eq" - ], - "certificate_name": [ - "eq" - ], - "enroll_status": [ - "neq", - "eq" - ], - "enroll_result": [ - "neq", - "eq" - ], - "created_at": [ - "lte", - "gte" - ], - "updated_at": [ - "lte", - "gte" - ] + "x_filter": {}, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use PUT https://api.us-east-1.mbedcloud.com/v3/applications/{application_id}/access-keys/{access_key_id}", + "links": [] + }, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "created_at", + "updated_at", + "key", + "creation_time", + "last_login_time", + "account_id" + ], + "group_id": "Accounts", + "parameter_map": { + "apikey_id": "id" + }, + "operation_id": "updateApiKey", + "additional_operations": [ + { + "operation_id": "updateMyApiKey", + "notes": "After retrieving the resource using the `me` method, it can modified using using this SDK method." + } + ], + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "update" + } + ], + "fields": [ + { + "type": "string", + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "account_id", + "readOnly": true, + "required": false, + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "integer", + "format": "int64", + "example": 1518630727683, + "description": "The timestamp of the API key creation in the storage, in milliseconds.", + "api_fieldname": "creation_time", + "readOnly": true, + "required": false, + "_key": "creation_time" + }, + { + "type": "array", + "description": "A list of group IDs this API key belongs to.", + "items": { + "type": "string" }, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "total_count", - "has_more", - "data", - "device_id__eq", - "certificate_name__eq", - "enroll_status__neq", - "enroll_status__eq", - "enroll_result__neq", - "enroll_result__eq", - "created_at__lte", - "created_at__gte", - "updated_at__lte", - "updated_at__gte" + "api_fieldname": "groups", + "readOnly": false, + "required": false, + "_key": "groups" + }, + { + "type": "string", + "example": "01619571f7020242ac12000600000000", + "description": "The ID of the API key.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "_key": "id" + }, + { + "type": "string", + "example": "ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000", + "description": "The API key.", + "api_fieldname": "key", + "readOnly": true, + "required": false, + "_key": "key" + }, + { + "type": "integer", + "format": "int64", + "example": 1518630727688, + "description": "The timestamp of the latest API key usage, in milliseconds.", + "api_fieldname": "last_login_time", + "readOnly": true, + "required": false, + "_key": "last_login_time" + }, + { + "type": "string", + "maxLength": 100, + "example": "API key gorgon", + "description": "The display name for the API key.", + "api_fieldname": "name", + "readOnly": false, + "required": true, + "_key": "name" + }, + { + "type": "string", + "example": "01619571e2e89242ac12000600000000", + "description": "The owner of this API key, who is the creator by default.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "owner", + "readOnly": false, + "required": false, + "_key": "owner" + }, + { + "type": "string", + "example": "ACTIVE", + "description": "The status of the API key.", + "enum": [ + "ACTIVE", + "INACTIVE" ], - "foreign_key_priority": "self", - "group_id": "Security", - "parameter_map": { - "certificate-enrollment-id": "id" - }, - "operation_id": "getCertificateEnrollments", - "pagination": true, - "foreign_key": { - "group": "Security", - "entity": "certificate_enrollment" - }, - "request_content_type": "application/json", - "request_body": "json", - "_key": "list" + "api_fieldname": "status", + "readOnly": false, + "required": false, + "enum_reference": "api_key_status_enum", + "_key": "status" }, { - "description": "Get a certificate enrollment by ID.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments/01612df56f3b0a580a010fc700000000 \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "readOnly": true, + "required": false, + "_key": "updated_at" + } + ], + "field_renames": [], + "tags": [ + "Account - API keys" + ], + "group_id": "Accounts", + "_key": "api_key" + }, + { + "swagger_models": [ + "CampaignDeviceMetadata" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Get update campaign metadata for a specific device.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/5d645eaec2315a89900000655cd94fa8/campaign-device-metadata/016e83ddc645000000000001001000f6 \\\n-H 'Authorization: Bearer '\n```\n", + "field_renames": [ + { + "api_fieldname": "campaign", + "_key": "campaign_id" + } + ], "fields": [ { "type": "string", - "description": "The certificate enrollment ID.", - "example": "01612df56f3b0a580a010fc700000000", + "description": "The device's campaign ID.", + "example": "015bf72fccda00000000000100100280", + "api_fieldname": "campaign", + "entity_fieldname": "campaign_id", + "parameter_fieldname": "campaign_id", + "in": "path", + "required": true, + "_key": "campaign_id" + }, + { + "type": "string", + "description": "The metadata record ID.", + "pattern": "[A-Fa-f0-9]{32}", + "example": "015c3029f6f7000000000001001000c3", "api_fieldname": "id", "entity_fieldname": "id", - "parameter_fieldname": "certificate-enrollment-id", + "parameter_fieldname": "campaign_device_metadata_id", "in": "path", "required": true, "_key": "id" @@ -20776,97 +19207,104 @@ "mode": "read", "responses": [ { - "description": "OK.", + "description": "Request successful.", "schema": { "type": "object", "properties": [ { "type": "string", - "maxLength": 50, - "description": "The certificate name.", - "example": "customer.dlms", - "api_fieldname": "certificate_name", - "entity_fieldname": "certificate_name", - "in": "path", - "name": "certificate-name", - "required": true, - "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", - "external_param": true, - "parameter_fieldname": "certificate-name", - "_key": "certificate_name" + "description": "The device's campaign ID.", + "example": "015bf72fccda00000000000100100280", + "api_fieldname": "campaign", + "entity_fieldname": "campaign_id", + "_key": "campaign" }, { "type": "string", "format": "date-time", - "description": "Creation UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", + "description": "The time the entity was created.", + "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "created_at", "entity_fieldname": "created_at", "_key": "created_at" }, { - "type": "string", - "description": "The device ID.", - "example": "01625daa23230a580a0100bd00000000", - "api_fieldname": "device_id", - "entity_fieldname": "device_id", - "_key": "device_id" - }, - { - "type": "string", + "description": "The state of the update campaign on the device.", "enum": [ - "success", - "failure" + "pending", + "updated_connector_channel", + "failed_connector_channel_update", + "deployed", + "manifestremoved", + "deregistered" ], - "description": "The result of certificate enrollment request.", - "example": "success", - "api_fieldname": "enroll_result", - "entity_fieldname": "enroll_result", - "_key": "enroll_result" + "type": "string", + "api_fieldname": "deployment_state", + "entity_fieldname": "deployment_state", + "_key": "deployment_state" }, { "type": "string", - "description": "Additional information in case of failure.", - "example": "The device is currently processing too many certificate renewals.", - "api_fieldname": "enroll_result_detail", - "entity_fieldname": "enroll_result_detail", - "_key": "enroll_result_detail" + "maxLength": 2000, + "description": "Description.", + "example": "a description", + "api_fieldname": "description", + "entity_fieldname": "description", + "_key": "description" }, { "type": "string", - "description": "The status of certificate enrollment request.", - "enum": [ - "new", - "completed" - ], - "api_fieldname": "enroll_status", - "entity_fieldname": "enroll_status", - "_key": "enroll_status" + "description": "The device ID.", + "example": "015c2fec9bba0000000000010010036f", + "api_fieldname": "device_id", + "entity_fieldname": "device_id", + "_key": "device_id" }, { "type": "string", - "description": "Entity instance signature.", - "example": "1", + "description": "API resource entity version.", + "example": "2017-05-22T12:37:58.753425Z", "api_fieldname": "etag", "entity_fieldname": "etag", "_key": "etag" }, { "type": "string", - "description": "The certificate enrollment ID.", - "example": "01612df56f3b0a580a010fc700000000", + "description": "The metadata record ID.", + "pattern": "[A-Fa-f0-9]{32}", + "example": "015c3029f6f7000000000001001000c3", "api_fieldname": "id", "entity_fieldname": "id", - "parameter_fieldname": "device-id", - "in": "path", - "required": true, "_key": "id" }, { "type": "string", - "enum": [ - "certificate-enrollment" - ], + "description": "How the firmware is delivered (connector or direct).", + "example": "connector", + "api_fieldname": "mechanism", + "entity_fieldname": "mechanism", + "_key": "mechanism" + }, + { + "type": "string", + "description": "The Device Management Connect URL.", + "api_fieldname": "mechanism_url", + "entity_fieldname": "mechanism_url", + "_key": "mechanism_url" + }, + { + "type": "string", + "maxLength": 128, + "description": "The record name.", + "default": "default_object_name", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" + }, + { + "type": "string", + "description": "The entity name: always 'update-campaign-device-metadata'.", + "example": "update-campaign-device-metadata", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" @@ -20874,160 +19312,369 @@ { "type": "string", "format": "date-time", - "description": "Update UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", + "description": "The time the entity was updated.", + "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "updated_at", "entity_fieldname": "updated_at", "_key": "updated_at" } ], - "required": [ - "created_at", - "etag", - "id", - "device_id", - "certificate_name" - ], "foreign_key": { - "group": "Devices", - "entity": "device" + "group": "Device_Update", + "entity": "campaign_device_metadata" } }, "_key": "200" }, { - "description": "Validation error.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "400" + "description": "Unauthorized.", + "_key": "401" + }, + { + "description": "Not Found.", + "_key": "404" + } + ], + "path": "/v3/update-campaigns/{campaign_id}/campaign-device-metadata/{campaign_device_metadata_id}", + "summary": "Get a campaign device metadata", + "return_type": "campaign_device_metadata", + "return_info": { + "self": true, + "custom": false, + "type": "campaign_device_metadata" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "created_at", + "updated_at", + "deployment_state", + "description", + "device_id", + "mechanism", + "mechanism_url", + "name" + ], + "group_id": "Device_Update", + "parameter_map": { + "campaign_device_metadata_id": "id" + }, + "operation_id": "Update_Campaign_Metadata_retrieve", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "read" + } + ], + "fields": [ + { + "type": "string", + "description": "The device's campaign ID.", + "example": "015bf72fccda00000000000100100280", + "api_fieldname": "campaign", + "readOnly": false, + "required": true, + "_key": "campaign_id" + }, + { + "type": "string", + "format": "date-time", + "description": "The time the entity was created.", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "description": "The state of the update campaign on the device.", + "enum": [ + "pending", + "updated_connector_channel", + "failed_connector_channel_update", + "deployed", + "manifestremoved", + "deregistered" + ], + "type": "string", + "api_fieldname": "deployment_state", + "readOnly": true, + "required": false, + "enum_reference": "campaign_device_metadata_deployment_state_enum", + "_key": "deployment_state" + }, + { + "type": "string", + "maxLength": 2000, + "description": "Description.", + "example": "a description", + "api_fieldname": "description", + "readOnly": true, + "required": false, + "_key": "description" + }, + { + "type": "string", + "description": "The device ID.", + "example": "015c2fec9bba0000000000010010036f", + "api_fieldname": "device_id", + "readOnly": true, + "required": false, + "_key": "device_id" + }, + { + "type": "string", + "description": "The metadata record ID.", + "pattern": "[A-Fa-f0-9]{32}", + "example": "015c3029f6f7000000000001001000c3", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "_key": "id" + }, + { + "type": "string", + "description": "How the firmware is delivered (connector or direct).", + "example": "connector", + "api_fieldname": "mechanism", + "readOnly": true, + "required": false, + "_key": "mechanism" + }, + { + "type": "string", + "description": "The Device Management Connect URL.", + "api_fieldname": "mechanism_url", + "readOnly": true, + "required": false, + "_key": "mechanism_url" + }, + { + "type": "string", + "maxLength": 128, + "description": "The record name.", + "default": "default_object_name", + "api_fieldname": "name", + "readOnly": true, + "required": false, + "_key": "name" + }, + { + "type": "string", + "format": "date-time", + "description": "The time the entity was updated.", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "updated_at", + "readOnly": true, + "required": false, + "_key": "updated_at" + } + ], + "field_renames": [ + { + "api_fieldname": "campaign", + "_key": "campaign_id" + } + ], + "tags": [ + "Device update - campaigns" + ], + "group_id": "Device_Update", + "_key": "campaign_device_metadata" + }, + { + "swagger_models": [ + "EventTypeList", + "EventTypeSummary", + "EventTypeSummaryList" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Get a list of events grouped by summary.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/skipped/event_types \\\n-H 'Authorization: Bearer '\n```\n", + "field_renames": [], + "fields": [ + { + "description": "The campaign ID.", + "in": "path", + "name": "campaign_id", + "required": true, + "type": "string", + "pattern": "[A-Fa-f0-9]{32}", + "entity_fieldname": "campaign_id", + "api_fieldname": "campaign_id", + "external_param": false, + "parameter_fieldname": "campaign_id", + "_key": "campaign_id" }, { - "description": "Unauthorized.", + "description": "The summary status. For example, fail.", + "in": "path", + "name": "summary_status_id", + "required": true, + "type": "string", + "enum": [ + "fail", + "success", + "info", + "skipped" + ], + "entity_fieldname": "id", + "api_fieldname": "summary_status_id", + "external_param": false, + "parameter_fieldname": "summary_status_id", + "enum_reference": "campaign_statistics_id_enum", + "_key": "id" + } + ], + "method": "get", + "mode": "events", + "responses": [ + { + "description": "OK.", "schema": { "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], "properties": [ { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" + "type": "string", + "description": "The entity ID to fetch after the given one.", + "example": "null", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { "type": "array", - "description": "A list of request fields that failed validation.", "items": { "type": "object", "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "example": "016e652be671000000000001001001e5", + "description": "ID of the associated campaign.", + "_key": "campaign_id" + }, + { + "type": "integer", + "example": 10, + "_key": "count" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "_key": "created_at" + }, + { + "type": "string", + "example": "Update error, nonspecific network error", + "_key": "description" + }, + { + "type": "string", + "example": "UPD4_FAIL_101", + "_key": "event_type" + }, + { + "type": "string", + "example": "upd_fail_101", + "_key": "id" + }, + { + "type": "string", + "description": "Entity name: always 'event-type'.", + "example": "event-type", + "_key": "object" + }, + { + "type": "string", + "example": "FAIL", + "_key": "summary_status" + }, + { + "type": "string", + "example": "fail", + "_key": "summary_status_id" } - ] + ], + "foreign_key": { + "group": "Device_Update", + "entity": "campaign_statistics_events" + } }, - "_key": "fields" + "enum": [ + "fail", + "skipped", + "info", + "success" + ], + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "description": "Error message.", - "_key": "message" + "type": "boolean", + "description": "A flag indicating whether there are more results.", + "example": "false", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "description": "The number of results to return, (range: 2-1000), or equals to total_count.", + "example": "50", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "The entity name: always 'list'.", + "example": "list", + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" + "enum": [ + "ASC", + "DESC" + ], + "description": "The order of the records to return. Acceptable values: ASC, DESC. Default: ASC.", + "example": "ASC", + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "description": "Error type.", - "_key": "type" + "type": "integer", + "description": "The total number or records, if requested. It may be returned also for small lists.", + "example": "1", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } - ] + ], + "pagination": true, + "foreign_key": { + "group": "Device_Update", + "entity": "campaign_statistics_events" + } }, - "_key": "401" + "_key": "200" }, { - "description": "Forbidden.", + "description": "Not Authenticated.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -21037,24 +19684,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -21062,35 +19714,40 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] }, - "_key": "403" + "_key": "401" }, { - "description": "Not found.", + "description": "Not Found.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -21100,24 +19757,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -21125,22 +19787,28 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] @@ -21148,13 +19816,13 @@ "_key": "404" } ], - "path": "/v3/certificate-enrollments/{certificate-enrollment-id}", - "summary": "Get a certificate enrollment by ID.", - "return_type": "certificate_enrollment", + "path": "/v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}/event_types", + "summary": "Get a list of events grouped by summary", + "return_type": "paginated_response(campaign_statistics_events)", "return_info": { - "self": true, + "self": false, "custom": false, - "type": "certificate_enrollment" + "type": "campaign_statistics_events" }, "x_filter": {}, "x_deprecation": null, @@ -21163,314 +19831,182 @@ "etag", "type", "filter", - "created_at", - "device_id", - "certificate_name", - "enroll_status", - "enroll_result", - "enroll_result_detail", - "updated_at" + "order", + "limit", + "after", + "has_more", + "total_count", + "data" ], - "group_id": "Security", + "group_id": "Device_Update", "parameter_map": { - "certificate-enrollment-id": "id" + "summary_status_id": "id" + }, + "operation_id": "Update_Campaign_event_types_list", + "pagination": true, + "foreign_key": { + "group": "Device_Update", + "entity": "campaign_statistics_events" }, - "operation_id": "getCertificateEnrollment", - "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "read" - } - ], - "fields": [ - { - "type": "string", - "maxLength": 50, - "description": "The certificate name.", - "example": "customer.dlms", - "api_fieldname": "certificate_name", - "in": "path", - "name": "certificate-name", - "required": false, - "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", - "external_param": true, - "parameter_fieldname": "certificate-name", - "readOnly": true, - "_key": "certificate_name" - }, - { - "type": "string", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "description": "The device ID.", - "example": "01625daa23230a580a0100bd00000000", - "api_fieldname": "device_id", - "readOnly": true, - "required": false, - "_key": "device_id" - }, - { - "type": "string", - "enum": [ - "success", - "failure" - ], - "description": "The result of certificate enrollment request.", - "example": "success", - "api_fieldname": "enroll_result", - "readOnly": true, - "required": false, - "enum_reference": "certificate_enrollment_enroll_result_enum", - "_key": "enroll_result" - }, - { - "type": "string", - "description": "Additional information in case of failure.", - "example": "The device is currently processing too many certificate renewals.", - "api_fieldname": "enroll_result_detail", - "readOnly": true, - "required": false, - "_key": "enroll_result_detail" - }, - { - "type": "string", - "description": "The status of certificate enrollment request.", - "enum": [ - "new", - "completed" - ], - "api_fieldname": "enroll_status", - "readOnly": true, - "required": false, - "enum_reference": "certificate_enrollment_enroll_status_enum", - "_key": "enroll_status" - }, - { - "type": "string", - "description": "The certificate enrollment ID.", - "example": "01612df56f3b0a580a010fc700000000", - "api_fieldname": "id", - "parameter_fieldname": "device-id", - "in": "path", - "required": true, - "readOnly": false, - "_key": "id" + "_key": "events" }, { - "type": "string", - "format": "date-time", - "description": "Update UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "updated_at", - "readOnly": true, - "required": false, - "_key": "updated_at" - } - ], - "field_renames": [], - "tags": [ - "Device security - device certificate renewals" - ], - "group_id": "Security", - "_key": "certificate_enrollment" - }, - { - "swagger_models": [ - "CertificateIssuerInfo", - "CertificateIssuerInfoListResponse", - "CertificateIssuerRequest", - "CertificateIssuerUpdateRequest", - "CertificateIssuerVerifyResponse" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Create a certificate issuer.\nThe maximum number of issuers is limited to 20 per account.\nMultiple certificate issuers of the same issuer type can be created, provided they have a different name. This allows verification of the certificate issuer configuration before activating it.\n
\n**Example usage:**\n\n```\ncurl -X POST \\\n-H 'authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers \\\n-d '{\n \"issuer_type\": \"GLOBAL_SIGN\",\n \"name\": \"GS Issuer\",\n \"description\": \"Sample GlobalSign certificate issuer\",\n \"issuer_attributes\": null,\n \"issuer_credentials\": {\n \"api_key\": \"e510e289e6cd8947\",\n \"api_secret\": \"a477a8393d17a55ecb2ba6a61f58feb84770b621\",\n \"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-----\",\n \"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-----\",\n \"passphrase\": \"helloworld\"\n }\n}'\n```\n", + "description": "Get a list of statistics for a campaign, including the number of devices reporting specific event codes.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56780120000789012/statistics \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { - "type": "string", - "maxLength": 100, - "description": "General description for the certificate issuer.", - "example": "GlobalSign sample issuer", - "x-nullable": true, - "api_fieldname": "description", - "entity_fieldname": "description", - "parameter_fieldname": "description", - "in": "body", - "required": false, - "_key": "description" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value shall be empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.\n", - "example": [], - "api_fieldname": "issuer_attributes", - "entity_fieldname": "issuer_attributes", - "parameter_fieldname": "issuer_attributes", - "in": "body", - "required": false, - "_key": "issuer_attributes" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "The credentials required for connecting to the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.\n", - "example": [], - "name": "issuer_credentials", - "in": "body", - "schema_param": true, - "entity_fieldname": "issuer_credentials", - "api_fieldname": "issuer_credentials", - "external_param": true, - "parameter_fieldname": "issuer_credentials", - "required": true, - "_key": "issuer_credentials" - }, - { - "type": "string", - "enum": [ - "GLOBAL_SIGN", - "CFSSL_AUTH" - ], - "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", - "example": "GLOBAL_SIGN", - "api_fieldname": "issuer_type", - "entity_fieldname": "issuer_type", - "parameter_fieldname": "issuer_type", - "in": "body", + "description": "The campaign ID.", + "in": "path", + "name": "campaign_id", "required": true, - "enum_reference": "certificate_issuer_type_enum", - "_key": "issuer_type" - }, - { "type": "string", - "maxLength": 50, - "description": "Certificate issuer name, unique per account.", - "example": "GS Issuer", - "api_fieldname": "name", - "entity_fieldname": "name", - "parameter_fieldname": "name", - "in": "body", - "required": false, - "_key": "name" + "pattern": "[A-Fa-f0-9]{32}", + "entity_fieldname": "campaign_id", + "api_fieldname": "campaign_id", + "external_param": false, + "parameter_fieldname": "campaign_id", + "_key": "campaign_id" } ], - "method": "post", - "mode": "create", + "method": "get", + "mode": "list", "responses": [ { - "description": "Created.", + "description": "OK.", "schema": { "type": "object", "properties": [ { "type": "string", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" + "description": "The entity ID to fetch after the given one.", + "example": "null", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" + }, + { + "type": "array", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "016e652be6710000000000010010013d", + "description": "ID of the associated campaign.", + "_key": "campaign_id" + }, + { + "type": "integer", + "example": 10, + "_key": "count" + }, + { + "type": "string", + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "_key": "created_at" + }, + { + "type": "string", + "enum": [ + "fail", + "success", + "info", + "skipped" + ], + "example": "fail", + "description": "ID of the event type description.", + "_key": "id" + }, + { + "type": "string", + "description": "Entity name: always 'summary_status'.", + "example": "summary_status", + "_key": "object" + }, + { + "type": "string", + "enum": [ + "FAIL", + "SUCCESS", + "INFO", + "SKIPPED" + ], + "example": "FAIL", + "description": "The event type description.", + "_key": "summary_status" + } + ], + "foreign_key": { + "group": "Device_Update", + "entity": "campaign_statistics" + } + }, + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "maxLength": 100, - "description": "General description for the certificate issuer.", - "example": "GlobalSign sample issuer", - "x-nullable": true, - "api_fieldname": "description", - "entity_fieldname": "description", - "_key": "description" + "type": "boolean", + "description": "A flag indicating whether there are more results.", + "example": "false", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" }, { - "type": "string", - "description": "Entity instance signature.", - "example": "1", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "type": "integer", + "description": "The number of results to return, (range: 2-1000), or equals to total_count.", + "example": "50", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "description": "The ID of the certificate issuer.", - "example": "01234567890ABCDEF01234567890ABCDEF", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value shall be empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.\n", - "example": [], - "api_fieldname": "issuer_attributes", - "entity_fieldname": "issuer_attributes", - "_key": "issuer_attributes" + "description": "The entity name: always 'list'.", + "example": "list", + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" }, { "type": "string", "enum": [ - "GLOBAL_SIGN", - "CFSSL_AUTH" + "ASC", + "DESC" ], - "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", - "example": "GLOBAL_SIGN", - "api_fieldname": "issuer_type", - "entity_fieldname": "issuer_type", - "_key": "issuer_type" - }, - { - "type": "string", - "maxLength": 50, - "description": "Certificate issuer name, unique per account.", - "example": "GS Issuer", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "description": "The order of the records to return. Acceptable values: ASC, DESC. Default: ASC.", + "example": "ASC", + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "enum": [ - "certificate-issuer" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "type": "integer", + "description": "The total number or records, if requested. It may be returned also for small lists.", + "example": "1", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } ], - "required": [ - "issuer_type" - ], + "pagination": true, "foreign_key": { - "group": "Security", - "entity": "certificate_issuer" + "group": "Device_Update", + "entity": "campaign_statistics" } }, - "_key": "201" + "_key": "200" }, { - "description": "Validation error: The data used to create the certificate issuer failed validation.\n", + "description": "Not Authenticated.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -21480,24 +20016,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -21505,35 +20046,40 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] }, - "_key": "400" + "_key": "401" }, { - "description": "You are not authorized to view the resource.", + "description": "Not Found.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -21543,24 +20089,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -21568,98 +20119,187 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] }, - "_key": "401" + "_key": "404" + } + ], + "path": "/v3/update-campaigns/{campaign_id}/statistics", + "summary": "Get statistics for a campaign", + "return_type": "paginated_response(campaign_statistics)", + "return_info": { + "self": true, + "custom": false, + "type": "campaign_statistics" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "order", + "limit", + "after", + "has_more", + "total_count", + "data" + ], + "foreign_key_priority": "self", + "group_id": "Device_Update", + "parameter_map": { + "summary_status_id": "id" + }, + "operation_id": "Update_Campaign_statistics_list", + "pagination": true, + "foreign_key": { + "group": "Device_Update", + "entity": "campaign_statistics" + }, + "request_content_type": "application/json", + "request_body": "json", + "_key": "list" + }, + { + "description": "Get the count of successfully updated, skipped, and failed devices.\n
\n**Usage example:**\n```\ncurl https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/fail \\\n-H 'Authorization: Bearer '\n```\n", + "field_renames": [], + "fields": [ + { + "type": "string", + "example": "016e652be6710000000000010010013d", + "description": "ID of the associated campaign.", + "api_fieldname": "campaign_id", + "entity_fieldname": "campaign_id", + "parameter_fieldname": "campaign_id", + "in": "path", + "required": true, + "_key": "campaign_id" }, { - "description": "Forbidden.", + "type": "string", + "enum": [ + "fail", + "success", + "info", + "skipped" + ], + "example": "fail", + "description": "ID of the event type description.", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "summary_status_id", + "in": "path", + "required": true, + "enum_reference": "campaign_statistics_id_enum", + "_key": "id" + } + ], + "method": "get", + "mode": "read", + "responses": [ + { + "description": "OK.", "schema": { "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], "properties": [ { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" + "type": "string", + "example": "016e652be6710000000000010010013d", + "description": "ID of the associated campaign.", + "api_fieldname": "campaign_id", + "entity_fieldname": "campaign_id", + "_key": "campaign_id" }, { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" + "type": "integer", + "example": 10, + "api_fieldname": "count", + "entity_fieldname": "count", + "_key": "count" }, { "type": "string", - "description": "Error message.", - "_key": "message" + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" }, { "type": "string", - "description": "Entity name: `error`.", - "_key": "object" + "enum": [ + "fail", + "success", + "info", + "skipped" + ], + "example": "fail", + "description": "ID of the event type description.", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" }, { "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" + "description": "Entity name: always 'summary_status'.", + "example": "summary_status", + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" }, { "type": "string", - "description": "Error type.", - "_key": "type" + "enum": [ + "FAIL", + "SUCCESS", + "INFO", + "SKIPPED" + ], + "example": "FAIL", + "description": "The event type description.", + "api_fieldname": "summary_status", + "entity_fieldname": "summary_status", + "_key": "summary_status" } - ] + ], + "foreign_key": { + "group": "Device_Update", + "entity": "campaign_statistics" + } }, - "_key": "403" + "_key": "200" }, { - "description": "Conflict. A certificate issuer with this name already exists.\n", + "description": "Not Authenticated.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -21669,24 +20309,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -21694,35 +20339,40 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] }, - "_key": "409" + "_key": "401" }, { - "description": "The request failed due to customer configured external service.\n", + "description": "Not Found.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -21732,24 +20382,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -21757,36 +20412,42 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] }, - "_key": "424" + "_key": "404" } ], - "path": "/v3/certificate-issuers", - "summary": "Create certificate issuer.", - "return_type": "certificate_issuer", + "path": "/v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}", + "summary": "Get a status summary", + "return_type": "campaign_statistics", "return_info": { "self": true, "custom": false, - "type": "certificate_issuer" + "type": "campaign_statistics" }, "x_filter": {}, "x_deprecation": null, @@ -21795,176 +20456,218 @@ "etag", "type", "filter", - "created_at", - "id" + "summary_status", + "count", + "created_at" ], - "group_id": "Security", + "group_id": "Device_Update", "parameter_map": { - "certificate-issuer-id": "id" + "summary_status_id": "id" }, - "operation_id": "createCertificateIssuer", + "operation_id": "Update_Campaign_statistics_retrieve", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "create" + "_key": "read" + } + ], + "fields": [ + { + "type": "string", + "example": "016e652be6710000000000010010013d", + "description": "ID of the associated campaign.", + "api_fieldname": "campaign_id", + "readOnly": false, + "required": true, + "_key": "campaign_id" + }, + { + "type": "integer", + "example": 10, + "api_fieldname": "count", + "readOnly": true, + "required": false, + "_key": "count" + }, + { + "type": "string", + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "string", + "enum": [ + "fail", + "success", + "info", + "skipped" + ], + "example": "fail", + "description": "ID of the event type description.", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "enum_reference": "campaign_statistics_id_enum", + "_key": "id" }, { - "description": "Delete a certificate issuer by ID.\n
\n**Example usage:**\n\n```\ncurl -X DELETE \\\n-H 'authorization: ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers/0162155dc77d507b9d48a91b00000000\n```\n", + "type": "string", + "enum": [ + "FAIL", + "SUCCESS", + "INFO", + "SKIPPED" + ], + "example": "FAIL", + "description": "The event type description.", + "api_fieldname": "summary_status", + "readOnly": true, + "required": false, + "enum_reference": "campaign_statistics_summary_status_enum", + "_key": "summary_status" + } + ], + "field_renames": [], + "tags": [ + "Device update - campaigns" + ], + "group_id": "Device_Update", + "_key": "campaign_statistics" + }, + { + "swagger_models": [ + "EventType" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Get the count for a specific event type, for example, succeeded, failed or skipped.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/success/event_types/sys_112 \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { - "name": "certificate-issuer-id", + "type": "string", + "example": "016e652be671000000000001001001e5", + "description": "ID of the associated campaign.", + "api_fieldname": "campaign_id", + "entity_fieldname": "campaign_id", + "parameter_fieldname": "campaign_id", "in": "path", - "description": "Certificate issuer ID.
The ID of the certificate issuer.\nAn active certificate issuer may not be deleted.\n", "required": true, + "_key": "campaign_id" + }, + { "type": "string", + "example": "upd_fail_101", + "api_fieldname": "id", "entity_fieldname": "id", - "api_fieldname": "certificate-issuer-id", - "external_param": false, - "parameter_fieldname": "certificate-issuer-id", + "parameter_fieldname": "event_type_id", + "in": "path", + "required": true, "_key": "id" + }, + { + "type": "string", + "example": "fail", + "api_fieldname": "summary_status_id", + "entity_fieldname": "summary_status_id", + "parameter_fieldname": "summary_status_id", + "in": "path", + "required": true, + "_key": "summary_status_id" } ], - "method": "delete", - "mode": "delete", + "method": "get", + "mode": "read", "responses": [ { - "description": "Certificate issuer deleted.", - "_key": "204" - }, - { - "description": "Validation error: An active certificate issuer cannot be deleted.\n", + "description": "OK.", "schema": { "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, { "type": "string", - "description": "Error message.", - "_key": "message" + "example": "016e652be671000000000001001001e5", + "description": "ID of the associated campaign.", + "api_fieldname": "campaign_id", + "entity_fieldname": "campaign_id", + "_key": "campaign_id" }, { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" + "type": "integer", + "example": 10, + "api_fieldname": "count", + "entity_fieldname": "count", + "_key": "count" }, { "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" }, { "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "400" - }, - { - "description": "Unauthorized.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" + "example": "Update error, nonspecific network error", + "api_fieldname": "description", + "entity_fieldname": "description", + "_key": "description" }, { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" + "type": "string", + "example": "UPD4_FAIL_101", + "api_fieldname": "event_type", + "entity_fieldname": "event_type", + "_key": "event_type" }, { "type": "string", - "description": "Error message.", - "_key": "message" + "example": "upd_fail_101", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name: always 'event-type'.", + "example": "event-type", + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" + "example": "FAIL", + "api_fieldname": "summary_status", + "entity_fieldname": "summary_status", + "_key": "summary_status" }, { "type": "string", - "description": "Error type.", - "_key": "type" + "example": "fail", + "api_fieldname": "summary_status_id", + "entity_fieldname": "summary_status_id", + "_key": "summary_status_id" } - ] + ], + "foreign_key": { + "group": "Device_Update", + "entity": "campaign_statistics_events" + } }, - "_key": "401" + "_key": "200" }, { - "description": "Forbidden.", + "description": "Not Authenticated.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -21974,24 +20677,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -21999,35 +20707,40 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] }, - "_key": "403" + "_key": "401" }, { - "description": "Not found.", + "description": "Not Found.", "schema": { "type": "object", "required": [ "code", - "fields", "message", "object", "request_id", @@ -22037,24 +20750,29 @@ { "type": "integer", "format": "int32", - "description": "Error code. Correlates with response status code.", + "description": "HTTP response code", + "example": 400, "_key": "code" }, { "type": "array", - "description": "A list of request fields that failed validation.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "Message describing the error condition.", + "_key": "message" }, { "type": "string", - "description": "Error message related to the field.", - "_key": "message" + "description": "Name of the field which caused the error.", + "_key": "name" } ] }, @@ -22062,22 +20780,28 @@ }, { "type": "string", - "description": "Error message.", + "description": "A human readable informative explanation", + "example": "Validation error", "_key": "message" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", "_key": "request_id" }, { "type": "string", - "description": "Error type.", + "description": "Error type used to categorise the error.", + "example": "validation_error", "_key": "type" } ] @@ -22085,13 +20809,13 @@ "_key": "404" } ], - "path": "/v3/certificate-issuers/{certificate-issuer-id}", - "summary": "Delete certificate issuer.", - "return_type": "certificate_issuer", + "path": "/v3/update-campaigns/{campaign_id}/statistics/{summary_status_id}/event_types/{event_type_id}", + "summary": "Get an event type for a campaign", + "return_type": "campaign_statistics_events", "return_info": { "self": true, "custom": false, - "type": "certificate_issuer" + "type": "campaign_statistics_events" }, "x_filter": {}, "x_deprecation": null, @@ -22099,73 +20823,168 @@ "object", "etag", "type", - "filter" + "filter", + "created_at", + "event_type", + "description", + "summary_status", + "count" ], - "group_id": "Security", + "group_id": "Device_Update", "parameter_map": { - "certificate-issuer-id": "id" + "event_type_id": "id" }, - "operation_id": "deleteCertificateIssuer", + "operation_id": "Update_Campaign_event_types_retrieve", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "delete" + "_key": "read" + } + ], + "fields": [ + { + "type": "string", + "example": "016e652be671000000000001001001e5", + "description": "ID of the associated campaign.", + "api_fieldname": "campaign_id", + "readOnly": false, + "required": true, + "_key": "campaign_id" + }, + { + "type": "integer", + "example": 10, + "api_fieldname": "count", + "readOnly": true, + "required": false, + "_key": "count" + }, + { + "type": "string", + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "string", + "example": "Update error, nonspecific network error", + "api_fieldname": "description", + "readOnly": true, + "required": false, + "_key": "description" + }, + { + "type": "string", + "example": "UPD4_FAIL_101", + "api_fieldname": "event_type", + "readOnly": true, + "required": false, + "_key": "event_type" + }, + { + "type": "string", + "example": "upd_fail_101", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "_key": "id" + }, + { + "type": "string", + "example": "FAIL", + "api_fieldname": "summary_status", + "readOnly": true, + "required": false, + "_key": "summary_status" }, { - "description": "Note: This endpoint does not implement pagination and therefore, list control parameters such as `limit` or `after` will be ignored by the system.\n", + "type": "string", + "example": "fail", + "api_fieldname": "summary_status_id", + "readOnly": false, + "required": true, + "_key": "summary_status_id" + } + ], + "field_renames": [], + "tags": [ + "Device update - campaigns" + ], + "group_id": "Device_Update", + "_key": "campaign_statistics_events" + }, + { + "swagger_models": [ + "CertificateEnrollment", + "CertificateEnrollmentListResponse" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Get certificate enrollments list, optionally filtered.\n\n**Examples:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments \\\n-H 'Authorization: Bearer '\n```\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments?device_id__eq=01612df56f3b0a580a010fc700000000 \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", - "description": "The ID of The item after which to retrieve the next page.", - "example": "01631667477600000000000100100374", + "description": "The ID of the item after which to retrieve the next page.", + "example": "01625daa23230a580a0100bd00000000", "api_fieldname": "after", "entity_fieldname": "after", - "in": "query", "name": "after", + "in": "query", + "pattern": "[0-9a-fA-F]{32}", + "required": false, "external_param": true, "parameter_fieldname": "after", - "required": false, "_key": "after" }, { - "description": "Comma-separated list of data fields to return. Currently supported: `total_count`", - "in": "query", "name": "include", + "in": "query", + "description": "a comma-separated list of data fields to return.", + "required": false, "type": "string", + "enum": [ + "total_count" + ], "entity_fieldname": "include", "api_fieldname": "include", "external_param": true, "parameter_fieldname": "include", - "required": false, + "enum_reference": "certificate_enrollment_include_enum", "_key": "include" }, { "type": "integer", - "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, - "minimum": 2, - "maximum": 1000, + "format": "int32", + "description": "The number of results to return (2-1000).", "api_fieldname": "limit", "entity_fieldname": "limit", - "in": "query", "name": "limit", + "in": "query", + "required": false, "external_param": true, "parameter_fieldname": "limit", - "required": false, "_key": "limit" }, { "type": "string", - "description": "The order of the records based on creation time, `ASC` or `DESC`; by default `ASC`.", - "example": "DESC", + "description": "The order of results.", + "enum": [ + "ASC", + "DESC" + ], "api_fieldname": "order", "entity_fieldname": "order", - "in": "query", "name": "order", + "in": "query", + "required": false, "external_param": true, "parameter_fieldname": "order", - "required": false, + "enum_reference": "certificate_enrollment_order_enum", "_key": "order" } ], @@ -22179,15 +20998,10 @@ "properties": [ { "type": "string", - "description": "The ID of The item after which to retrieve the next page.", - "example": "01631667477600000000000100100374", + "description": "The entity ID to fetch after the given one.", + "example": "01625daa23230a580a0100bd00000000", "api_fieldname": "after", "entity_fieldname": "after", - "in": "query", - "name": "after", - "external_param": true, - "parameter_fieldname": "after", - "required": false, "_key": "after" }, { @@ -22195,128 +21009,164 @@ "items": { "type": "object", "properties": [ + { + "type": "string", + "maxLength": 50, + "description": "The certificate name.", + "example": "customer.dlms", + "api_fieldname": "certificate-name", + "entity_fieldname": "certificate_name", + "in": "path", + "name": "certificate-name", + "required": true, + "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", + "external_param": true, + "parameter_fieldname": "certificate-name", + "_key": "certificate_name" + }, { "type": "string", "format": "date-time", "description": "Creation UTC time RFC3339.", "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", "_key": "created_at" }, { "type": "string", - "maxLength": 100, - "description": "General description for the certificate issuer.", - "example": "GlobalSign sample issuer", - "x-nullable": true, - "_key": "description" + "description": "The device ID.", + "example": "01625daa23230a580a0100bd00000000", + "api_fieldname": "device_id", + "entity_fieldname": "device_id", + "_key": "device_id" }, { "type": "string", - "description": "Entity instance signature.", - "example": "1", - "_key": "etag" + "enum": [ + "success", + "failure" + ], + "description": "The result of certificate enrollment request.", + "example": "success", + "api_fieldname": "enroll_result", + "entity_fieldname": "enroll_result", + "_key": "enroll_result" }, { "type": "string", - "description": "The ID of the certificate issuer.", - "example": "01234567890ABCDEF01234567890ABCDEF", - "_key": "id" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value shall be empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.\n", - "example": [], - "_key": "issuer_attributes" + "description": "Additional information in case of failure.", + "example": "The device is currently processing too many certificate renewals.", + "api_fieldname": "enroll_result_detail", + "entity_fieldname": "enroll_result_detail", + "_key": "enroll_result_detail" }, { "type": "string", + "description": "The status of certificate enrollment request.", "enum": [ - "GLOBAL_SIGN", - "CFSSL_AUTH" + "new", + "completed" ], - "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", - "example": "GLOBAL_SIGN", - "_key": "issuer_type" + "api_fieldname": "enroll_status", + "entity_fieldname": "enroll_status", + "_key": "enroll_status" }, { "type": "string", - "maxLength": 50, - "description": "Certificate issuer name, unique per account.", - "example": "GS Issuer", - "_key": "name" + "description": "Entity instance signature.", + "example": "1", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "The certificate enrollment ID.", + "example": "01612df56f3b0a580a010fc700000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "device-id", + "in": "path", + "required": true, + "_key": "id" }, { "type": "string", "enum": [ - "certificate-issuer" + "certificate-enrollment" ], + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" + }, + { + "type": "string", + "format": "date-time", + "description": "Update UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" } ], "required": [ - "issuer_type" + "created_at", + "etag", + "id", + "device_id", + "certificate_name" ], "foreign_key": { "group": "Security", - "entity": "certificate_issuer" + "entity": "certificate_enrollment" } }, - "description": "List of certificate issuers.", + "description": "List of certificate enrollments.", "api_fieldname": "data", "entity_fieldname": "data", "_key": "data" }, { "type": "boolean", - "description": "Are there more results available.", - "example": false, + "description": "Flag indicating whether there are more results.", "api_fieldname": "has_more", "entity_fieldname": "has_more", "_key": "has_more" }, { "type": "integer", - "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, - "minimum": 2, - "maximum": 1000, + "format": "int32", + "description": "The number of results to return.", "api_fieldname": "limit", "entity_fieldname": "limit", - "in": "query", - "name": "limit", - "external_param": true, - "parameter_fieldname": "limit", - "required": false, "_key": "limit" }, { "type": "string", - "description": "The type of this API object is a `list`.", - "example": "list", + "enum": [ + "list" + ], + "description": "Describes the type of objects in the list.", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "The order of the records based on creation time, `ASC` or `DESC`; by default `ASC`.", - "example": "DESC", + "description": "Record order based on creation time. Acceptable values: ASC, DESC. Default: ASC.", + "enum": [ + "ASC", + "DESC" + ], "api_fieldname": "order", "entity_fieldname": "order", - "in": "query", - "name": "order", - "external_param": true, - "parameter_fieldname": "order", - "required": false, "_key": "order" }, { - "format": "integer", "type": "integer", - "example": 1, + "format": "int32", + "description": "The total number of records.", "api_fieldname": "total_count", "entity_fieldname": "total_count", "_key": "total_count" @@ -22325,11 +21175,74 @@ "pagination": true, "foreign_key": { "group": "Security", - "entity": "certificate_issuer" + "entity": "certificate_enrollment" } }, "_key": "200" }, + { + "description": "Validation error.", + "schema": { + "type": "object", + "required": [ + "code", + "fields", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Error code. Correlates with response status code.", + "_key": "code" + }, + { + "type": "array", + "description": "A list of request fields that failed validation.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Field name.", + "_key": "field" + }, + { + "type": "string", + "description": "Error message related to the field.", + "_key": "message" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "Error message.", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name: `error`.", + "_key": "object" + }, + { + "type": "string", + "description": "Request ID from JWT.", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type.", + "_key": "type" + } + ] + }, + "_key": "400" + }, { "description": "Unauthorized.", "schema": { @@ -22457,51 +21370,84 @@ "_key": "403" } ], - "path": "/v3/certificate-issuers", - "summary": "Get certificate issuers list.", - "return_type": "paginated_response(certificate_issuer)", + "path": "/v3/certificate-enrollments", + "summary": "Get certificate enrollments list.", + "return_type": "paginated_response(certificate_enrollment)", "return_info": { "self": true, "custom": false, - "type": "certificate_issuer" + "type": "certificate_enrollment" + }, + "x_filter": { + "device_id": [ + "eq" + ], + "certificate_name": [ + "eq" + ], + "enroll_status": [ + "neq", + "eq" + ], + "enroll_result": [ + "neq", + "eq" + ], + "created_at": [ + "lte", + "gte" + ], + "updated_at": [ + "lte", + "gte" + ] }, - "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", "etag", "type", "filter", - "has_more", "total_count", - "data" + "has_more", + "data", + "device_id__eq", + "certificate_name__eq", + "enroll_status__neq", + "enroll_status__eq", + "enroll_result__neq", + "enroll_result__eq", + "created_at__lte", + "created_at__gte", + "updated_at__lte", + "updated_at__gte" ], "foreign_key_priority": "self", "group_id": "Security", "parameter_map": { - "certificate-issuer-id": "id" + "certificate-enrollment-id": "id" }, - "operation_id": "getCertificateIssuers", + "operation_id": "getCertificateEnrollments", "pagination": true, "foreign_key": { "group": "Security", - "entity": "certificate_issuer" + "entity": "certificate_enrollment" }, "request_content_type": "application/json", "request_body": "json", "_key": "list" }, { - "description": "(No description provided)", + "description": "Get a certificate enrollment by ID.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments/01612df56f3b0a580a010fc700000000 \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", - "description": "The ID of the certificate issuer.", - "example": "01234567890ABCDEF01234567890ABCDEF", + "description": "The certificate enrollment ID.", + "example": "01612df56f3b0a580a010fc700000000", "api_fieldname": "id", "entity_fieldname": "id", - "parameter_fieldname": "certificate-issuer-id", + "parameter_fieldname": "certificate-enrollment-id", "in": "path", "required": true, "_key": "id" @@ -22515,6 +21461,21 @@ "schema": { "type": "object", "properties": [ + { + "type": "string", + "maxLength": 50, + "description": "The certificate name.", + "example": "customer.dlms", + "api_fieldname": "certificate_name", + "entity_fieldname": "certificate_name", + "in": "path", + "name": "certificate-name", + "required": true, + "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", + "external_param": true, + "parameter_fieldname": "certificate-name", + "_key": "certificate_name" + }, { "type": "string", "format": "date-time", @@ -22526,84 +21487,97 @@ }, { "type": "string", - "maxLength": 100, - "description": "General description for the certificate issuer.", - "example": "GlobalSign sample issuer", - "x-nullable": true, - "api_fieldname": "description", - "entity_fieldname": "description", - "_key": "description" + "description": "The device ID.", + "example": "01625daa23230a580a0100bd00000000", + "api_fieldname": "device_id", + "entity_fieldname": "device_id", + "_key": "device_id" }, { "type": "string", - "description": "Entity instance signature.", - "example": "1", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "enum": [ + "success", + "failure" + ], + "description": "The result of certificate enrollment request.", + "example": "success", + "api_fieldname": "enroll_result", + "entity_fieldname": "enroll_result", + "_key": "enroll_result" }, { "type": "string", - "description": "The ID of the certificate issuer.", - "example": "01234567890ABCDEF01234567890ABCDEF", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value shall be empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.\n", - "example": [], - "api_fieldname": "issuer_attributes", - "entity_fieldname": "issuer_attributes", - "_key": "issuer_attributes" + "description": "Additional information in case of failure.", + "example": "The device is currently processing too many certificate renewals.", + "api_fieldname": "enroll_result_detail", + "entity_fieldname": "enroll_result_detail", + "_key": "enroll_result_detail" }, { "type": "string", + "description": "The status of certificate enrollment request.", "enum": [ - "GLOBAL_SIGN", - "CFSSL_AUTH" + "new", + "completed" ], - "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", - "example": "GLOBAL_SIGN", - "api_fieldname": "issuer_type", - "entity_fieldname": "issuer_type", - "_key": "issuer_type" + "api_fieldname": "enroll_status", + "entity_fieldname": "enroll_status", + "_key": "enroll_status" }, { "type": "string", - "maxLength": 50, - "description": "Certificate issuer name, unique per account.", - "example": "GS Issuer", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "description": "Entity instance signature.", + "example": "1", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "The certificate enrollment ID.", + "example": "01612df56f3b0a580a010fc700000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "device-id", + "in": "path", + "required": true, + "_key": "id" }, { "type": "string", "enum": [ - "certificate-issuer" + "certificate-enrollment" ], "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" + }, + { + "type": "string", + "format": "date-time", + "description": "Update UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" } ], "required": [ - "issuer_type" + "created_at", + "etag", + "id", + "device_id", + "certificate_name" ], "foreign_key": { - "group": "Security", - "entity": "certificate_issuer" + "group": "Devices", + "entity": "device" } }, "_key": "200" }, { - "description": "Validation error: The data used to get the certificate issuer failed validation.\n", + "description": "Validation error.", "schema": { "type": "object", "required": [ @@ -22855,13 +21829,13 @@ "_key": "404" } ], - "path": "/v3/certificate-issuers/{certificate-issuer-id}", - "summary": "Get certificate issuer by ID.", - "return_type": "certificate_issuer", + "path": "/v3/certificate-enrollments/{certificate-enrollment-id}", + "summary": "Get a certificate enrollment by ID.", + "return_type": "certificate_enrollment", "return_info": { "self": true, "custom": false, - "type": "certificate_issuer" + "type": "certificate_enrollment" }, "x_filter": {}, "x_deprecation": null, @@ -22871,23 +21845,136 @@ "type", "filter", "created_at", - "issuer_type", - "name", - "description", - "issuer_attributes" + "device_id", + "certificate_name", + "enroll_status", + "enroll_result", + "enroll_result_detail", + "updated_at" ], "group_id": "Security", "parameter_map": { - "certificate-issuer-id": "id" + "certificate-enrollment-id": "id" }, - "operation_id": "getCertificateIssuer", + "operation_id": "getCertificateEnrollment", "pagination": false, "request_content_type": "application/json", "request_body": "json", "_key": "read" + } + ], + "fields": [ + { + "type": "string", + "maxLength": 50, + "description": "The certificate name.", + "example": "customer.dlms", + "api_fieldname": "certificate_name", + "in": "path", + "name": "certificate-name", + "required": false, + "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", + "external_param": true, + "parameter_fieldname": "certificate-name", + "readOnly": true, + "_key": "certificate_name" + }, + { + "type": "string", + "format": "date-time", + "description": "Creation UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "string", + "description": "The device ID.", + "example": "01625daa23230a580a0100bd00000000", + "api_fieldname": "device_id", + "readOnly": true, + "required": false, + "_key": "device_id" + }, + { + "type": "string", + "enum": [ + "success", + "failure" + ], + "description": "The result of certificate enrollment request.", + "example": "success", + "api_fieldname": "enroll_result", + "readOnly": true, + "required": false, + "enum_reference": "certificate_enrollment_enroll_result_enum", + "_key": "enroll_result" + }, + { + "type": "string", + "description": "Additional information in case of failure.", + "example": "The device is currently processing too many certificate renewals.", + "api_fieldname": "enroll_result_detail", + "readOnly": true, + "required": false, + "_key": "enroll_result_detail" + }, + { + "type": "string", + "description": "The status of certificate enrollment request.", + "enum": [ + "new", + "completed" + ], + "api_fieldname": "enroll_status", + "readOnly": true, + "required": false, + "enum_reference": "certificate_enrollment_enroll_status_enum", + "_key": "enroll_status" + }, + { + "type": "string", + "description": "The certificate enrollment ID.", + "example": "01612df56f3b0a580a010fc700000000", + "api_fieldname": "id", + "parameter_fieldname": "device-id", + "in": "path", + "required": true, + "readOnly": false, + "_key": "id" }, { - "description": "Update a certificate issuer.\n
\n**Example usage:**\n\n```\ncurl -X PUT \\\n-H 'authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621560be51507b9d48a91b00000000 \\\n-d '{\n \"description\": \"Sample GlobalSign certificate issuer - updated.\",\n \"name\": \"GlobalSign Issuer\"\n}'\n```\n", + "type": "string", + "format": "date-time", + "description": "Update UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "updated_at", + "readOnly": true, + "required": false, + "_key": "updated_at" + } + ], + "field_renames": [], + "tags": [ + "Device security - device certificate renewals" + ], + "group_id": "Security", + "_key": "certificate_enrollment" + }, + { + "swagger_models": [ + "CertificateIssuerInfo", + "CertificateIssuerInfoListResponse", + "CertificateIssuerRequest", + "CertificateIssuerUpdateRequest", + "CertificateIssuerVerifyResponse" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Create a certificate issuer.\n
\nThe maximum number of issuers is limited to 20 per account.\n
\nYou can create multiple certificate issuers of the same type, provided they have different names. This allows verification of the certificate issuer configuration before activation.\n
\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuers \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n-d '{\n \"issuer_type\": \"GLOBAL_SIGN\",\n \"name\": \"GS Issuer\",\n \"description\": \"Sample GlobalSign certificate issuer\",\n \"issuer_attributes\": null,\n \"issuer_credentials\": {\n \"api_key\": \"e510e289e6cd8947\",\n \"api_secret\": \"a477a8393d17a55ecb2ba6a61f58feb84770b621\",\n \"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-----\",\n \"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-----\",\n \"passphrase\": \"helloworld\"\n }\n}'\n```", "field_renames": [], "fields": [ { @@ -22903,23 +21990,12 @@ "required": false, "_key": "description" }, - { - "type": "string", - "description": "The ID of the certificate issuer.", - "example": "01234567890ABCDEF01234567890ABCDEF", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "certificate-issuer-id", - "in": "path", - "required": true, - "_key": "id" - }, { "type": "object", "additionalProperties": { "type": "string" }, - "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value shall be empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.\n", + "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value is empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.", "example": [], "api_fieldname": "issuer_attributes", "entity_fieldname": "issuer_attributes", @@ -22933,7 +22009,7 @@ "additionalProperties": { "type": "string" }, - "description": "The credentials required for connecting to the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.\n", + "description": "The credentials required to connect to the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.", "example": [], "name": "issuer_credentials", "in": "body", @@ -22942,9 +22018,25 @@ "api_fieldname": "issuer_credentials", "external_param": true, "parameter_fieldname": "issuer_credentials", - "required": false, + "required": true, "_key": "issuer_credentials" }, + { + "type": "string", + "enum": [ + "GLOBAL_SIGN", + "CFSSL_AUTH" + ], + "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.", + "example": "GLOBAL_SIGN", + "api_fieldname": "issuer_type", + "entity_fieldname": "issuer_type", + "parameter_fieldname": "issuer_type", + "in": "body", + "required": true, + "enum_reference": "certificate_issuer_type_enum", + "_key": "issuer_type" + }, { "type": "string", "maxLength": 50, @@ -22958,11 +22050,11 @@ "_key": "name" } ], - "method": "put", - "mode": "update", + "method": "post", + "mode": "create", "responses": [ { - "description": "OK.", + "description": "Created.", "schema": { "type": "object", "properties": [ @@ -22995,129 +22087,66 @@ }, { "type": "string", - "description": "The ID of the certificate issuer.", + "description": "Certificate issuer ID.", "example": "01234567890ABCDEF01234567890ABCDEF", "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value shall be empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.\n", - "example": [], - "api_fieldname": "issuer_attributes", - "entity_fieldname": "issuer_attributes", - "_key": "issuer_attributes" - }, - { - "type": "string", - "enum": [ - "GLOBAL_SIGN", - "CFSSL_AUTH" - ], - "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", - "example": "GLOBAL_SIGN", - "api_fieldname": "issuer_type", - "entity_fieldname": "issuer_type", - "_key": "issuer_type" - }, - { - "type": "string", - "maxLength": 50, - "description": "Certificate issuer name, unique per account.", - "example": "GS Issuer", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" - }, - { - "type": "string", - "enum": [ - "certificate-issuer" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - } - ], - "required": [ - "issuer_type" - ], - "foreign_key": { - "group": "Security", - "entity": "certificate_issuer" - } - }, - "_key": "200" - }, - { - "description": "Validation error: The data used to update the certificate issuer failed validation.\n", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" + "entity_fieldname": "id", + "_key": "id" }, { - "type": "string", - "description": "Error message.", - "_key": "message" + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value is empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.", + "example": [], + "api_fieldname": "issuer_attributes", + "entity_fieldname": "issuer_attributes", + "_key": "issuer_attributes" }, { "type": "string", - "description": "Entity name: `error`.", - "_key": "object" + "enum": [ + "GLOBAL_SIGN", + "CFSSL_AUTH" + ], + "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.", + "example": "GLOBAL_SIGN", + "api_fieldname": "issuer_type", + "entity_fieldname": "issuer_type", + "_key": "issuer_type" }, { "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" + "maxLength": 50, + "description": "Certificate issuer name, unique per account.", + "example": "GS Issuer", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" }, { "type": "string", - "description": "Error type.", - "_key": "type" + "enum": [ + "certificate-issuer" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" } - ] + ], + "required": [ + "issuer_type" + ], + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer" + } }, - "_key": "400" + "_key": "201" }, { - "description": "Unauthorized.", + "description": "Validation error: The data used to create the certificate issuer failed validation.", "schema": { "type": "object", "required": [ @@ -23177,10 +22206,10 @@ } ] }, - "_key": "401" + "_key": "400" }, { - "description": "Forbidden.", + "description": "You are not authorized to view the resource.", "schema": { "type": "object", "required": [ @@ -23240,10 +22269,10 @@ } ] }, - "_key": "403" + "_key": "401" }, { - "description": "Not found.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -23303,10 +22332,10 @@ } ] }, - "_key": "404" + "_key": "403" }, { - "description": "Conflict. A certificate issuer with this name already exists.\n", + "description": "Conflict. A certificate issuer with this name already exists.", "schema": { "type": "object", "required": [ @@ -23369,7 +22398,7 @@ "_key": "409" }, { - "description": "The request failed due to customer configured external service.\n", + "description": "The request failed due to customer configured external service.", "schema": { "type": "object", "required": [ @@ -23432,8 +22461,8 @@ "_key": "424" } ], - "path": "/v3/certificate-issuers/{certificate-issuer-id}", - "summary": "Update certificate issuer.", + "path": "/v3/certificate-issuers", + "summary": "Create certificate issuer.", "return_type": "certificate_issuer", "return_info": { "self": true, @@ -23448,26 +22477,26 @@ "type", "filter", "created_at", - "issuer_type" + "id" ], "group_id": "Security", "parameter_map": { "certificate-issuer-id": "id" }, - "operation_id": "updateCertificateIssuer", + "operation_id": "createCertificateIssuer", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "update" + "_key": "create" }, { - "description": "A utility API that can be used to validate the user configuration before activating a certificate issuer.\nVerifies that the certificate issuer is accessible and can be used to generate certificates by Device Management.\n
\n**Note:**\nThe API requests the 3rd party CA to sign a test certificate.\nFor some 3rd party CAs, this operation may make use of the account quota.\n
\n**Example usage:**\n\n```\ncurl -X POST \\\n-H 'authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621a36719d507b9d48a91b00000000/verify\n```\n", + "description": "Delete a certificate issuer by ID.\n
\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/0162155dc77d507b9d48a91b00000000 \\\n-H 'Authorization: Bearer ' \\\n```", "field_renames": [], "fields": [ { "name": "certificate-issuer-id", "in": "path", - "description": "Certificate issuer ID.
The ID of the certificate issuer.\n", + "description": "Certificate issuer ID.\nAn active certificate issuer cannot be deleted.", "required": true, "type": "string", "entity_fieldname": "id", @@ -23477,40 +22506,15 @@ "_key": "id" } ], - "method": "post", - "mode": "verify", + "method": "delete", + "mode": "delete", "responses": [ { - "description": "OK.", - "schema": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Provides details in case of failure.\n", - "example": "message describing the verification failure", - "api_fieldname": "message", - "entity_fieldname": "message", - "_key": "message" - }, - { - "type": "boolean", - "description": "Indicates whether the certificate issuer was verified successfully.\n", - "example": false, - "api_fieldname": "successful", - "entity_fieldname": "successful", - "_key": "successful" - } - ], - "foreign_key": { - "group": "Security", - "entity": "verification_response" - } - }, - "_key": "200" + "description": "Certificate issuer deleted.", + "_key": "204" }, { - "description": "Validation error", + "description": "Validation error: An active certificate issuer cannot be deleted.", "schema": { "type": "object", "required": [ @@ -23636,426 +22640,7 @@ "_key": "401" }, { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "Not found.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "404" - }, - { - "description": "The request failed due to customer configured external service.\n", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Field name.", - "_key": "field" - }, - { - "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "424" - } - ], - "path": "/v3/certificate-issuers/{certificate-issuer-id}/verify", - "summary": "Verify certificate issuer.", - "return_type": "verification_response", - "return_info": { - "self": false, - "custom": false, - "type": "verification_response" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "successful", - "message" - ], - "group_id": "Security", - "parameter_map": { - "certificate-issuer-id": "id" - }, - "unaggregated": true, - "operation_id": "verifyCertificateIssuer", - "foreign_key": { - "entity": "verification_response", - "group": "Security" - }, - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "verify" - } - ], - "fields": [ - { - "type": "string", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "maxLength": 100, - "description": "General description for the certificate issuer.", - "example": "GlobalSign sample issuer", - "x-nullable": true, - "api_fieldname": "description", - "readOnly": false, - "required": false, - "_key": "description" - }, - { - "type": "string", - "description": "The ID of the certificate issuer.", - "example": "01234567890ABCDEF01234567890ABCDEF", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value shall be empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.\n", - "example": [], - "api_fieldname": "issuer_attributes", - "readOnly": false, - "required": false, - "_key": "issuer_attributes" - }, - { - "type": "string", - "enum": [ - "GLOBAL_SIGN", - "CFSSL_AUTH" - ], - "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", - "example": "GLOBAL_SIGN", - "api_fieldname": "issuer_type", - "readOnly": false, - "required": true, - "enum_reference": "certificate_issuer_type_enum", - "_key": "issuer_type" - }, - { - "type": "string", - "maxLength": 50, - "description": "Certificate issuer name, unique per account.", - "example": "GS Issuer", - "api_fieldname": "name", - "readOnly": false, - "required": true, - "_key": "name" - } - ], - "field_renames": [], - "tags": [ - "Certificate Issuers" - ], - "group_id": "Security", - "_key": "certificate_issuer" - }, - { - "swagger_models": [ - "CertificateIssuerConfigListResponse", - "CertificateIssuerConfigRequest", - "CertificateIssuerConfigResponse", - "CreateCertificateIssuerConfig" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Configure the certificate issuer to be used when creating the device custom certificates.\n
\n**Example usage:**\n\n```\ncurl -X POST \\\n-H 'authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations \\\n-d '{\n \"reference\": \"customer.dlms\",\n \"certificate_issuer_id\": \"01621a36719d507b9d48a91b00000000\"\n}'\n```\n", - "field_renames": [], - "fields": [ - { - "x-nullable": true, - "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "certificate_issuer_id", - "entity_fieldname": "certificate_issuer_id", - "parameter_fieldname": "certificate_issuer_id", - "in": "body", - "required": false, - "_key": "certificate_issuer_id" - }, - { - "type": "string", - "description": "The certificate name to which the certificate issuer configuration applies.", - "example": "customer.dlms", - "api_fieldname": "reference", - "entity_fieldname": "reference", - "parameter_fieldname": "reference", - "in": "body", - "required": true, - "_key": "reference" - } - ], - "method": "post", - "mode": "create", - "responses": [ - { - "description": "OK.", - "schema": { - "type": "object", - "properties": [ - { - "x-nullable": true, - "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "certificate_issuer_id", - "entity_fieldname": "certificate_issuer_id", - "_key": "certificate_issuer_id" - }, - { - "type": "string", - "format": "date-time", - "description": "Created UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "string", - "description": "Entity instance signature.", - "example": "1", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, - { - "type": "string", - "description": "The ID of the certificate issuer configuration.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "boolean", - "example": true, - "api_fieldname": "is_custom", - "entity_fieldname": "is_custom", - "_key": "is_custom" - }, - { - "type": "string", - "enum": [ - "certificate-issuer-configuration" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "The certificate name to which the certificate issuer configuration applies.", - "example": "customer.dlms", - "api_fieldname": "reference", - "entity_fieldname": "reference", - "_key": "reference" - }, - { - "type": "string", - "format": "date-time", - "description": "Updated UTC time RFC3339.", - "example": "2017-02-01T00:00:00Z", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Security", - "entity": "certificate_issuer_config" - } - }, - "_key": "201" - }, - { - "description": "Validation error.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -24115,10 +22700,10 @@ } ] }, - "_key": "400" + "_key": "403" }, { - "description": "Unauthorized.", + "description": "Not found.", "schema": { "type": "object", "required": [ @@ -24178,10 +22763,256 @@ } ] }, - "_key": "401" + "_key": "404" + } + ], + "path": "/v3/certificate-issuers/{certificate-issuer-id}", + "summary": "Delete certificate issuer.", + "return_type": "certificate_issuer", + "return_info": { + "self": true, + "custom": false, + "type": "certificate_issuer" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter" + ], + "group_id": "Security", + "parameter_map": { + "certificate-issuer-id": "id" + }, + "operation_id": "deleteCertificateIssuer", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "delete" + }, + { + "description": "**Note:** This endpoint does not use pagination, and therefore ignores list control parameters such as `limit` or `after`.", + "field_renames": [], + "fields": [ + { + "type": "string", + "description": "The ID of the item after which to retrieve the next page.", + "example": "01631667477600000000000100100374", + "api_fieldname": "after", + "entity_fieldname": "after", + "in": "query", + "name": "after", + "external_param": true, + "parameter_fieldname": "after", + "required": false, + "_key": "after" }, { - "description": "Forbidden.", + "description": "Comma-separated list of data fields to return. Currently supported: `total_count`.", + "in": "query", + "name": "include", + "type": "string", + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "required": false, + "_key": "include" + }, + { + "type": "integer", + "description": "The number of results to return (2-1000). Values outside of this range are set to the closest limit.", + "example": 50, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "in": "query", + "name": "limit", + "external_param": true, + "parameter_fieldname": "limit", + "required": false, + "_key": "limit" + }, + { + "type": "string", + "description": "Record order. Acceptable values: ASC, DESC. Default: ASC.", + "example": "DESC", + "api_fieldname": "order", + "entity_fieldname": "order", + "in": "query", + "name": "order", + "external_param": true, + "parameter_fieldname": "order", + "required": false, + "_key": "order" + } + ], + "method": "get", + "mode": "list", + "responses": [ + { + "description": "OK.", + "schema": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The ID of the item after which to retrieve the next page.", + "example": "01631667477600000000000100100374", + "api_fieldname": "after", + "entity_fieldname": "after", + "in": "query", + "name": "after", + "external_param": true, + "parameter_fieldname": "after", + "required": false, + "_key": "after" + }, + { + "type": "array", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "format": "date-time", + "description": "Creation UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "_key": "created_at" + }, + { + "type": "string", + "maxLength": 100, + "description": "General description for the certificate issuer.", + "example": "GlobalSign sample issuer", + "x-nullable": true, + "_key": "description" + }, + { + "type": "string", + "description": "Entity instance signature.", + "example": "1", + "_key": "etag" + }, + { + "type": "string", + "description": "Certificate issuer ID.", + "example": "01234567890ABCDEF01234567890ABCDEF", + "_key": "id" + }, + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value is empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.", + "example": [], + "_key": "issuer_attributes" + }, + { + "type": "string", + "enum": [ + "GLOBAL_SIGN", + "CFSSL_AUTH" + ], + "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.", + "example": "GLOBAL_SIGN", + "_key": "issuer_type" + }, + { + "type": "string", + "maxLength": 50, + "description": "Certificate issuer name, unique per account.", + "example": "GS Issuer", + "_key": "name" + }, + { + "type": "string", + "enum": [ + "certificate-issuer" + ], + "_key": "object" + } + ], + "required": [ + "issuer_type" + ], + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer" + } + }, + "description": "List of certificate issuers.", + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" + }, + { + "type": "boolean", + "description": "More results are available.", + "example": false, + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "description": "The number of results to return (2-1000). Values outside of this range are set to the closest limit.", + "example": 50, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "in": "query", + "name": "limit", + "external_param": true, + "parameter_fieldname": "limit", + "required": false, + "_key": "limit" + }, + { + "type": "string", + "description": "The type of this API object is `list`.", + "example": "list", + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "description": "Record order. Acceptable values: ASC, DESC. Default: ASC.", + "example": "DESC", + "api_fieldname": "order", + "entity_fieldname": "order", + "in": "query", + "name": "order", + "external_param": true, + "parameter_fieldname": "order", + "required": false, + "_key": "order" + }, + { + "format": "integer", + "type": "integer", + "example": 1, + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" + } + ], + "pagination": true, + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer" + } + }, + "_key": "200" + }, + { + "description": "Unauthorized.", "schema": { "type": "object", "required": [ @@ -24241,10 +23072,10 @@ } ] }, - "_key": "403" + "_key": "401" }, { - "description": "A certificate issuer configuration with this reference already exists.\n", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -24304,16 +23135,16 @@ } ] }, - "_key": "409" + "_key": "403" } ], - "path": "/v3/certificate-issuer-configurations", - "summary": "Create certificate issuer configuration.", - "return_type": "certificate_issuer_config", + "path": "/v3/certificate-issuers", + "summary": "Get certificate issuers list.", + "return_type": "paginated_response(certificate_issuer)", "return_info": { "self": true, "custom": false, - "type": "certificate_issuer_config" + "type": "certificate_issuer" }, "x_filter": {}, "x_deprecation": null, @@ -24322,47 +23153,138 @@ "etag", "type", "filter", - "is_custom", - "id", - "created_at", - "updated_at" + "has_more", + "total_count", + "data" ], + "foreign_key_priority": "self", "group_id": "Security", "parameter_map": { - "certificate-issuer-configuration-id": "id" + "certificate-issuer-id": "id" + }, + "operation_id": "getCertificateIssuers", + "pagination": true, + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer" }, - "operation_id": "createCertificateIssuerConfig", - "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "create" + "_key": "list" }, { - "description": "Delete the configured certificate issuer configuration.\nYou can only delete the configurations of custom certificates.\n", + "description": "(No description provided)", "field_renames": [], "fields": [ { - "name": "certificate-issuer-configuration-id", - "in": "path", - "description": "The ID of the certificate issuer configuration.\n", - "required": true, "type": "string", + "description": "Certificate issuer ID.", + "example": "01234567890ABCDEF01234567890ABCDEF", + "api_fieldname": "id", "entity_fieldname": "id", - "api_fieldname": "certificate-issuer-configuration-id", - "external_param": false, - "parameter_fieldname": "certificate-issuer-configuration-id", + "parameter_fieldname": "certificate-issuer-id", + "in": "path", + "required": true, "_key": "id" } ], - "method": "delete", - "mode": "delete", + "method": "get", + "mode": "read", "responses": [ { - "description": "No content.", - "_key": "204" + "description": "OK.", + "schema": { + "type": "object", + "properties": [ + { + "type": "string", + "format": "date-time", + "description": "Creation UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "string", + "maxLength": 100, + "description": "General description for the certificate issuer.", + "example": "GlobalSign sample issuer", + "x-nullable": true, + "api_fieldname": "description", + "entity_fieldname": "description", + "_key": "description" + }, + { + "type": "string", + "description": "Entity instance signature.", + "example": "1", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "Certificate issuer ID.", + "example": "01234567890ABCDEF01234567890ABCDEF", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value is empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.", + "example": [], + "api_fieldname": "issuer_attributes", + "entity_fieldname": "issuer_attributes", + "_key": "issuer_attributes" + }, + { + "type": "string", + "enum": [ + "GLOBAL_SIGN", + "CFSSL_AUTH" + ], + "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.", + "example": "GLOBAL_SIGN", + "api_fieldname": "issuer_type", + "entity_fieldname": "issuer_type", + "_key": "issuer_type" + }, + { + "type": "string", + "maxLength": 50, + "description": "Certificate issuer name, unique per account.", + "example": "GS Issuer", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" + }, + { + "type": "string", + "enum": [ + "certificate-issuer" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + } + ], + "required": [ + "issuer_type" + ], + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer" + } + }, + "_key": "200" }, { - "description": "Validation error.", + "description": "Validation error: The data used to get the certificate issuer failed validation.", "schema": { "type": "object", "required": [ @@ -24614,13 +23536,13 @@ "_key": "404" } ], - "path": "/v3/certificate-issuer-configurations/{certificate-issuer-configuration-id}", - "summary": "Delete certificate issuer configuration.", - "return_type": "certificate_issuer_config", + "path": "/v3/certificate-issuers/{certificate-issuer-id}", + "summary": "Get certificate issuer by ID.", + "return_type": "certificate_issuer", "return_info": { "self": true, "custom": false, - "type": "certificate_issuer_config" + "type": "certificate_issuer" }, "x_filter": {}, "x_deprecation": null, @@ -24629,48 +23551,121 @@ "etag", "type", "filter", - "is_custom" + "created_at", + "issuer_type", + "name", + "description", + "issuer_attributes" ], "group_id": "Security", "parameter_map": { - "certificate-issuer-configuration-id": "id" + "certificate-issuer-id": "id" }, - "operation_id": "deleteCertificateIssuerConfigByID", + "operation_id": "getCertificateIssuer", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "delete" + "_key": "read" }, { - "description": "Provides the configured certificate issuer to be used when creating device\ncertificates for LwM2M communication.
\n", + "description": "Update a certificate issuer.\n
\n**Example:**\n\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621560be51507b9d48a91b00000000 \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n-d '{\n \"description\": \"Sample GlobalSign certificate issuer - updated.\",\n \"name\": \"GlobalSign Issuer\"\n}'\n```", "field_renames": [], - "fields": [], - "method": "get", - "mode": "get_default", + "fields": [ + { + "type": "string", + "maxLength": 100, + "description": "General description for the certificate issuer.", + "example": "GlobalSign sample issuer", + "x-nullable": true, + "api_fieldname": "description", + "entity_fieldname": "description", + "parameter_fieldname": "description", + "in": "body", + "required": false, + "_key": "description" + }, + { + "type": "string", + "description": "Certificate issuer ID.", + "example": "01234567890ABCDEF01234567890ABCDEF", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "certificate-issuer-id", + "in": "path", + "required": true, + "_key": "id" + }, + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value is empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.", + "example": [], + "api_fieldname": "issuer_attributes", + "entity_fieldname": "issuer_attributes", + "parameter_fieldname": "issuer_attributes", + "in": "body", + "required": false, + "_key": "issuer_attributes" + }, + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The credentials required to connect to the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, see definition of GlobalSignCredentials.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.", + "example": [], + "name": "issuer_credentials", + "in": "body", + "schema_param": true, + "entity_fieldname": "issuer_credentials", + "api_fieldname": "issuer_credentials", + "external_param": true, + "parameter_fieldname": "issuer_credentials", + "required": false, + "_key": "issuer_credentials" + }, + { + "type": "string", + "maxLength": 50, + "description": "Certificate issuer name, unique per account.", + "example": "GS Issuer", + "api_fieldname": "name", + "entity_fieldname": "name", + "parameter_fieldname": "name", + "in": "body", + "required": false, + "_key": "name" + } + ], + "method": "put", + "mode": "update", "responses": [ { "description": "OK.", "schema": { "type": "object", "properties": [ - { - "x-nullable": true, - "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "certificate_issuer_id", - "entity_fieldname": "certificate_issuer_id", - "_key": "certificate_issuer_id" - }, { "type": "string", "format": "date-time", - "description": "Created UTC time RFC3339.", + "description": "Creation UTC time RFC3339.", "example": "2017-01-01T00:00:00Z", "api_fieldname": "created_at", "entity_fieldname": "created_at", "_key": "created_at" }, + { + "type": "string", + "maxLength": 100, + "description": "General description for the certificate issuer.", + "example": "GlobalSign sample issuer", + "x-nullable": true, + "api_fieldname": "description", + "entity_fieldname": "description", + "_key": "description" + }, { "type": "string", "description": "Entity instance signature.", @@ -24681,55 +23676,66 @@ }, { "type": "string", - "description": "The ID of the certificate issuer configuration.\n", - "example": "01648415a2a30242ac18000500000000", + "description": "Certificate issuer ID.", + "example": "01234567890ABCDEF01234567890ABCDEF", "api_fieldname": "id", "entity_fieldname": "id", "_key": "id" }, { - "type": "boolean", - "example": true, - "api_fieldname": "is_custom", - "entity_fieldname": "is_custom", - "_key": "is_custom" + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value is empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.", + "example": [], + "api_fieldname": "issuer_attributes", + "entity_fieldname": "issuer_attributes", + "_key": "issuer_attributes" }, { "type": "string", "enum": [ - "certificate-issuer-configuration" + "GLOBAL_SIGN", + "CFSSL_AUTH" ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "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.", + "example": "GLOBAL_SIGN", + "api_fieldname": "issuer_type", + "entity_fieldname": "issuer_type", + "_key": "issuer_type" }, { "type": "string", - "description": "The certificate name to which the certificate issuer configuration applies.", - "example": "customer.dlms", - "api_fieldname": "reference", - "entity_fieldname": "reference", - "_key": "reference" + "maxLength": 50, + "description": "Certificate issuer name, unique per account.", + "example": "GS Issuer", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" }, { "type": "string", - "format": "date-time", - "description": "Updated UTC time RFC3339.", - "example": "2017-02-01T00:00:00Z", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "enum": [ + "certificate-issuer" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" } ], + "required": [ + "issuer_type" + ], "foreign_key": { "group": "Security", - "entity": "certificate_issuer_config" + "entity": "certificate_issuer" } }, "_key": "200" }, { - "description": "Validation error.", + "description": "Validation error: The data used to update the certificate issuer failed validation.", "schema": { "type": "object", "required": [ @@ -24916,234 +23922,9 @@ ] }, "_key": "403" - } - ], - "path": "/v3/certificate-issuer-configurations/lwm2m", - "summary": "Get certificate issuer configuration.", - "return_type": "certificate_issuer_config", - "return_info": { - "self": true, - "custom": false, - "type": "certificate_issuer_config" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "is_custom", - "id", - "certificate_issuer_id", - "reference", - "created_at", - "updated_at" - ], - "group_id": "Security", - "parameter_map": { - "certificate-issuer-configuration-id": "id" - }, - "operation_id": "getCertificateIssuerConfig", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "get_default" - }, - { - "description": "Get certificate issuer configurations, optionally filtered by reference.\n
\n**Example usage:**\n\n```\ncurl \\\n-H 'authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations \\\n```\n```\ncurl \\\n-H 'authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations?reference__eq=dlms \\\n```\nNote: This endpoint does not implement pagination and therefore, list control parameters such as `limit` or `after` will be ignored by the system.\n", - "field_renames": [], - "fields": [ - { - "type": "string", - "description": "The ID of The item after which to retrieve the next page.", - "example": "01631667477600000000000100100374", - "api_fieldname": "after", - "entity_fieldname": "after", - "in": "query", - "name": "after", - "external_param": true, - "parameter_fieldname": "after", - "required": false, - "_key": "after" - }, - { - "description": "Comma-separated list of data fields to return. Currently supported: `total_count`", - "in": "query", - "name": "include", - "type": "string", - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "required": false, - "_key": "include" - }, - { - "type": "integer", - "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, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "in": "query", - "name": "limit", - "external_param": true, - "parameter_fieldname": "limit", - "required": false, - "_key": "limit" - }, - { - "type": "string", - "description": "The order of the records based on creation time, `ASC` or `DESC`; by default `ASC`.", - "example": "DESC", - "api_fieldname": "order", - "entity_fieldname": "order", - "in": "query", - "name": "order", - "external_param": true, - "parameter_fieldname": "order", - "required": false, - "_key": "order" - } - ], - "method": "get", - "mode": "list", - "responses": [ - { - "description": "OK.", - "schema": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "An offset token for current page.", - "example": "01631667477600000000000100100374", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": [ - { - "x-nullable": true, - "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", - "example": "01648415a2a30242ac18000500000000", - "_key": "certificate_issuer_id" - }, - { - "type": "string", - "format": "date-time", - "description": "Created UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "_key": "created_at" - }, - { - "type": "string", - "description": "Entity instance signature.", - "example": "1", - "_key": "etag" - }, - { - "type": "string", - "description": "The ID of the certificate issuer configuration.\n", - "example": "01648415a2a30242ac18000500000000", - "_key": "id" - }, - { - "type": "boolean", - "example": true, - "_key": "is_custom" - }, - { - "type": "string", - "enum": [ - "certificate-issuer-configuration" - ], - "_key": "object" - }, - { - "type": "string", - "description": "The certificate name to which the certificate issuer configuration applies.", - "example": "customer.dlms", - "_key": "reference" - }, - { - "type": "string", - "format": "date-time", - "description": "Updated UTC time RFC3339.", - "example": "2017-02-01T00:00:00Z", - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Security", - "entity": "certificate_issuer_config" - } - }, - "description": "List of certificate issuers.", - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "description": "Are there more results available.", - "example": false, - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" - }, - { - "type": "integer", - "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, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" - }, - { - "type": "string", - "description": "The type of this API object is a `list`.", - "example": "list", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "description": "The creation time based order of the entries.", - "example": "DESC", - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" - }, - { - "format": "integer", - "type": "integer", - "example": 1, - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Security", - "entity": "certificate_issuer_config" - } - }, - "_key": "200" }, { - "description": "Validation error.", + "description": "Not found.", "schema": { "type": "object", "required": [ @@ -25203,10 +23984,10 @@ } ] }, - "_key": "400" + "_key": "404" }, { - "description": "Unauthorized.", + "description": "Conflict. A certificate issuer with this name already exists.", "schema": { "type": "object", "required": [ @@ -25266,10 +24047,10 @@ } ] }, - "_key": "401" + "_key": "409" }, { - "description": "Forbidden.", + "description": "The request failed due to customer-configured external service.", "schema": { "type": "object", "required": [ @@ -25329,67 +24110,56 @@ } ] }, - "_key": "403" + "_key": "424" } ], - "path": "/v3/certificate-issuer-configurations", - "summary": "Get certificate issuer configurations.", - "return_type": "paginated_response(certificate_issuer_config)", + "path": "/v3/certificate-issuers/{certificate-issuer-id}", + "summary": "Update certificate issuer.", + "return_type": "certificate_issuer", "return_info": { "self": true, "custom": false, - "type": "certificate_issuer_config" - }, - "x_filter": { - "reference": [ - "eq" - ] + "type": "certificate_issuer" }, + "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", "etag", "type", "filter", - "is_custom", - "has_more", - "total_count", - "data", - "reference__eq" + "created_at", + "issuer_type" ], - "foreign_key_priority": "self", "group_id": "Security", "parameter_map": { - "certificate-issuer-configuration-id": "id" - }, - "operation_id": "getCertificateIssuerConfigs", - "pagination": true, - "foreign_key": { - "group": "Security", - "entity": "certificate_issuer_config" + "certificate-issuer-id": "id" }, + "operation_id": "updateCertificateIssuer", + "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "list" + "_key": "update" }, { - "description": "Provides the configured certificate issuer.\n", + "description": "Validates the certificate issuer by sending a signing request for a test certificate. This should be done before the configuration is made active.\n
\n**Note:**\nThe API requests the 3rd party CA to sign a test certificate.\nFor some 3rd party CAs, this operation may use the account quota.\n
\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621a36719d507b9d48a91b00000000/verify \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n```", "field_renames": [], "fields": [ { - "type": "string", - "description": "The ID of the certificate issuer configuration.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "certificate-issuer-configuration-id", + "name": "certificate-issuer-id", "in": "path", + "description": "Certificate issuer ID.", "required": true, + "type": "string", + "entity_fieldname": "id", + "api_fieldname": "certificate-issuer-id", + "external_param": false, + "parameter_fieldname": "certificate-issuer-id", "_key": "id" } ], - "method": "get", - "mode": "read", + "method": "post", + "mode": "verify", "responses": [ { "description": "OK.", @@ -25397,82 +24167,94 @@ "type": "object", "properties": [ { - "x-nullable": true, "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "certificate_issuer_id", - "entity_fieldname": "certificate_issuer_id", - "_key": "certificate_issuer_id" + "description": "Provides details in case of failure.", + "example": "Message describing the verification failure", + "api_fieldname": "message", + "entity_fieldname": "message", + "_key": "message" }, { - "type": "string", - "format": "date-time", - "description": "Created UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, + "type": "boolean", + "description": "Indicates whether the certificate issuer was verified successfully.", + "example": false, + "api_fieldname": "successful", + "entity_fieldname": "successful", + "_key": "successful" + } + ], + "foreign_key": { + "group": "Security", + "entity": "verification_response" + } + }, + "_key": "200" + }, + { + "description": "Validation error", + "schema": { + "type": "object", + "required": [ + "code", + "fields", + "message", + "object", + "request_id", + "type" + ], + "properties": [ { - "type": "string", - "description": "Entity instance signature.", - "example": "1", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "type": "integer", + "format": "int32", + "description": "Error code. Correlates with response status code.", + "_key": "code" }, { - "type": "string", - "description": "The ID of the certificate issuer configuration.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "type": "array", + "description": "A list of request fields that failed validation.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Field name.", + "_key": "field" + }, + { + "type": "string", + "description": "Error message related to the field.", + "_key": "message" + } + ] + }, + "_key": "fields" }, { - "type": "boolean", - "example": true, - "api_fieldname": "is_custom", - "entity_fieldname": "is_custom", - "_key": "is_custom" + "type": "string", + "description": "Error message.", + "_key": "message" }, { "type": "string", - "enum": [ - "certificate-issuer-configuration" - ], - "api_fieldname": "object", - "entity_fieldname": "object", + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "The certificate name to which the certificate issuer configuration applies.", - "example": "customer.dlms", - "api_fieldname": "reference", - "entity_fieldname": "reference", - "_key": "reference" + "description": "Request ID from JWT.", + "_key": "request_id" }, { "type": "string", - "format": "date-time", - "description": "Updated UTC time RFC3339.", - "example": "2017-02-01T00:00:00Z", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "description": "Error type.", + "_key": "type" } - ], - "foreign_key": { - "group": "Security", - "entity": "certificate_issuer_config" - } + ] }, - "_key": "200" + "_key": "400" }, { - "description": "Validation error.", + "description": "Unauthorized.", "schema": { "type": "object", "required": [ @@ -25532,10 +24314,10 @@ } ] }, - "_key": "400" + "_key": "401" }, { - "description": "Unauthorized.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -25595,10 +24377,10 @@ } ] }, - "_key": "401" + "_key": "403" }, { - "description": "Forbidden.", + "description": "Not found.", "schema": { "type": "object", "required": [ @@ -25658,10 +24440,10 @@ } ] }, - "_key": "403" + "_key": "404" }, { - "description": "Not found.", + "description": "The request failed due to customer configured external service.", "schema": { "type": "object", "required": [ @@ -25721,48 +24503,135 @@ } ] }, - "_key": "404" + "_key": "424" } ], - "path": "/v3/certificate-issuer-configurations/{certificate-issuer-configuration-id}", - "summary": "Get certificate issuer configuration.", - "return_type": "certificate_issuer_config", + "path": "/v3/certificate-issuers/{certificate-issuer-id}/verify", + "summary": "Verify certificate issuer.", + "return_type": "verification_response", "return_info": { - "self": true, + "self": false, "custom": false, - "type": "certificate_issuer_config" + "type": "verification_response" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "successful", + "message" + ], + "group_id": "Security", + "parameter_map": { + "certificate-issuer-id": "id" + }, + "unaggregated": true, + "operation_id": "verifyCertificateIssuer", + "foreign_key": { + "entity": "verification_response", + "group": "Security" + }, + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "verify" + } + ], + "fields": [ + { + "type": "string", + "format": "date-time", + "description": "Creation UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "string", + "maxLength": 100, + "description": "General description for the certificate issuer.", + "example": "GlobalSign sample issuer", + "x-nullable": true, + "api_fieldname": "description", + "readOnly": false, + "required": false, + "_key": "description" + }, + { + "type": "string", + "description": "Certificate issuer ID.", + "example": "01234567890ABCDEF01234567890ABCDEF", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "_key": "id" + }, + { + "type": "object", + "additionalProperties": { + "type": "string" }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "is_custom", - "certificate_issuer_id", - "reference", - "created_at", - "updated_at" + "description": "General attributes for connecting the certificate issuer.\nWhen the issuer_type is GLOBAL_SIGN, the value is empty.\nWhen the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.", + "example": [], + "api_fieldname": "issuer_attributes", + "readOnly": false, + "required": false, + "_key": "issuer_attributes" + }, + { + "type": "string", + "enum": [ + "GLOBAL_SIGN", + "CFSSL_AUTH" ], - "group_id": "Security", - "parameter_map": { - "certificate-issuer-configuration-id": "id" - }, - "operation_id": "getCertificateIssuerConfigByID", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "read" + "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.", + "example": "GLOBAL_SIGN", + "api_fieldname": "issuer_type", + "readOnly": false, + "required": true, + "enum_reference": "certificate_issuer_type_enum", + "_key": "issuer_type" }, { - "description": "Update the configured certificate issuer configuration.\n", + "type": "string", + "maxLength": 50, + "description": "Certificate issuer name, unique per account.", + "example": "GS Issuer", + "api_fieldname": "name", + "readOnly": false, + "required": true, + "_key": "name" + } + ], + "field_renames": [], + "tags": [ + "Security and identity - certificate issuers" + ], + "group_id": "Security", + "_key": "certificate_issuer" + }, + { + "swagger_models": [ + "CertificateIssuerConfigListResponse", + "CertificateIssuerConfigRequest", + "CertificateIssuerConfigResponse", + "CreateCertificateIssuerConfig" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Configure the certificate issuer to use when creating device custom certificates.\n
\n**Example:**\n\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n-d '{\n \"reference\": \"customer.dlms\",\n \"certificate_issuer_id\": \"01621a36719d507b9d48a91b00000000\"\n}'\n```", "field_renames": [], "fields": [ { "x-nullable": true, "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", "example": "01648415a2a30242ac18000500000000", "api_fieldname": "certificate_issuer_id", "entity_fieldname": "certificate_issuer_id", @@ -25773,18 +24642,18 @@ }, { "type": "string", - "description": "The ID of the certificate issuer configuration.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "certificate-issuer-configuration-id", - "in": "path", + "description": "The certificate name to which the certificate issuer configuration applies.", + "example": "customer.dlms", + "api_fieldname": "reference", + "entity_fieldname": "reference", + "parameter_fieldname": "reference", + "in": "body", "required": true, - "_key": "id" + "_key": "reference" } ], - "method": "put", - "mode": "update", + "method": "post", + "mode": "create", "responses": [ { "description": "OK.", @@ -25794,7 +24663,7 @@ { "x-nullable": true, "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", "example": "01648415a2a30242ac18000500000000", "api_fieldname": "certificate_issuer_id", "entity_fieldname": "certificate_issuer_id", @@ -25819,7 +24688,7 @@ }, { "type": "string", - "description": "The ID of the certificate issuer configuration.\n", + "description": "Certificate issuer ID. configuration.", "example": "01648415a2a30242ac18000500000000", "api_fieldname": "id", "entity_fieldname": "id", @@ -25864,7 +24733,7 @@ "entity": "certificate_issuer_config" } }, - "_key": "200" + "_key": "201" }, { "description": "Validation error.", @@ -26056,7 +24925,7 @@ "_key": "403" }, { - "description": "Not found.", + "description": "A certificate issuer configuration with this reference already exists.", "schema": { "type": "object", "required": [ @@ -26116,11 +24985,11 @@ } ] }, - "_key": "404" + "_key": "409" } ], - "path": "/v3/certificate-issuer-configurations/{certificate-issuer-configuration-id}", - "summary": "Update certificate issuer configuration.", + "path": "/v3/certificate-issuer-configurations", + "summary": "Create certificate issuer configuration.", "return_type": "certificate_issuer_config", "return_info": { "self": true, @@ -26135,7 +25004,7 @@ "type", "filter", "is_custom", - "reference", + "id", "created_at", "updated_at" ], @@ -26143,132 +25012,43 @@ "parameter_map": { "certificate-issuer-configuration-id": "id" }, - "operation_id": "updateCertificateIssuerConfigByID", - "additional_operations": [ - { - "operation_id": "updateCertificateIssuerConfig", - "notes": "After retrieving the resource using the `lwm2m` method, it can modified using using this SDK method." - } - ], + "operation_id": "createCertificateIssuerConfig", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "update" - } - ], - "fields": [ - { - "x-nullable": true, - "type": "string", - "description": "The ID of the certificate issuer.\nNull if Device Management internal HSM is used.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "certificate_issuer_id", - "readOnly": false, - "required": true, - "_key": "certificate_issuer_id" - }, - { - "type": "string", - "format": "date-time", - "description": "Created UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "description": "The ID of the certificate issuer configuration.\n", - "example": "01648415a2a30242ac18000500000000", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - }, - { - "type": "string", - "description": "The certificate name to which the certificate issuer configuration applies.", - "example": "customer.dlms", - "api_fieldname": "reference", - "readOnly": false, - "required": true, - "_key": "reference" + "_key": "create" }, { - "type": "string", - "format": "date-time", - "description": "Updated UTC time RFC3339.", - "example": "2017-02-01T00:00:00Z", - "api_fieldname": "updated_at", - "readOnly": true, - "required": false, - "_key": "updated_at" - } - ], - "field_renames": [], - "tags": [ - "Certificate Issuers Activation" - ], - "group_id": "Security", - "_key": "certificate_issuer_config" - }, - { - "swagger_models": [ - "BrandingColor", - "BrandingColorList" - ], - "primary_key_field": "reference", - "methods": [ - { - "description": "Resets the branding color to its dark theme default.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete certificate issuer configuration.\nYou can only delete custom certificate configurations.", "field_renames": [], "fields": [ { - "is_primary_key": true, - "_override": true, - "type": "string", - "api_fieldname": "reference", - "entity_fieldname": "reference", - "enum": [ - "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" - ], - "name": "reference", + "name": "certificate-issuer-configuration-id", "in": "path", - "description": "The name of the branding color.", + "description": "Certificate issuer ID configuration.", "required": true, - "enum_reference": "dark_theme_color_reference_enum", - "_key": "reference" + "type": "string", + "entity_fieldname": "id", + "api_fieldname": "certificate-issuer-configuration-id", + "external_param": false, + "parameter_fieldname": "certificate-issuer-configuration-id", + "_key": "id" } ], "method": "delete", "mode": "delete", "responses": [ { - "description": "Deleted successfully.", + "description": "No content.", "_key": "204" }, { - "description": "Authentication failure.", + "description": "Validation error.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -26278,29 +25058,87 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", + "description": "Field name.", + "_key": "field" + }, + { + "type": "string", + "description": "Error message related to the field.", "_key": "message" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "Error message.", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name: `error`.", + "_key": "object" + }, + { + "type": "string", + "description": "Request ID from JWT.", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type.", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Unauthorized.", + "schema": { + "type": "object", + "required": [ + "code", + "fields", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Error code. Correlates with response status code.", + "_key": "code" + }, + { + "type": "array", + "description": "A list of request fields that failed validation.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -26308,28 +25146,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -26342,6 +25174,7 @@ "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -26351,29 +25184,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -26381,28 +25209,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -26410,11 +25232,12 @@ "_key": "403" }, { - "description": "Color not found.", + "description": "Not found.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -26424,29 +25247,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -26454,28 +25272,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -26483,13 +25295,13 @@ "_key": "404" } ], - "path": "/v3/branding-colors/dark/{reference}", - "summary": "Reset branding color to default.", - "return_type": "void", + "path": "/v3/certificate-issuer-configurations/{certificate-issuer-configuration-id}", + "summary": "Delete certificate issuer configuration.", + "return_type": "certificate_issuer_config", "return_info": { - "self": false, - "custom": true, - "type": "void" + "self": true, + "custom": false, + "type": "certificate_issuer_config" }, "x_filter": {}, "x_deprecation": null, @@ -26497,142 +25309,76 @@ "object", "etag", "type", - "filter" + "filter", + "is_custom" ], - "group_id": "Branding", - "operation_id": "resetDarkColor", - "spec": { - "return_type": "void" + "group_id": "Security", + "parameter_map": { + "certificate-issuer-configuration-id": "id" }, + "operation_id": "deleteCertificateIssuerConfigByID", "pagination": false, "request_content_type": "application/json", "request_body": "json", "_key": "delete" }, { - "description": "Retrieve the dark theme branding colors.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark \\\n-H 'Authorization: Bearer '\n```", + "description": "Provides the configured certificate issuer used when creating device\ncertificates for LwM2M.", "field_renames": [], - "fields": [ - { - "is_primary_key": true, - "_override": true, - "type": "string", - "api_fieldname": "reference", - "entity_fieldname": "reference", - "_key": "reference" - } - ], + "fields": [], "method": "get", - "mode": "list", + "mode": "get_default", "responses": [ { - "description": "Successful operation.", + "description": "OK.", "schema": { "type": "object", - "required": [ - "data", - "has_more", - "limit", - "object", - "total_count" - ], "properties": [ { + "x-nullable": true, "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "certificate_issuer_id", + "entity_fieldname": "certificate_issuer_id", + "_key": "certificate_issuer_id" }, { - "type": "array", - "description": "A list of entities.", - "items": { - "type": "object", - "properties": [ - { - "type": "string", - "example": "#f3f93e", - "description": "The color given as name (purple) or as a hex code.", - "x-nullable": true, - "_key": "color" - }, - { - "type": "string", - "description": "Entity name: always 'branding_color'", - "readOnly": true, - "enum": [ - "branding_color" - ], - "_key": "object" - }, - { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, - "_key": "reference" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_color" - } - }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" + "type": "string", + "format": "date-time", + "description": "Created UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" }, { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" + "type": "string", + "description": "Entity instance signature.", + "example": "1", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" }, { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return, or equal to `total_count`.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" + "type": "string", + "description": "Certificate issuer ID. configuration.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "boolean", + "example": true, + "api_fieldname": "is_custom", + "entity_fieldname": "is_custom", + "_key": "is_custom" }, { "type": "string", - "description": "Entity name: always `list`.", "enum": [ - "list" + "certificate-issuer-configuration" ], "api_fieldname": "object", "entity_fieldname": "object", @@ -26640,39 +25386,36 @@ }, { "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" + "description": "The certificate name to which the certificate issuer configuration applies.", + "example": "customer.dlms", + "api_fieldname": "reference", + "entity_fieldname": "reference", + "_key": "reference" }, { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" + "type": "string", + "format": "date-time", + "description": "Updated UTC time RFC3339.", + "example": "2017-02-01T00:00:00Z", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" } ], - "pagination": true, "foreign_key": { - "group": "Branding", - "entity": "dark_theme_color" + "group": "Security", + "entity": "certificate_issuer_config" } }, "_key": "200" }, { - "description": "Authentication failure.", + "description": "Validation error.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -26682,29 +25425,87 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", + "description": "Field name.", + "_key": "field" + }, + { + "type": "string", + "description": "Error message related to the field.", "_key": "message" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "Error message.", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name: `error`.", + "_key": "object" + }, + { + "type": "string", + "description": "Request ID from JWT.", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type.", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Unauthorized.", + "schema": { + "type": "object", + "required": [ + "code", + "fields", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Error code. Correlates with response status code.", + "_key": "code" + }, + { + "type": "array", + "description": "A list of request fields that failed validation.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -26712,28 +25513,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -26746,6 +25541,7 @@ "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -26755,29 +25551,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -26785,28 +25576,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -26814,13 +25599,13 @@ "_key": "403" } ], - "path": "/v3/branding-colors/dark", - "summary": "Get dark theme branding colors.", - "return_type": "paginated_response(dark_theme_color)", + "path": "/v3/certificate-issuer-configurations/lwm2m", + "summary": "Get certificate issuer configuration.", + "return_type": "certificate_issuer_config", "return_info": { "self": true, "custom": false, - "type": "dark_theme_color" + "type": "certificate_issuer_config" }, "x_filter": {}, "x_deprecation": null, @@ -26829,140 +25614,222 @@ "etag", "type", "filter", - "limit", - "after", - "order", - "total_count", - "has_more", - "data" + "is_custom", + "id", + "certificate_issuer_id", + "reference", + "created_at", + "updated_at" ], - "foreign_key_priority": "self", - "group_id": "Branding", - "operation_id": "getDarkColors", - "pagination": true, - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_color" + "group_id": "Security", + "parameter_map": { + "certificate-issuer-configuration-id": "id" }, + "operation_id": "getCertificateIssuerConfig", + "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "list" + "_key": "get_default" }, { - "description": "Retrieve the requested dark theme branding color.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Get certificate issuer configurations, optionally filtered by reference.\n
\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n```\n
\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations?reference__eq=dlms \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n```\n**Note:** This endpoint does not implement pagination, and therefore ignores list control parameters such as `limit` or `after`.", "field_renames": [], "fields": [ { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, - "api_fieldname": "reference", - "entity_fieldname": "reference", - "name": "reference", - "in": "path", - "required": true, - "enum_reference": "dark_theme_color_reference_enum", - "_key": "reference" + "description": "The ID of the item after which to retrieve the next page.", + "example": "01631667477600000000000100100374", + "api_fieldname": "after", + "entity_fieldname": "after", + "in": "query", + "name": "after", + "external_param": true, + "parameter_fieldname": "after", + "required": false, + "_key": "after" + }, + { + "description": "Comma-separated list of data fields to return. Currently supported: `total_count`.", + "in": "query", + "name": "include", + "type": "string", + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "required": false, + "_key": "include" + }, + { + "type": "integer", + "description": "The number of results to return (2-1000). Values outside of this range are set to the closest limit.", + "example": 50, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "in": "query", + "name": "limit", + "external_param": true, + "parameter_fieldname": "limit", + "required": false, + "_key": "limit" + }, + { + "type": "string", + "description": "Record order. Acceptable values: ASC, DESC. Default: ASC.", + "example": "DESC", + "api_fieldname": "order", + "entity_fieldname": "order", + "in": "query", + "name": "order", + "external_param": true, + "parameter_fieldname": "order", + "required": false, + "_key": "order" } ], "method": "get", - "mode": "read", + "mode": "list", "responses": [ { - "description": "Successful operation.", + "description": "OK.", "schema": { "type": "object", "properties": [ { "type": "string", - "example": "#f3f93e", - "description": "The color given as name (purple) or as a hex code.", - "x-nullable": true, - "api_fieldname": "color", - "entity_fieldname": "color", - "_key": "color" + "description": "An offset token for current page.", + "example": "01631667477600000000000100100374", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" + }, + { + "type": "array", + "items": { + "type": "object", + "properties": [ + { + "x-nullable": true, + "type": "string", + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", + "example": "01648415a2a30242ac18000500000000", + "_key": "certificate_issuer_id" + }, + { + "type": "string", + "format": "date-time", + "description": "Created UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "_key": "created_at" + }, + { + "type": "string", + "description": "Entity instance signature.", + "example": "1", + "_key": "etag" + }, + { + "type": "string", + "description": "Certificate issuer ID. configuration.", + "example": "01648415a2a30242ac18000500000000", + "_key": "id" + }, + { + "type": "boolean", + "example": true, + "_key": "is_custom" + }, + { + "type": "string", + "enum": [ + "certificate-issuer-configuration" + ], + "_key": "object" + }, + { + "type": "string", + "description": "The certificate name to which the certificate issuer configuration applies.", + "example": "customer.dlms", + "_key": "reference" + }, + { + "type": "string", + "format": "date-time", + "description": "Updated UTC time RFC3339.", + "example": "2017-02-01T00:00:00Z", + "_key": "updated_at" + } + ], + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer_config" + } + }, + "description": "List of certificate issuers.", + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" + }, + { + "type": "boolean", + "description": "More results are available.", + "example": false, + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "description": "The number of results to return (2-1000). Values outside of this range are set to the closest limit.", + "example": 50, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "description": "Entity name: always 'branding_color'", - "readOnly": true, - "enum": [ - "branding_color" - ], + "description": "The type of this API object is `list`.", + "example": "list", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, - "api_fieldname": "reference", - "entity_fieldname": "reference", - "_key": "reference" + "description": "Record order based on creation time.", + "example": "DESC", + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" + "format": "integer", + "type": "integer", + "example": 1, + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } ], + "pagination": true, "foreign_key": { - "group": "Branding", - "entity": "subtenant_light_theme_color" + "group": "Security", + "entity": "certificate_issuer_config" } }, "_key": "200" }, { - "description": "Authentication failure.", + "description": "Validation error.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -26972,29 +25839,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27002,40 +25864,35 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] }, - "_key": "401" + "_key": "400" }, { - "description": "Forbidden.", + "description": "Unauthorized.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27045,29 +25902,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27075,40 +25927,35 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] }, - "_key": "403" + "_key": "401" }, { - "description": "Color not found.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27117,30 +25964,25 @@ "properties": [ { "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, + "format": "int32", + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27148,172 +25990,147 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] }, - "_key": "404" + "_key": "403" } ], - "path": "/v3/branding-colors/dark/{reference}", - "summary": "Get dark theme branding color.", - "return_type": "dark_theme_color", + "path": "/v3/certificate-issuer-configurations", + "summary": "Get certificate issuer configurations.", + "return_type": "paginated_response(certificate_issuer_config)", "return_info": { "self": true, "custom": false, - "type": "dark_theme_color" + "type": "certificate_issuer_config" + }, + "x_filter": { + "reference": [ + "eq" + ] }, - "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", "etag", "type", "filter", - "color", - "updated_at" + "is_custom", + "has_more", + "total_count", + "data", + "reference__eq" ], - "group_id": "Branding", - "operation_id": "getDarkColor", - "pagination": false, + "foreign_key_priority": "self", + "group_id": "Security", + "parameter_map": { + "certificate-issuer-configuration-id": "id" + }, + "operation_id": "getCertificateIssuerConfigs", + "pagination": true, + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer_config" + }, "request_content_type": "application/json", "request_body": "json", - "_key": "read" + "_key": "list" }, { - "description": "Update a dark theme branding color.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"#f3f93e\" }'\n```", + "description": "Provides the configured certificate issuer.", "field_renames": [], "fields": [ { "type": "string", - "example": "#f3f93e", - "description": "The color given as name (purple) or as a hex code.", - "x-nullable": true, - "api_fieldname": "color", - "entity_fieldname": "color", - "parameter_fieldname": "color", - "in": "body", - "required": false, - "_key": "color" - }, - { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, - "api_fieldname": "reference", - "entity_fieldname": "reference", - "name": "reference", + "description": "Certificate issuer ID. configuration.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "certificate-issuer-configuration-id", "in": "path", "required": true, - "enum_reference": "dark_theme_color_reference_enum", - "_key": "reference" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "parameter_fieldname": "updated_at", - "in": "body", - "required": false, - "_key": "updated_at" + "_key": "id" } ], - "method": "put", - "mode": "update", + "method": "get", + "mode": "read", "responses": [ { - "description": "Color has been set successfully.", + "description": "OK.", "schema": { "type": "object", "properties": [ { - "type": "string", - "example": "#f3f93e", - "description": "The color given as name (purple) or as a hex code.", "x-nullable": true, - "api_fieldname": "color", - "entity_fieldname": "color", - "_key": "color" + "type": "string", + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "certificate_issuer_id", + "entity_fieldname": "certificate_issuer_id", + "_key": "certificate_issuer_id" + }, + { + "type": "string", + "format": "date-time", + "description": "Created UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "string", + "description": "Entity instance signature.", + "example": "1", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "Certificate issuer ID. configuration.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "boolean", + "example": true, + "api_fieldname": "is_custom", + "entity_fieldname": "is_custom", + "_key": "is_custom" }, { "type": "string", - "description": "Entity name: always 'branding_color'", - "readOnly": true, "enum": [ - "branding_color" + "certificate-issuer-configuration" ], "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, + "description": "The certificate name to which the certificate issuer configuration applies.", + "example": "customer.dlms", "api_fieldname": "reference", "entity_fieldname": "reference", "_key": "reference" @@ -27321,27 +26138,27 @@ { "type": "string", "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, + "description": "Updated UTC time RFC3339.", + "example": "2017-02-01T00:00:00Z", "api_fieldname": "updated_at", "entity_fieldname": "updated_at", "_key": "updated_at" } ], "foreign_key": { - "group": "Branding", - "entity": "subtenant_light_theme_color" + "group": "Security", + "entity": "certificate_issuer_config" } }, "_key": "200" }, { - "description": "Error in input data format.", + "description": "Validation error.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27351,29 +26168,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27381,28 +26193,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -27410,11 +26216,12 @@ "_key": "400" }, { - "description": "Authentication failure.", + "description": "Unauthorized.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27424,29 +26231,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27454,28 +26256,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -27488,6 +26284,7 @@ "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27497,29 +26294,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27527,28 +26319,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -27556,11 +26342,218 @@ "_key": "403" }, { - "description": "Color not found.", + "description": "Not found.", + "schema": { + "type": "object", + "required": [ + "code", + "fields", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Error code. Correlates with response status code.", + "_key": "code" + }, + { + "type": "array", + "description": "A list of request fields that failed validation.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Field name.", + "_key": "field" + }, + { + "type": "string", + "description": "Error message related to the field.", + "_key": "message" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "Error message.", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name: `error`.", + "_key": "object" + }, + { + "type": "string", + "description": "Request ID from JWT.", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type.", + "_key": "type" + } + ] + }, + "_key": "404" + } + ], + "path": "/v3/certificate-issuer-configurations/{certificate-issuer-configuration-id}", + "summary": "Get certificate issuer configuration.", + "return_type": "certificate_issuer_config", + "return_info": { + "self": true, + "custom": false, + "type": "certificate_issuer_config" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "is_custom", + "certificate_issuer_id", + "reference", + "created_at", + "updated_at" + ], + "group_id": "Security", + "parameter_map": { + "certificate-issuer-configuration-id": "id" + }, + "operation_id": "getCertificateIssuerConfigByID", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "read" + }, + { + "description": "Update certificate issuer configuration.", + "field_renames": [], + "fields": [ + { + "x-nullable": true, + "type": "string", + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "certificate_issuer_id", + "entity_fieldname": "certificate_issuer_id", + "parameter_fieldname": "certificate_issuer_id", + "in": "body", + "required": false, + "_key": "certificate_issuer_id" + }, + { + "type": "string", + "description": "Certificate issuer ID. configuration.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "certificate-issuer-configuration-id", + "in": "path", + "required": true, + "_key": "id" + } + ], + "method": "put", + "mode": "update", + "responses": [ + { + "description": "OK.", + "schema": { + "type": "object", + "properties": [ + { + "x-nullable": true, + "type": "string", + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "certificate_issuer_id", + "entity_fieldname": "certificate_issuer_id", + "_key": "certificate_issuer_id" + }, + { + "type": "string", + "format": "date-time", + "description": "Created UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "string", + "description": "Entity instance signature.", + "example": "1", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "Certificate issuer ID. configuration.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "boolean", + "example": true, + "api_fieldname": "is_custom", + "entity_fieldname": "is_custom", + "_key": "is_custom" + }, + { + "type": "string", + "enum": [ + "certificate-issuer-configuration" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "description": "The certificate name to which the certificate issuer configuration applies.", + "example": "customer.dlms", + "api_fieldname": "reference", + "entity_fieldname": "reference", + "_key": "reference" + }, + { + "type": "string", + "format": "date-time", + "description": "Updated UTC time RFC3339.", + "example": "2017-02-01T00:00:00Z", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" + } + ], + "foreign_key": { + "group": "Security", + "entity": "certificate_issuer_config" + } + }, + "_key": "200" + }, + { + "description": "Validation error.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27570,29 +26563,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27600,200 +26588,35 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] }, - "_key": "404" - } - ], - "path": "/v3/branding-colors/dark/{reference}", - "summary": "Updates a dark theme branding color.", - "return_type": "dark_theme_color", - "return_info": { - "self": true, - "custom": false, - "type": "dark_theme_color" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter" - ], - "group_id": "Branding", - "operation_id": "setDarkColor", - "additional_operations": [ - { - "operation_id": "bulkSetDarkColors", - "notes": "Bulk operation is not appriate for SDK's entity model, this functionality is covered by the update method." - } - ], - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "update" - } - ], - "fields": [ - { - "type": "string", - "example": "#f3f93e", - "description": "The color given as name (purple) or as a hex code.", - "x-nullable": true, - "api_fieldname": "color", - "readOnly": false, - "required": false, - "_key": "color" - }, - { - "enum": [ - "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", - "description": "Color name.", - "is_primary_key": true, - "_override": true, - "api_fieldname": "reference", - "readOnly": false, - "required": false, - "enum_reference": "dark_theme_color_reference_enum", - "_key": "reference" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "api_fieldname": "updated_at", - "required": false, - "_key": "updated_at" - } - ], - "field_renames": [], - "tags": [ - "User interface configuration - colors" - ], - "group_id": "Branding", - "_key": "dark_theme_color" - }, - { - "swagger_models": [ - "BrandingImage", - "BrandingImageList" - ], - "primary_key_field": "reference", - "methods": [ - { - "description": "Revert an account branding image to dark theme default.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "is_primary_key": true, - "_override": true, - "type": "string", - "api_fieldname": "reference", - "entity_fieldname": "reference", - "enum": [ - "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" - ], - "name": "reference", - "in": "path", - "description": "Name of the branding images (icon or picture).", - "required": true, - "enum_reference": "dark_theme_image_reference_enum", - "_key": "reference" - } - ], - "method": "post", - "mode": "delete", - "responses": [ - { - "description": "Image reverted successfully.", - "_key": "204" + "_key": "400" }, { - "description": "Authentication failure.", + "description": "Unauthorized.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27803,29 +26626,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27833,28 +26651,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -27867,6 +26679,7 @@ "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27876,29 +26689,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27906,28 +26714,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -27935,11 +26737,12 @@ "_key": "403" }, { - "description": "Unknown image reference.", + "description": "Not found.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -27949,29 +26752,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -27979,28 +26777,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -28008,13 +26800,13 @@ "_key": "404" } ], - "path": "/v3/branding-images/dark/{reference}/clear", - "summary": "Revert an image to dark theme default.", - "return_type": "dark_theme_image", + "path": "/v3/certificate-issuer-configurations/{certificate-issuer-configuration-id}", + "summary": "Update certificate issuer configuration.", + "return_type": "certificate_issuer_config", "return_info": { "self": true, "custom": false, - "type": "dark_theme_image" + "type": "certificate_issuer_config" }, "x_filter": {}, "x_deprecation": null, @@ -28022,17 +26814,95 @@ "object", "etag", "type", - "filter" + "filter", + "is_custom", + "reference", + "created_at", + "updated_at" + ], + "group_id": "Security", + "parameter_map": { + "certificate-issuer-configuration-id": "id" + }, + "operation_id": "updateCertificateIssuerConfigByID", + "additional_operations": [ + { + "operation_id": "updateCertificateIssuerConfig", + "notes": "After retrieving the resource using the `lwm2m` method, it can modified using using this SDK method." + } ], - "group_id": "Branding", - "operation_id": "clearDarkImage", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "delete" + "_key": "update" + } + ], + "fields": [ + { + "x-nullable": true, + "type": "string", + "description": "Certificate issuer ID.\nNull if Device Management internal HSM is used.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "certificate_issuer_id", + "readOnly": false, + "required": true, + "_key": "certificate_issuer_id" + }, + { + "type": "string", + "format": "date-time", + "description": "Created UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "string", + "description": "Certificate issuer ID. configuration.", + "example": "01648415a2a30242ac18000500000000", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "_key": "id" + }, + { + "type": "string", + "description": "The certificate name to which the certificate issuer configuration applies.", + "example": "customer.dlms", + "api_fieldname": "reference", + "readOnly": false, + "required": true, + "_key": "reference" }, { - "description": "Retrieve metadata for all dark theme branding images.\n\n**Example:**\n`curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark \\\n-H 'Authorization: Bearer '\n```", + "type": "string", + "format": "date-time", + "description": "Updated UTC time RFC3339.", + "example": "2017-02-01T00:00:00Z", + "api_fieldname": "updated_at", + "readOnly": true, + "required": false, + "_key": "updated_at" + } + ], + "field_renames": [], + "tags": [ + "Security and identity - certificate issuer configurations" + ], + "group_id": "Security", + "_key": "certificate_issuer_config" + }, + { + "swagger_models": [ + "BrandingColor", + "BrandingColorList" + ], + "primary_key_field": "reference", + "methods": [ + { + "description": "Resets the branding color to its dark theme default.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -28041,178 +26911,114 @@ "type": "string", "api_fieldname": "reference", "entity_fieldname": "reference", + "enum": [ + "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" + ], + "name": "reference", + "in": "path", + "description": "The name of the branding color.", + "required": true, + "enum_reference": "dark_theme_color_reference_enum", "_key": "reference" } ], - "method": "get", - "mode": "list", + "method": "delete", + "mode": "delete", "responses": [ { - "description": "Successful operation.", + "description": "Deleted successfully.", + "_key": "204" + }, + { + "description": "Authentication failure.", "schema": { "type": "object", "required": [ - "data", - "has_more", - "limit", + "code", + "message", "object", - "total_count" + "request_id", + "type" ], "properties": [ { - "type": "string", - "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { "type": "array", - "description": "A list of entities.", + "description": "Request fields which failed validation.", "items": { "type": "object", + "required": [ + "name", + "message" + ], "properties": [ { "type": "string", - "description": "Entity name: always 'branding_image'", - "readOnly": true, - "enum": [ - "branding_image" - ], - "_key": "object" - }, - { - "enum": [ - "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": "Name of the image.", - "is_primary_key": true, - "_override": true, - "_key": "reference" - }, - { - "type": "string", - "format": "uri", - "example": "https://static.mbed.com/123456789.jpg", - "description": "The static link to the image.", - "readOnly": true, - "_key": "static_uri" + "description": "Message describing the error condition.", + "_key": "message" }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "_key": "updated_at" + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" } - ], - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_image" - } + ] }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "example": false, - "description": "Flag indicating whether there are more results.", - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" + "_key": "fields" }, { - "type": "integer", - "format": "int32", - "example": 50, - "description": "The number of results to return, or equal to `total_count`.", - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "description": "Entity name: always `list`.", + "description": "Entity name, always `error`.", "enum": [ - "list" + "error" ], - "api_fieldname": "object", - "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", - "enum": [ - "ASC", - "DESC" - ], - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { - "type": "integer", - "format": "int32", - "example": 20, - "description": "The total number of records, if requested.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "pagination": true, - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_image" - } + ] }, - "_key": "200" + "_key": "401" }, { - "description": "Authentication failure.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -28282,10 +27088,10 @@ } ] }, - "_key": "401" + "_key": "403" }, { - "description": "Forbidden.", + "description": "Color not found.", "schema": { "type": "object", "required": [ @@ -28355,16 +27161,16 @@ } ] }, - "_key": "403" + "_key": "404" } ], - "path": "/v3/branding-images/dark", - "summary": "Get metadata of all dark theme images.", - "return_type": "paginated_response(dark_theme_image)", + "path": "/v3/branding-colors/dark/{reference}", + "summary": "Reset branding color to default.", + "return_type": "void", "return_info": { - "self": true, - "custom": false, - "type": "dark_theme_image" + "self": false, + "custom": true, + "type": "void" }, "x_filter": {}, "x_deprecation": null, @@ -28372,253 +27178,178 @@ "object", "etag", "type", - "filter", - "limit", - "after", - "order", - "total_count", - "has_more", - "data" + "filter" ], - "foreign_key_priority": "self", "group_id": "Branding", - "operation_id": "getAllDarkImageData", - "pagination": true, - "foreign_key": { - "group": "Branding", - "entity": "dark_theme_image" + "operation_id": "resetDarkColor", + "spec": { + "return_type": "void" }, + "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "list" + "_key": "delete" }, { - "description": "Retrieve metadata for one account dark theme branding image.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the dark theme branding colors.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { - "enum": [ - "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": "Name of the image.", "is_primary_key": true, "_override": true, + "type": "string", "api_fieldname": "reference", "entity_fieldname": "reference", - "name": "reference", - "in": "path", - "required": true, - "enum_reference": "dark_theme_image_reference_enum", "_key": "reference" } ], "method": "get", - "mode": "read", + "mode": "list", "responses": [ { "description": "Successful operation.", - "schema": { - "type": "object", - "properties": [ - { - "type": "string", - "description": "Entity name: always 'branding_image'", - "readOnly": true, - "enum": [ - "branding_image" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "enum": [ - "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": "Name of the image.", - "is_primary_key": true, - "_override": true, - "api_fieldname": "reference", - "entity_fieldname": "reference", - "_key": "reference" - }, - { - "type": "string", - "format": "uri", - "example": "https://static.mbed.com/123456789.jpg", - "description": "The static link to the image.", - "readOnly": true, - "api_fieldname": "static_uri", - "entity_fieldname": "static_uri", - "_key": "static_uri" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" - } - ], - "foreign_key": { - "group": "Branding", - "entity": "subtenant_light_theme_image" - } - }, - "_key": "200" - }, - { - "description": "Authentication failure.", "schema": { "type": "object", "required": [ - "code", - "message", + "data", + "has_more", + "limit", "object", - "request_id", - "type" + "total_count" ], "properties": [ { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of entities.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "example": "#f3f93e", + "description": "The color given as name (purple) or as a hex code.", + "x-nullable": true, + "_key": "color" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Entity name: always 'branding_color'", + "readOnly": true, + "enum": [ + "branding_color" + ], + "_key": "object" + }, + { + "enum": [ + "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", + "description": "Color name.", + "is_primary_key": true, + "_override": true, + "_key": "reference" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "_key": "updated_at" } - ] + ], + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_color" + } }, - "_key": "fields" + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return, or equal to `total_count`.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "description": "Entity name, always `error`.", + "description": "Entity name: always `list`.", "enum": [ - "error" + "list" ], + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } - ] + ], + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_color" + } }, - "_key": "401" + "_key": "200" }, { - "description": "Forbidden.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -28688,10 +27419,10 @@ } ] }, - "_key": "403" + "_key": "401" }, { - "description": "Unknown image reference.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -28761,16 +27492,16 @@ } ] }, - "_key": "404" + "_key": "403" } ], - "path": "/v3/branding-images/dark/{reference}", - "summary": "Get metadata of a dark theme image.", - "return_type": "dark_theme_image", + "path": "/v3/branding-colors/dark", + "summary": "Get dark theme branding colors.", + "return_type": "paginated_response(dark_theme_color)", "return_info": { "self": true, "custom": false, - "type": "dark_theme_image" + "type": "dark_theme_color" }, "x_filter": {}, "x_deprecation": null, @@ -28779,74 +27510,50 @@ "etag", "type", "filter", - "static_uri", - "updated_at" + "limit", + "after", + "order", + "total_count", + "has_more", + "data" ], + "foreign_key_priority": "self", "group_id": "Branding", - "operation_id": "getDarkImageData", - "pagination": false, + "operation_id": "getDarkColors", + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_color" + }, "request_content_type": "application/json", "request_body": "json", - "_key": "read" + "_key": "list" }, { - "description": "Upload a new account branding image as form data in the dark theme in PNG or JPEG format.", + "description": "Retrieve the requested dark theme branding color.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ - { - "in": "stream", - "name": "image", - "description": "The image in PNG or JPEG format as multipart form data.", - "required": true, - "type": "file", - "entity_fieldname": "image", - "api_fieldname": "image", - "external_param": true, - "parameter_fieldname": "image", - "_key": "image" - }, { "enum": [ - "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" + "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", - "description": "Name of the image.", + "description": "Color name.", "is_primary_key": true, "_override": true, "api_fieldname": "reference", @@ -28854,36 +27561,33 @@ "name": "reference", "in": "path", "required": true, - "enum_reference": "dark_theme_image_reference_enum", - "_key": "reference" - } - ], - "method": "post", - "mode": "update", - "responses": [ - { - "description": "Image uploaded successfully.", - "headers": [ - { - "type": "string", - "description": "Location of the image metadata.", - "_key": "Content-Location" - }, - { - "type": "string", - "description": "Location of the image binary.", - "_key": "Location" - } - ], + "enum_reference": "dark_theme_color_reference_enum", + "_key": "reference" + } + ], + "method": "get", + "mode": "read", + "responses": [ + { + "description": "Successful operation.", "schema": { "type": "object", "properties": [ { "type": "string", - "description": "Entity name: always 'branding_image'", + "example": "#f3f93e", + "description": "The color given as name (purple) or as a hex code.", + "x-nullable": true, + "api_fieldname": "color", + "entity_fieldname": "color", + "_key": "color" + }, + { + "type": "string", + "description": "Entity name: always 'branding_color'", "readOnly": true, "enum": [ - "branding_image" + "branding_color" ], "api_fieldname": "object", "entity_fieldname": "object", @@ -28891,62 +27595,31 @@ }, { "enum": [ - "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" + "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", - "description": "Name of the image.", + "description": "Color name.", "is_primary_key": true, "_override": true, "api_fieldname": "reference", "entity_fieldname": "reference", "_key": "reference" }, - { - "type": "string", - "format": "uri", - "example": "https://static.mbed.com/123456789.jpg", - "description": "The static link to the image.", - "readOnly": true, - "api_fieldname": "static_uri", - "entity_fieldname": "static_uri", - "_key": "static_uri" - }, { "type": "string", "format": "date-time", @@ -28960,13 +27633,13 @@ ], "foreign_key": { "group": "Branding", - "entity": "subtenant_light_theme_image" + "entity": "subtenant_light_theme_color" } }, - "_key": "201" + "_key": "200" }, { - "description": "Error in input data format, for example, image is too large.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -29036,10 +27709,10 @@ } ] }, - "_key": "400" + "_key": "401" }, { - "description": "Authentication failure.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -29109,10 +27782,10 @@ } ] }, - "_key": "401" + "_key": "403" }, { - "description": "Forbidden.", + "description": "Color not found.", "schema": { "type": "object", "required": [ @@ -29182,10 +27855,170 @@ } ] }, - "_key": "403" + "_key": "404" + } + ], + "path": "/v3/branding-colors/dark/{reference}", + "summary": "Get dark theme branding color.", + "return_type": "dark_theme_color", + "return_info": { + "self": true, + "custom": false, + "type": "dark_theme_color" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "color", + "updated_at" + ], + "group_id": "Branding", + "operation_id": "getDarkColor", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "read" + }, + { + "description": "Update a dark theme branding color.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"#f3f93e\" }'\n```", + "field_renames": [], + "fields": [ + { + "type": "string", + "example": "#f3f93e", + "description": "The color given as name (purple) or as a hex code.", + "x-nullable": true, + "api_fieldname": "color", + "entity_fieldname": "color", + "parameter_fieldname": "color", + "in": "body", + "required": false, + "_key": "color" }, { - "description": "Unknown image reference.", + "enum": [ + "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", + "description": "Color name.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", + "entity_fieldname": "reference", + "name": "reference", + "in": "path", + "required": true, + "enum_reference": "dark_theme_color_reference_enum", + "_key": "reference" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "parameter_fieldname": "updated_at", + "in": "body", + "required": false, + "_key": "updated_at" + } + ], + "method": "put", + "mode": "update", + "responses": [ + { + "description": "Color has been set successfully.", + "schema": { + "type": "object", + "properties": [ + { + "type": "string", + "example": "#f3f93e", + "description": "The color given as name (purple) or as a hex code.", + "x-nullable": true, + "api_fieldname": "color", + "entity_fieldname": "color", + "_key": "color" + }, + { + "type": "string", + "description": "Entity name: always 'branding_color'", + "readOnly": true, + "enum": [ + "branding_color" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "enum": [ + "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", + "description": "Color name.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", + "entity_fieldname": "reference", + "_key": "reference" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" + } + ], + "foreign_key": { + "group": "Branding", + "entity": "subtenant_light_theme_color" + } + }, + "_key": "200" + }, + { + "description": "Error in input data format.", "schema": { "type": "object", "required": [ @@ -29255,267 +28088,156 @@ } ] }, - "_key": "404" - } - ], - "path": "/v3/branding-images/dark/{reference}/upload-multipart", - "summary": "Upload a dark theme image.", - "return_type": "dark_theme_image", - "return_info": { - "self": true, - "custom": false, - "type": "dark_theme_image" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "static_uri", - "updated_at" - ], - "group_id": "Branding", - "operation_id": "uploadDarkImageMultipart", - "additional_operations": [ - { - "operation_id": "uploadDarkImage", - "notes": "The multipart endpoint is used by the SDKs as it offers the same functionality as the standard upload endpoint." - } - ], - "pagination": false, - "request_content_type": "multipart/form-data", - "request_body": "file", - "_key": "update" - } - ], - "fields": [ - { - "enum": [ - "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": "Name of the image.", - "is_primary_key": true, - "_override": true, - "api_fieldname": "reference", - "readOnly": false, - "required": false, - "enum_reference": "dark_theme_image_reference_enum", - "_key": "reference" - }, - { - "type": "string", - "format": "uri", - "example": "https://static.mbed.com/123456789.jpg", - "description": "The static link to the image.", - "readOnly": true, - "api_fieldname": "static_uri", - "required": false, - "_key": "static_uri" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-14T15:24:14Z", - "description": "Last update time in UTC.", - "readOnly": true, - "api_fieldname": "updated_at", - "required": false, - "_key": "updated_at" - } - ], - "field_renames": [], - "tags": [ - "User interface configuration - images" - ], - "group_id": "Branding", - "_key": "dark_theme_image" - }, - { - "swagger_models": [ - "DeveloperCertificateRequestData", - "DeveloperCertificateResponseData", - "TrustedCertificateResp" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "Create a developer certificate (a certificate that can be flashed to multiple devices to connect to the bootstrap server).\n\n**Note:** The number of developer certificates allowed per account is limited. Please see [Using your own certificate authority](../provisioning-process/using-CA.html).\n\n**Example:**\n```\ncurl -X POST http://api.us-east-1.mbedcloud.com/v3/developer-certificates \\\n-H \"Authorization: Bearer \" \\\n-H \"content-type: application/json\" \\\n-d { \"name\": \"\", \"description\": \"\" }\n```", - "field_renames": [ - { - "api_fieldname": "developer_certificate", - "_key": "certificate" - } - ], - "fields": [ - { - "type": "string", - "description": "Description for the developer certificate.", - "x-nullable": true, - "api_fieldname": "description", - "entity_fieldname": "description", - "parameter_fieldname": "description", - "in": "body", - "required": false, - "_key": "description" + "_key": "400" }, { - "type": "string", - "description": "Name of the developer certificate.", - "api_fieldname": "name", - "entity_fieldname": "name", - "parameter_fieldname": "name", - "in": "body", - "required": true, - "_key": "name" - } - ], - "method": "post", - "mode": "create", - "responses": [ - { - "description": "Developer certificate created successfully.", + "description": "Authentication failure.", "schema": { "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], "properties": [ { - "type": "string", - "description": "Account to which the developer certificate belongs.", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "description": "Description for the developer certificate.", - "x-nullable": true, - "api_fieldname": "description", - "entity_fieldname": "description", - "_key": "description" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "description": "PEM-format X.509 developer certificate.", - "api_fieldname": "developer_certificate", - "entity_fieldname": "certificate", - "_key": "developer_certificate" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "description": "PEM-format developer private key associated with the certificate.", - "api_fieldname": "developer_private_key", - "entity_fieldname": "developer_private_key", - "_key": "developer_private_key" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { - "type": "string", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "description": "ID that uniquely identifies the developer certificate.", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "developerCertificateId", - "in": "path", - "required": true, - "_key": "id" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "description": "Name of the developer certificate.", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "description": "Entity name: always `trusted-cert`.", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "description": "Content of the `security.c` file flashed to the device to provide security credentials.", - "api_fieldname": "security_file_content", - "entity_fieldname": "security_file_content", - "_key": "security_file_content" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "foreign_key": { - "group": "Security", - "entity": "subtenant_trusted_certificate" - } + ] }, - "examples": [ - { - "object": "trusted-cert", - "id": "015fee4431fd38c98640fbfb00000000", - "etag": "1", - "created_at": "2017-12-11T14:22:20.009Z", - "account_id": "015fee5d9b3538c98640fbfb00000000", - "name": "DeveloperCertificate", - "description": "This certificate will be used with multiple developer devices.", - "developer_certificate": "-----BEGIN CERTIFICATE-----\\nMIICcDCCAhWgAwIBAgIRAPSBbBtLUE/ekQcWE4GzPJEwCgYIKoZIzj0EAwIwgaIx\\nCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5DYW1icmlkZ2VzaGlyZTESMBAGA1UEBwwJ\\nQ2FtYnJpZGdlMRAwDgYDVQQKDAdBUk0gTHRkMSkwJwYDVQQLDCAwMTU4NDNlMzJl\\nYzkwMjQyMGEwMTVlMDcwMDAwMDAwMDEpMCcGA1UEAwwgMDE2MWRiYmNkZDY2MGE1\\nODBhMDEwYzM0MDNjMDAwMDAwHhcNMTgwMjI4MDkyNzIzWhcNMjgwMjI4MDkyNzIz\\nWjCBojELMAkGA1UEBhMCR0IxFzAVBgNVBAgMDkNhbWJyaWRnZXNoaXJlMRIwEAYD\\nVQQHDAlDYW1icmlkZ2UxEDAOBgNVBAoMB0FSTSBMdGQxKTAnBgNVBAsMIDAxNTg0\\nM2UzMmVjOTAyNDIwYTAxNWUwNzAwMDAwMDAwMSkwJwYDVQQDDCAwMTYxZGJiY2Rk\\nNjYwYTU4MGEwMTBjMzQwM2MwMDAwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\\nBEScLDbOXvOb903AYlI9ow8E4hbLSHJPt5E2BO4Q4bHOpuWH2Oh6P+CDPte9pAv3\\nE6g90Xk/ZcZpQ+xBO6qci/ajKjAoMBIGCSsGAQQBoCCBSQQFAgNAAJEwEgYDVR0T\\nAQH/BAgwBgEB/wIBADAKBggqhkjOPQQDAgNJADBGAiEAsi9zSK8Njl22GoEHrsg8\\nQlwFnrkkP9d6FyLFtmqndt4CIQCmVHwisYNcCkqD2SWctG1xQHo0HZePAQW8PstM\\nzhNupQ==\\n-----END CERTIFICATE-----\\n", - "developer_private_key": "-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgeKc97aC1Z4aniXVG\\njNSvvXw2hl6zwACYIs88OKQx61GgCgYIKoZIzj0DAQehRANCAAREnCw2zl7zm/dN\\nwGJSPaMPBOIWy0hyT7eRNgTuEOGxzqblh9joej/ggz7XvaQL9xOoPdF5P2XGaUPs\\nQTuqnIv2\\n-----END PRIVATE KEY-----\\n", - "security_file_content": "/*\\n * Copyright (c) 2017 ARM Limited. All rights reserved.\\n * SPDX-License-Identifier: Apache-2.0\\n * Licensed under the Apache License, Version 2.0 (the License); you may\\n * not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an AS IS BASIS, WITHOUT\\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n#ifndef __MBED_CLOUD_DEV_CREDENTIALS_H__\\n#define __MBED_CLOUD_DEV_CREDENTIALS_H__\\n\\n#include \\n\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_ENDPOINT_NAME[] = \\\"0161dbbcdd660a580a010c3403c00000\\\";\\nconst char MBED_CLOUD_DEV_ACCOUNT_ID[] = \\\"015843e32ec902420a015e0700000000\\\";\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_SERVER_URI[] = \\\"coaps://coap-integration-lab.dev.mbed.com:5684?aid=015843e32ec902420a015e0700000000\\\";\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x70, 0x30, 0x82, 0x02, 0x15,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00,\\n 0xf4, 0x81, 0x6c, 0x1b, 0x4b, 0x50, 0x4f, 0xde,\\n 0x91, 0x07, 0x16, 0x13, 0x81, 0xb3, 0x3c, 0x91,\\n 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0xa2, 0x31,\\n 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,\\n 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15,\\n 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43,\\n 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,\\n 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30,\\n 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,\\n 0x04, 0x0a, 0x0c, 0x07, 0x41, 0x52, 0x4d, 0x20,\\n 0x4c, 0x74, 0x64, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x20, 0x30, 0x31,\\n 0x35, 0x38, 0x34, 0x33, 0x65, 0x33, 0x32, 0x65,\\n 0x63, 0x39, 0x30, 0x32, 0x34, 0x32, 0x30, 0x61,\\n 0x30, 0x31, 0x35, 0x65, 0x30, 0x37, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x29,\\n 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c,\\n 0x20, 0x30, 0x31, 0x36, 0x31, 0x64, 0x62, 0x62,\\n 0x63, 0x64, 0x64, 0x36, 0x36, 0x30, 0x61, 0x35,\\n 0x38, 0x30, 0x61, 0x30, 0x31, 0x30, 0x63, 0x33,\\n 0x34, 0x30, 0x33, 0x63, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x38, 0x30,\\n 0x32, 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32,\\n 0x33, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x30, 0x32,\\n 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32, 0x33,\\n 0x5a, 0x30, 0x81, 0xa2, 0x31, 0x0b, 0x30, 0x09,\\n 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47,\\n 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55,\\n 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69,\\n 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,\\n 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10,\\n 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c,\\n 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64,\\n 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04,\\n 0x0b, 0x0c, 0x20, 0x30, 0x31, 0x35, 0x38, 0x34,\\n 0x33, 0x65, 0x33, 0x32, 0x65, 0x63, 0x39, 0x30,\\n 0x32, 0x34, 0x32, 0x30, 0x61, 0x30, 0x31, 0x35,\\n 0x65, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x03, 0x0c, 0x20, 0x30, 0x31,\\n 0x36, 0x31, 0x64, 0x62, 0x62, 0x63, 0x64, 0x64,\\n 0x36, 0x36, 0x30, 0x61, 0x35, 0x38, 0x30, 0x61,\\n 0x30, 0x31, 0x30, 0x63, 0x33, 0x34, 0x30, 0x33,\\n 0x63, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x59,\\n 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00,\\n 0x04, 0x44, 0x9c, 0x2c, 0x36, 0xce, 0x5e, 0xf3,\\n 0x9b, 0xf7, 0x4d, 0xc0, 0x62, 0x52, 0x3d, 0xa3,\\n 0x0f, 0x04, 0xe2, 0x16, 0xcb, 0x48, 0x72, 0x4f,\\n 0xb7, 0x91, 0x36, 0x04, 0xee, 0x10, 0xe1, 0xb1,\\n 0xce, 0xa6, 0xe5, 0x87, 0xd8, 0xe8, 0x7a, 0x3f,\\n 0xe0, 0x83, 0x3e, 0xd7, 0xbd, 0xa4, 0x0b, 0xf7,\\n 0x13, 0xa8, 0x3d, 0xd1, 0x79, 0x3f, 0x65, 0xc6,\\n 0x69, 0x43, 0xec, 0x41, 0x3b, 0xaa, 0x9c, 0x8b,\\n 0xf6, 0xa3, 0x2a, 0x30, 0x28, 0x30, 0x12, 0x06,\\n 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xa0, 0x20,\\n 0x81, 0x49, 0x04, 0x05, 0x02, 0x03, 0x40, 0x00,\\n 0x91, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,\\n 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xb2, 0x2f, 0x73, 0x48, 0xaf, 0x0d, 0x8e,\\n 0x5d, 0xb6, 0x1a, 0x81, 0x07, 0xae, 0xc8, 0x3c,\\n 0x42, 0x5c, 0x05, 0x9e, 0xb9, 0x24, 0x3f, 0xd7,\\n 0x7a, 0x17, 0x22, 0xc5, 0xb6, 0x6a, 0xa7, 0x76,\\n 0xde, 0x02, 0x21, 0x00, 0xa6, 0x54, 0x7c, 0x22,\\n 0xb1, 0x83, 0x5c, 0x0a, 0x4a, 0x83, 0xd9, 0x25,\\n 0x9c, 0xb4, 0x6d, 0x71, 0x40, 0x7a, 0x34, 0x1d,\\n 0x97, 0x8f, 0x01, 0x05, 0xbc, 0x3e, 0xcb, 0x4c,\\n 0xce, 0x13, 0x6e, 0xa5 };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x35, 0x30, 0x82, 0x01, 0xdb,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x5c,\\n 0x27, 0xa5, 0x76, 0x7d, 0x58, 0x85, 0x8a, 0x43,\\n 0x91, 0xa0, 0x61, 0xab, 0xcf, 0xa6, 0x59, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x72, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74,\\n 0x73, 0x74, 0x72, 0x61, 0x70, 0x43, 0x41, 0x30,\\n 0x20, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x35, 0x31,\\n 0x35, 0x31, 0x39, 0x34, 0x39, 0x31, 0x31, 0x5a,\\n 0x18, 0x0f, 0x32, 0x30, 0x35, 0x32, 0x30, 0x35,\\n 0x31, 0x35, 0x31, 0x39, 0x35, 0x39, 0x31, 0x30,\\n 0x5a, 0x30, 0x72, 0x31, 0x0b, 0x30, 0x09, 0x06,\\n 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42,\\n 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,\\n 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72,\\n 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72,\\n 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55,\\n 0x04, 0x07, 0x13, 0x09, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10, 0x30,\\n 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07,\\n 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64, 0x31,\\n 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03,\\n 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20, 0x49, 0x6e,\\n 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,\\n 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74,\\n 0x72, 0x61, 0x70, 0x43, 0x41, 0x30, 0x59, 0x30,\\n 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04,\\n 0x8b, 0x7c, 0x86, 0xc3, 0x88, 0x54, 0xe6, 0x5f,\\n 0xe0, 0x57, 0x4e, 0x1b, 0xac, 0x29, 0x82, 0xea,\\n 0x7d, 0x91, 0x00, 0x63, 0xa7, 0x4a, 0x05, 0xbc,\\n 0x54, 0xc5, 0x71, 0x27, 0x33, 0x19, 0x1b, 0x2e,\\n 0xfa, 0x41, 0xf8, 0x7a, 0x9a, 0x0c, 0x5d, 0xfc,\\n 0xb3, 0x37, 0x01, 0x99, 0xc5, 0xc9, 0xbe, 0x78,\\n 0x5b, 0x1d, 0xec, 0xb0, 0x1a, 0x1d, 0xdc, 0xe4,\\n 0x6f, 0x57, 0x04, 0xf4, 0x3a, 0xca, 0xa8, 0xd2,\\n 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b, 0x06, 0x03,\\n 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01,\\n 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,\\n 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,\\n 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xef, 0x69,\\n 0xfa, 0x62, 0x3f, 0x00, 0x86, 0xf4, 0x05, 0xb8,\\n 0xb6, 0xe6, 0xb2, 0xf1, 0xdb, 0x69, 0x10, 0xb4,\\n 0x39, 0x30, 0x10, 0x06, 0x09, 0x2b, 0x06, 0x01,\\n 0x04, 0x01, 0x82, 0x37, 0x15, 0x01, 0x04, 0x03,\\n 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a,\\n 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03,\\n 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, 0xa2,\\n 0x50, 0x88, 0x0f, 0x55, 0xe8, 0x26, 0x49, 0xe6,\\n 0xf5, 0x71, 0x86, 0x33, 0x29, 0x05, 0x4c, 0xf9,\\n 0xfd, 0x1f, 0x14, 0x98, 0x92, 0x85, 0xd9, 0x5c,\\n 0x48, 0x02, 0x9e, 0xc2, 0x79, 0xa8, 0x59, 0x02,\\n 0x20, 0x3e, 0xfe, 0x3c, 0xa0, 0xbf, 0xd3, 0x0f,\\n 0x15, 0x83, 0x56, 0xbc, 0xf2, 0xfa, 0x16, 0x26,\\n 0x7a, 0xc1, 0x68, 0xaa, 0xbc, 0x91, 0x3c, 0x69,\\n 0x44, 0x36, 0xf9, 0x74, 0xa1, 0x82, 0x76, 0x7a,\\n 0x6e };\\n\\nconst uint8_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x30, 0x30, 0x82, 0x01, 0xd5,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x26,\\n 0xf9, 0x08, 0xfc, 0xf1, 0xc0, 0x46, 0xa4, 0x4a,\\n 0x4d, 0x2c, 0xf1, 0x94, 0x27, 0xf9, 0x1f, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x6f, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x18, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x57, 0x4d, 0x32,\\n 0x4d, 0x20, 0x43, 0x41, 0x30, 0x20, 0x17, 0x0d,\\n 0x31, 0x37, 0x30, 0x32, 0x31, 0x32, 0x31, 0x30,\\n 0x33, 0x37, 0x35, 0x32, 0x5a, 0x18, 0x0f, 0x32,\\n 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x32, 0x31,\\n 0x30, 0x34, 0x37, 0x35, 0x32, 0x5a, 0x30, 0x6f,\\n 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,\\n 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30,\\n 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0e,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12,\\n 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,\\n 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64,\\n 0x67, 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03,\\n 0x55, 0x04, 0x0a, 0x13, 0x07, 0x41, 0x52, 0x4d,\\n 0x20, 0x4c, 0x74, 0x64, 0x31, 0x21, 0x30, 0x1f,\\n 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x41,\\n 0x52, 0x4d, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x67,\\n 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4c,\\n 0x57, 0x4d, 0x32, 0x4d, 0x20, 0x43, 0x41, 0x30,\\n 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,\\n 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,\\n 0x00, 0x04, 0xba, 0xea, 0x80, 0x01, 0x2d, 0xf0,\\n 0xe1, 0xb6, 0xc5, 0x5f, 0xf9, 0x76, 0x84, 0x31,\\n 0xa9, 0x29, 0xa1, 0xc7, 0xa8, 0xfd, 0xa0, 0xad,\\n 0xd9, 0x94, 0xe7, 0xec, 0x5a, 0x33, 0xa1, 0x2c,\\n 0x8e, 0x36, 0x43, 0x9b, 0x18, 0xdf, 0xce, 0x71,\\n 0x14, 0x24, 0xb1, 0xfb, 0x16, 0x34, 0x0e, 0x43,\\n 0xfc, 0x23, 0x77, 0xd4, 0x13, 0xd7, 0x11, 0xaa,\\n 0x39, 0x60, 0xab, 0xa2, 0xdf, 0x24, 0xb3, 0xeb,\\n 0xa0, 0xc5, 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b,\\n 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03,\\n 0x02, 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55,\\n 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30,\\n 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03,\\n 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7b,\\n 0xa1, 0xa5, 0x94, 0xa5, 0xe5, 0x8f, 0x95, 0x5d,\\n 0xd4, 0xce, 0xdc, 0x0f, 0x8a, 0xbe, 0xad, 0x9a,\\n 0x6b, 0x66, 0x3e, 0x30, 0x10, 0x06, 0x09, 0x2b,\\n 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x01,\\n 0x04, 0x03, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xd2, 0x06, 0x28, 0xc5, 0x31, 0x3a, 0x11,\\n 0x8d, 0xb6, 0xcb, 0x2b, 0x3f, 0xdd, 0x2a, 0x9a,\\n 0x13, 0x30, 0x52, 0x77, 0xaa, 0xda, 0xda, 0xcb,\\n 0xce, 0xb9, 0x5c, 0xe4, 0x32, 0x1c, 0x02, 0xfa,\\n 0x30, 0x02, 0x21, 0x00, 0xb3, 0x82, 0x24, 0xa2,\\n 0xb1, 0x67, 0x6b, 0x69, 0x07, 0x0e, 0xcd, 0x77,\\n 0x74, 0x99, 0x06, 0x9c, 0x59, 0xb2, 0x00, 0xc0,\\n 0xb3, 0xbb, 0x37, 0x5b, 0xc0, 0x1b, 0xfb, 0xd9,\\n 0x70, 0x98, 0xb9, 0x1e };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY[] = \\n{ 0x30, 0x81, 0x93, 0x02, 0x01, 0x00, 0x30, 0x13,\\n 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,\\n 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x03, 0x01, 0x07, 0x04, 0x79, 0x30, 0x77, 0x02,\\n 0x01, 0x01, 0x04, 0x20, 0x78, 0xa7, 0x3d, 0xed,\\n 0xa0, 0xb5, 0x67, 0x86, 0xa7, 0x89, 0x75, 0x46,\\n 0x8c, 0xd4, 0xaf, 0xbd, 0x7c, 0x36, 0x86, 0x5e,\\n 0xb3, 0xc0, 0x00, 0x98, 0x22, 0xcf, 0x3c, 0x38,\\n 0xa4, 0x31, 0xeb, 0x51, 0xa0, 0x0a, 0x06, 0x08,\\n 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07,\\n 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x44, 0x9c,\\n 0x2c, 0x36, 0xce, 0x5e, 0xf3, 0x9b, 0xf7, 0x4d,\\n 0xc0, 0x62, 0x52, 0x3d, 0xa3, 0x0f, 0x04, 0xe2,\\n 0x16, 0xcb, 0x48, 0x72, 0x4f, 0xb7, 0x91, 0x36,\\n 0x04, 0xee, 0x10, 0xe1, 0xb1, 0xce, 0xa6, 0xe5,\\n 0x87, 0xd8, 0xe8, 0x7a, 0x3f, 0xe0, 0x83, 0x3e,\\n 0xd7, 0xbd, 0xa4, 0x0b, 0xf7, 0x13, 0xa8, 0x3d,\\n 0xd1, 0x79, 0x3f, 0x65, 0xc6, 0x69, 0x43, 0xec,\\n 0x41, 0x3b, 0xaa, 0x9c, 0x8b, 0xf6 };\\n\\nconst char MBED_CLOUD_DEV_MANUFACTURER[] = \\\"dev_manufacturer\\\";\\n\\nconst char MBED_CLOUD_DEV_MODEL_NUMBER[] = \\\"dev_model_num\\\";\\n\\nconst char MBED_CLOUD_DEV_SERIAL_NUMBER[] = \\\"0\\\";\\n\\nconst char MBED_CLOUD_DEV_DEVICE_TYPE[] = \\\"dev_device_type\\\";\\n\\nconst char MBED_CLOUD_DEV_HARDWARE_VERSION[] = \\\"dev_hardware_version\\\";\\n\\nconst uint32_t MBED_CLOUD_DEV_MEMORY_TOTAL_KB = 0;\\n\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY);\\n\\n#endif //__MBED_CLOUD_DEV_CREDENTIALS_H__\\n", - "_key": "Success" - } - ], - "_key": "201" + "_key": "403" }, { - "description": "Bad request.", + "description": "Color not found.", "schema": { "type": "object", "required": [ @@ -29585,24 +28307,170 @@ } ] }, - "examples": [ - { - "object": "error", - "code": 400, - "type": "validation_error", - "message": "Bad Request. Missing certificate name.", - "request_id": "015fee4431fd38c98640fbfb00000000", - "fields": { - "name": "name", - "message": "Missing certificate name." - }, - "_key": "Bad Request Error" - } + "_key": "404" + } + ], + "path": "/v3/branding-colors/dark/{reference}", + "summary": "Updates a dark theme branding color.", + "return_type": "dark_theme_color", + "return_info": { + "self": true, + "custom": false, + "type": "dark_theme_color" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter" + ], + "group_id": "Branding", + "operation_id": "setDarkColor", + "additional_operations": [ + { + "operation_id": "bulkSetDarkColors", + "notes": "Bulk operation is not appriate for SDK's entity model, this functionality is covered by the update method." + } + ], + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "update" + } + ], + "fields": [ + { + "type": "string", + "example": "#f3f93e", + "description": "The color given as name (purple) or as a hex code.", + "x-nullable": true, + "api_fieldname": "color", + "readOnly": false, + "required": false, + "_key": "color" + }, + { + "enum": [ + "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", + "description": "Color name.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", + "readOnly": false, + "required": false, + "enum_reference": "dark_theme_color_reference_enum", + "_key": "reference" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "api_fieldname": "updated_at", + "required": false, + "_key": "updated_at" + } + ], + "field_renames": [], + "tags": [ + "User interface configuration - colors" + ], + "group_id": "Branding", + "_key": "dark_theme_color" + }, + { + "swagger_models": [ + "BrandingImage", + "BrandingImageList" + ], + "primary_key_field": "reference", + "methods": [ + { + "description": "Revert an account branding image to dark theme default.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], + "fields": [ + { + "is_primary_key": true, + "_override": true, + "type": "string", + "api_fieldname": "reference", + "entity_fieldname": "reference", + "enum": [ + "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" ], - "_key": "400" + "name": "reference", + "in": "path", + "description": "Name of the branding images (icon or picture).", + "required": true, + "enum_reference": "dark_theme_image_reference_enum", + "_key": "reference" + } + ], + "method": "post", + "mode": "delete", + "responses": [ + { + "description": "Image reverted successfully.", + "_key": "204" }, { - "description": "Invalid access token.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -29672,20 +28540,10 @@ } ] }, - "examples": [ - { - "object": "error", - "code": 401, - "type": "invalid_auth", - "message": "Invalid access token.", - "request_id": "015fee4431fd38c98640fbfb00000000", - "_key": "Authentication Error" - } - ], "_key": "401" }, { - "description": "The maximum number of developer certificates for the given account has already been reached.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -29755,24 +28613,10 @@ } ] }, - "examples": [ - { - "object": "error", - "code": 403, - "type": "account_limit_exceeded", - "message": "Forbidden. Limit for the number of certificates exceeded.", - "request_id": "015fee4431fd38c98640fbfb00000000", - "fields": { - "name": "cert-count", - "message": "10" - }, - "_key": "Account Limit Exceeded Error" - } - ], "_key": "403" }, { - "description": "Certificate with the given name already exists.", + "description": "Unknown image reference.", "schema": { "type": "object", "required": [ @@ -29842,30 +28686,16 @@ } ] }, - "examples": [ - { - "object": "error", - "code": 409, - "type": "duplicate", - "message": "Conflict. Certificate already exists.", - "request_id": "015fee4431fd38c98640fbfb00000000", - "fields": { - "name": "certificate", - "message": "Certificate already exists." - }, - "_key": "Duplicate Error" - } - ], - "_key": "409" + "_key": "404" } ], - "path": "/v3/developer-certificates", - "summary": "Create a new developer certificate to connect to the bootstrap server.", - "return_type": "developer_certificate", + "path": "/v3/branding-images/dark/{reference}/clear", + "summary": "Revert an image to dark theme default.", + "return_type": "dark_theme_image", "return_info": { "self": true, "custom": false, - "type": "developer_certificate" + "type": "dark_theme_image" }, "x_filter": {}, "x_deprecation": null, @@ -29873,128 +28703,197 @@ "object", "etag", "type", - "filter", - "id", - "created_at", - "account_id", - "developer_private_key", - "security_file_content", - "certificate" + "filter" ], - "group_id": "Security", - "parameter_map": { - "developerCertificateId": "id" - }, - "operation_id": "createDeveloperCertificate", + "group_id": "Branding", + "operation_id": "clearDarkImage", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "create" + "_key": "delete" }, { - "description": "Delete a trusted certificate.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [ - { - "api_fieldname": "developer_certificate", - "_key": "certificate" - } - ], + "description": "Retrieve metadata for all dark theme branding images.\n\n**Example:**\n`curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], "fields": [ { - "name": "cert_id", - "in": "path", - "description": "The ID of the trusted certificate to delete.", - "required": true, + "is_primary_key": true, + "_override": true, "type": "string", - "entity_fieldname": "id", - "api_fieldname": "cert_id", - "external_param": false, - "parameter_fieldname": "cert_id", - "_key": "id" + "api_fieldname": "reference", + "entity_fieldname": "reference", + "_key": "reference" } ], - "method": "delete", - "mode": "delete", + "method": "get", + "mode": "list", "responses": [ { - "description": "Deleted successfully.", - "_key": "204" - }, - { - "description": "Authentication failure.", + "description": "Successful operation.", "schema": { "type": "object", "required": [ - "code", - "message", + "data", + "has_more", + "limit", "object", - "request_id", - "type" + "total_count" ], "properties": [ { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "type": "string", + "example": "01619571f3c00242ac12000600000000", + "description": "The entity ID to retrieve after the given one.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of entities.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Entity name: always 'branding_image'", + "readOnly": true, + "enum": [ + "branding_image" + ], + "_key": "object" + }, + { + "enum": [ + "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": "Name of the image.", + "is_primary_key": true, + "_override": true, + "_key": "reference" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "format": "uri", + "example": "https://static.mbed.com/123456789.jpg", + "description": "The static link to the image.", + "readOnly": true, + "_key": "static_uri" + }, + { + "type": "string", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "_key": "updated_at" } - ] + ], + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_image" + } }, - "_key": "fields" + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "type": "boolean", + "example": false, + "description": "Flag indicating whether there are more results.", + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "format": "int32", + "example": 50, + "description": "The number of results to return, or equal to `total_count`.", + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "description": "Entity name, always `error`.", + "description": "Entity name: always `list`.", "enum": [ - "error" + "list" ], + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "description": "The order of the records to return based on creation time. Available values: ASC, DESC; by default ASC.", + "enum": [ + "ASC", + "DESC" + ], + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" + "type": "integer", + "format": "int32", + "example": 20, + "description": "The total number of records, if requested.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } - ] + ], + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_image" + } }, - "_key": "401" + "_key": "200" }, { - "description": "Forbidden.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -30064,10 +28963,10 @@ } ] }, - "_key": "403" + "_key": "401" }, { - "description": "Certificate not found.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -30137,16 +29036,16 @@ } ] }, - "_key": "404" + "_key": "403" } ], - "path": "/v3/trusted-certificates/{cert_id}", - "summary": "Delete a trusted certificate by ID.", - "return_type": "developer_certificate", + "path": "/v3/branding-images/dark", + "summary": "Get metadata of all dark theme images.", + "return_type": "paginated_response(dark_theme_image)", "return_info": { "self": true, "custom": false, - "type": "developer_certificate" + "type": "dark_theme_image" }, "x_filter": {}, "x_deprecation": null, @@ -30154,240 +29053,174 @@ "object", "etag", "type", - "filter" + "filter", + "limit", + "after", + "order", + "total_count", + "has_more", + "data" ], - "group_id": "Security", - "parameter_map": { - "developerCertificateId": "id", - "cert_id": "id" + "foreign_key_priority": "self", + "group_id": "Branding", + "operation_id": "getAllDarkImageData", + "pagination": true, + "foreign_key": { + "group": "Branding", + "entity": "dark_theme_image" }, - "operation_id": "deleteCertificate", - "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "delete" + "_key": "list" }, { - "description": "Retrieve a trusted certificate by ID.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [ - { - "api_fieldname": "developer_certificate", - "_key": "certificate" - } - ], + "description": "Retrieve metadata for one account dark theme branding image.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [], "fields": [ { + "enum": [ + "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", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "cert_id", + "description": "Name of the image.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", + "entity_fieldname": "reference", + "name": "reference", "in": "path", "required": true, - "_key": "id" + "enum_reference": "dark_theme_image_reference_enum", + "_key": "reference" } ], "method": "get", - "mode": "get_trusted_certificate_info", + "mode": "read", "responses": [ { "description": "Successful operation.", "schema": { "type": "object", - "required": [ - "account_id", - "certificate", - "certificate_fingerprint", - "etag", - "id", - "issuer", - "name", - "object", - "service", - "subject", - "validity" - ], "properties": [ { "type": "string", - "example": "01619571e2e90242ac12000600000000", - "description": "The ID of the account.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" - }, - { - "type": "string", - "example": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----", - "description": "X509.v3 trusted certificate in PEM format.", - "api_fieldname": "certificate", - "entity_fieldname": "certificate", - "_key": "certificate" - }, - { - "type": "string", - "example": "a10fb2c8ba90e6de927bd0ae391dcc38f6115685de2d7024712af37ead0608f1", - "description": "A SHA-256 fingerprint of the certificate.", - "api_fieldname": "certificate_fingerprint", - "entity_fieldname": "certificate_fingerprint", - "_key": "certificate_fingerprint" - }, - { - "type": "string", - "format": "date-time", - "example": "2018-02-13T09:35:20Z", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "string", - "maxLength": 500, - "x-nullable": true, - "example": "Certificate created by me.", - "description": "Human readable description of this certificate.", - "api_fieldname": "description", - "entity_fieldname": "description", - "_key": "description" - }, - { - "type": "integer", - "format": "int32", - "example": 1, - "description": "Device execution mode where 1 means a developer certificate.", - "api_fieldname": "device_execution_mode", - "entity_fieldname": "device_execution_mode", - "_key": "device_execution_mode" - }, - { - "type": "boolean", - "example": false, - "description": "If true, signature is not required. Default value false.", - "api_fieldname": "enrollment_mode", - "entity_fieldname": "enrollment_mode", - "_key": "enrollment_mode" - }, - { - "type": "string", - "example": "1", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, - { - "type": "string", - "example": "01619571d01d0242ac12000600000000", - "description": "Entity ID.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "string", - "example": "CN=issuer", - "description": "Issuer of the certificate.", - "api_fieldname": "issuer", - "entity_fieldname": "issuer", - "_key": "issuer" - }, - { - "type": "string", - "maxLength": 100, - "example": "My certificate", - "description": "Certificate name.", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" - }, - { - "type": "string", - "description": "Entity name: always 'trusted-cert'", + "description": "Entity name: always 'branding_image'", + "readOnly": true, "enum": [ - "trusted-cert" + "branding_image" ], "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { - "x-nullable": true, - "type": "string", - "example": "01619571dad80242ac12000600000000", - "description": "The ID of the owner.", - "pattern": "[a-f0-9]{32}", - "api_fieldname": "owner_id", - "entity_fieldname": "owner_id", - "_key": "owner_id" - }, - { - "type": "string", - "description": "Service name where the certificate is used.", "enum": [ - "lwm2m", - "bootstrap" + "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" ], - "api_fieldname": "service", - "entity_fieldname": "service", - "_key": "service" - }, - { "type": "string", - "example": "ACTIVE", - "description": "Status of the certificate.", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" + "description": "Name of the image.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", + "entity_fieldname": "reference", + "_key": "reference" }, { "type": "string", - "example": "CN=subject", - "description": "Subject of the certificate.", - "api_fieldname": "subject", - "entity_fieldname": "subject", - "_key": "subject" + "format": "uri", + "example": "https://static.mbed.com/123456789.jpg", + "description": "The static link to the image.", + "readOnly": true, + "api_fieldname": "static_uri", + "entity_fieldname": "static_uri", + "_key": "static_uri" }, { "type": "string", "format": "date-time", "example": "2018-02-14T15:24:14Z", - "description": "Last update UTC time RFC3339.", + "description": "Last update time in UTC.", + "readOnly": true, "api_fieldname": "updated_at", "entity_fieldname": "updated_at", "_key": "updated_at" - }, - { - "type": "boolean", - "example": true, - "description": "This read-only flag indicates whether the certificate is valid or not.", - "readOnly": true, - "api_fieldname": "valid", - "entity_fieldname": "valid", - "_key": "valid" - }, - { - "type": "string", - "format": "date-time", - "example": "2038-02-14T15:24:14Z", - "description": "Expiration time in UTC formatted as RFC3339.", - "api_fieldname": "validity", - "entity_fieldname": "validity", - "_key": "validity" } ], - "description": "Represents a trusted certificate in responses.", "foreign_key": { - "group": "Security", - "entity": "developer_certificate" + "group": "Branding", + "entity": "subtenant_light_theme_image" } }, "_key": "200" @@ -30539,7 +29372,7 @@ "_key": "403" }, { - "description": "Certificate not found.", + "description": "Unknown image reference.", "schema": { "type": "object", "required": [ @@ -30612,13 +29445,13 @@ "_key": "404" } ], - "path": "/v3/trusted-certificates/{cert_id}", - "summary": "Get trusted certificate by ID.", - "return_type": "trusted_certificate", + "path": "/v3/branding-images/dark/{reference}", + "summary": "Get metadata of a dark theme image.", + "return_type": "dark_theme_image", "return_info": { - "self": false, + "self": true, "custom": false, - "type": "trusted_certificate" + "type": "dark_theme_image" }, "x_filter": {}, "x_deprecation": null, @@ -30627,164 +29460,267 @@ "etag", "type", "filter", - "created_at", - "updated_at", - "name", - "description", - "account_id", - "owner_id", - "certificate", - "service", - "issuer", - "subject", - "validity", - "status", - "device_execution_mode", - "enrollment_mode", - "certificate_fingerprint", - "valid" + "static_uri", + "updated_at" ], - "group_id": "Security", - "parameter_map": { - "developerCertificateId": "id", - "cert_id": "id" - }, - "operation_id": "getCertificate", - "unaggregated": true, - "foreign_key": { - "entity": "trusted_certificate", - "group": "Security" - }, + "group_id": "Branding", + "operation_id": "getDarkImageData", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "get_trusted_certificate_info" + "_key": "read" }, { - "description": "Return an existing developer certificate (a certificate that can be flashed to multiple devices to connect to bootstrap server).\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \\\n-H \"Authorization: Bearer \"\n```", - "field_renames": [ - { - "api_fieldname": "developer_certificate", - "_key": "certificate" - } - ], + "description": "Upload a new account branding image as form data in the dark theme in PNG or JPEG format.\nNote: This endpoint is restricted to administrators.", + "field_renames": [], "fields": [ { + "in": "stream", + "name": "image", + "description": "The image in PNG or JPEG format as multipart form data.", + "required": true, + "type": "file", + "entity_fieldname": "image", + "api_fieldname": "image", + "external_param": true, + "parameter_fieldname": "image", + "_key": "image" + }, + { + "enum": [ + "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": "ID that uniquely identifies the developer certificate.", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "developerCertificateId", + "description": "Name of the image.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", + "entity_fieldname": "reference", + "name": "reference", "in": "path", "required": true, - "_key": "id" + "enum_reference": "dark_theme_image_reference_enum", + "_key": "reference" } ], - "method": "get", - "mode": "read", + "method": "post", + "mode": "update", "responses": [ { - "description": "Developer certificate returned successfully.", + "description": "Image uploaded successfully.", + "headers": [ + { + "type": "string", + "description": "Location of the image metadata.", + "_key": "Content-Location" + }, + { + "type": "string", + "description": "Location of the image binary.", + "_key": "Location" + } + ], "schema": { "type": "object", "properties": [ { "type": "string", - "description": "Account to which the developer certificate belongs.", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" + "description": "Entity name: always 'branding_image'", + "readOnly": true, + "enum": [ + "branding_image" + ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" }, { + "enum": [ + "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", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" + "description": "Name of the image.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", + "entity_fieldname": "reference", + "_key": "reference" }, { "type": "string", - "description": "Description for the developer certificate.", - "x-nullable": true, - "api_fieldname": "description", - "entity_fieldname": "description", - "_key": "description" + "format": "uri", + "example": "https://static.mbed.com/123456789.jpg", + "description": "The static link to the image.", + "readOnly": true, + "api_fieldname": "static_uri", + "entity_fieldname": "static_uri", + "_key": "static_uri" }, { "type": "string", - "description": "PEM-format X.509 developer certificate.", - "api_fieldname": "developer_certificate", - "entity_fieldname": "developer_certificate", - "_key": "developer_certificate" - }, + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", + "readOnly": true, + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" + } + ], + "foreign_key": { + "group": "Branding", + "entity": "subtenant_light_theme_image" + } + }, + "_key": "201" + }, + { + "description": "Error in input data format, for example, image is too large.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ { - "type": "string", - "description": "PEM-format developer private key associated with the certificate.", - "api_fieldname": "developer_private_key", - "entity_fieldname": "developer_private_key", - "_key": "developer_private_key" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { - "type": "string", - "description": "API resource entity version.", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "description": "ID that uniquely identifies the developer certificate.", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "description": "Name of the developer certificate.", - "api_fieldname": "name", - "entity_fieldname": "name", - "_key": "name" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, { "type": "string", - "description": "Entity name: always `trusted-cert`.", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { "type": "string", - "description": "Content of the `security.c` file flashed to the device to provide security credentials.", - "api_fieldname": "security_file_content", - "entity_fieldname": "security_file_content", - "_key": "security_file_content" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "foreign_key": { - "group": "Security", - "entity": "developer_certificate" - } + ] }, - "examples": [ - { - "object": "trusted-cert", - "id": "015fee4431fd38c98640fbfb00000000", - "etag": "1", - "created_at": "2017-12-11T14:22:20.009Z", - "account_id": "015fee5d9b3538c98640fbfb00000000", - "name": "DeveloperCertificate", - "description": "This certificate applies to multiple developer devices.", - "developer_certificate": "-----BEGIN CERTIFICATE-----\\nMIICcDCCAhWgAwIBAgIRAPSBbBtLUE/ekQcWE4GzPJEwCgYIKoZIzj0EAwIwgaIx\\nCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5DYW1icmlkZ2VzaGlyZTESMBAGA1UEBwwJ\\nQ2FtYnJpZGdlMRAwDgYDVQQKDAdBUk0gTHRkMSkwJwYDVQQLDCAwMTU4NDNlMzJl\\nYzkwMjQyMGEwMTVlMDcwMDAwMDAwMDEpMCcGA1UEAwwgMDE2MWRiYmNkZDY2MGE1\\nODBhMDEwYzM0MDNjMDAwMDAwHhcNMTgwMjI4MDkyNzIzWhcNMjgwMjI4MDkyNzIz\\nWjCBojELMAkGA1UEBhMCR0IxFzAVBgNVBAgMDkNhbWJyaWRnZXNoaXJlMRIwEAYD\\nVQQHDAlDYW1icmlkZ2UxEDAOBgNVBAoMB0FSTSBMdGQxKTAnBgNVBAsMIDAxNTg0\\nM2UzMmVjOTAyNDIwYTAxNWUwNzAwMDAwMDAwMSkwJwYDVQQDDCAwMTYxZGJiY2Rk\\nNjYwYTU4MGEwMTBjMzQwM2MwMDAwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\\nBEScLDbOXvOb903AYlI9ow8E4hbLSHJPt5E2BO4Q4bHOpuWH2Oh6P+CDPte9pAv3\\nE6g90Xk/ZcZpQ+xBO6qci/ajKjAoMBIGCSsGAQQBoCCBSQQFAgNAAJEwEgYDVR0T\\nAQH/BAgwBgEB/wIBADAKBggqhkjOPQQDAgNJADBGAiEAsi9zSK8Njl22GoEHrsg8\\nQlwFnrkkP9d6FyLFtmqndt4CIQCmVHwisYNcCkqD2SWctG1xQHo0HZePAQW8PstM\\nzhNupQ==\\n-----END CERTIFICATE-----\\n", - "developer_private_key": "-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgeKc97aC1Z4aniXVG\\njNSvvXw2hl6zwACYIs88OKQx61GgCgYIKoZIzj0DAQehRANCAAREnCw2zl7zm/dN\\nwGJSPaMPBOIWy0hyT7eRNgTuEOGxzqblh9joej/ggz7XvaQL9xOoPdF5P2XGaUPs\\nQTuqnIv2\\n-----END PRIVATE KEY-----\\n", - "security_file_content": "/*\\n * Copyright (c) 2017 ARM Limited. All rights reserved.\\n * SPDX-License-Identifier: Apache-2.0\\n * Licensed under the Apache License, Version 2.0 (the License); you may\\n * not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an AS IS BASIS, WITHOUT\\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n#ifndef __MBED_CLOUD_DEV_CREDENTIALS_H__\\n#define __MBED_CLOUD_DEV_CREDENTIALS_H__\\n\\n#include \\n\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_ENDPOINT_NAME[] = \\\"0161dbbcdd660a580a010c3403c00000\\\";\\nconst char MBED_CLOUD_DEV_ACCOUNT_ID[] = \\\"015843e32ec902420a015e0700000000\\\";\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_SERVER_URI[] = \\\"coaps://coap.us-east-1.mbedcloud.com:5684?aid=015843e32ec902420a015e0700000000\\\";\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x70, 0x30, 0x82, 0x02, 0x15,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00,\\n 0xf4, 0x81, 0x6c, 0x1b, 0x4b, 0x50, 0x4f, 0xde,\\n 0x91, 0x07, 0x16, 0x13, 0x81, 0xb3, 0x3c, 0x91,\\n 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0xa2, 0x31,\\n 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,\\n 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15,\\n 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43,\\n 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,\\n 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30,\\n 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,\\n 0x04, 0x0a, 0x0c, 0x07, 0x41, 0x52, 0x4d, 0x20,\\n 0x4c, 0x74, 0x64, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x20, 0x30, 0x31,\\n 0x35, 0x38, 0x34, 0x33, 0x65, 0x33, 0x32, 0x65,\\n 0x63, 0x39, 0x30, 0x32, 0x34, 0x32, 0x30, 0x61,\\n 0x30, 0x31, 0x35, 0x65, 0x30, 0x37, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x29,\\n 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c,\\n 0x20, 0x30, 0x31, 0x36, 0x31, 0x64, 0x62, 0x62,\\n 0x63, 0x64, 0x64, 0x36, 0x36, 0x30, 0x61, 0x35,\\n 0x38, 0x30, 0x61, 0x30, 0x31, 0x30, 0x63, 0x33,\\n 0x34, 0x30, 0x33, 0x63, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x38, 0x30,\\n 0x32, 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32,\\n 0x33, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x30, 0x32,\\n 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32, 0x33,\\n 0x5a, 0x30, 0x81, 0xa2, 0x31, 0x0b, 0x30, 0x09,\\n 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47,\\n 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55,\\n 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69,\\n 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,\\n 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10,\\n 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c,\\n 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64,\\n 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04,\\n 0x0b, 0x0c, 0x20, 0x30, 0x31, 0x35, 0x38, 0x34,\\n 0x33, 0x65, 0x33, 0x32, 0x65, 0x63, 0x39, 0x30,\\n 0x32, 0x34, 0x32, 0x30, 0x61, 0x30, 0x31, 0x35,\\n 0x65, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x03, 0x0c, 0x20, 0x30, 0x31,\\n 0x36, 0x31, 0x64, 0x62, 0x62, 0x63, 0x64, 0x64,\\n 0x36, 0x36, 0x30, 0x61, 0x35, 0x38, 0x30, 0x61,\\n 0x30, 0x31, 0x30, 0x63, 0x33, 0x34, 0x30, 0x33,\\n 0x63, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x59,\\n 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00,\\n 0x04, 0x44, 0x9c, 0x2c, 0x36, 0xce, 0x5e, 0xf3,\\n 0x9b, 0xf7, 0x4d, 0xc0, 0x62, 0x52, 0x3d, 0xa3,\\n 0x0f, 0x04, 0xe2, 0x16, 0xcb, 0x48, 0x72, 0x4f,\\n 0xb7, 0x91, 0x36, 0x04, 0xee, 0x10, 0xe1, 0xb1,\\n 0xce, 0xa6, 0xe5, 0x87, 0xd8, 0xe8, 0x7a, 0x3f,\\n 0xe0, 0x83, 0x3e, 0xd7, 0xbd, 0xa4, 0x0b, 0xf7,\\n 0x13, 0xa8, 0x3d, 0xd1, 0x79, 0x3f, 0x65, 0xc6,\\n 0x69, 0x43, 0xec, 0x41, 0x3b, 0xaa, 0x9c, 0x8b,\\n 0xf6, 0xa3, 0x2a, 0x30, 0x28, 0x30, 0x12, 0x06,\\n 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xa0, 0x20,\\n 0x81, 0x49, 0x04, 0x05, 0x02, 0x03, 0x40, 0x00,\\n 0x91, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,\\n 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xb2, 0x2f, 0x73, 0x48, 0xaf, 0x0d, 0x8e,\\n 0x5d, 0xb6, 0x1a, 0x81, 0x07, 0xae, 0xc8, 0x3c,\\n 0x42, 0x5c, 0x05, 0x9e, 0xb9, 0x24, 0x3f, 0xd7,\\n 0x7a, 0x17, 0x22, 0xc5, 0xb6, 0x6a, 0xa7, 0x76,\\n 0xde, 0x02, 0x21, 0x00, 0xa6, 0x54, 0x7c, 0x22,\\n 0xb1, 0x83, 0x5c, 0x0a, 0x4a, 0x83, 0xd9, 0x25,\\n 0x9c, 0xb4, 0x6d, 0x71, 0x40, 0x7a, 0x34, 0x1d,\\n 0x97, 0x8f, 0x01, 0x05, 0xbc, 0x3e, 0xcb, 0x4c,\\n 0xce, 0x13, 0x6e, 0xa5 };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x35, 0x30, 0x82, 0x01, 0xdb,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x5c,\\n 0x27, 0xa5, 0x76, 0x7d, 0x58, 0x85, 0x8a, 0x43,\\n 0x91, 0xa0, 0x61, 0xab, 0xcf, 0xa6, 0x59, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x72, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74,\\n 0x73, 0x74, 0x72, 0x61, 0x70, 0x43, 0x41, 0x30,\\n 0x20, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x35, 0x31,\\n 0x35, 0x31, 0x39, 0x34, 0x39, 0x31, 0x31, 0x5a,\\n 0x18, 0x0f, 0x32, 0x30, 0x35, 0x32, 0x30, 0x35,\\n 0x31, 0x35, 0x31, 0x39, 0x35, 0x39, 0x31, 0x30,\\n 0x5a, 0x30, 0x72, 0x31, 0x0b, 0x30, 0x09, 0x06,\\n 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42,\\n 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,\\n 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72,\\n 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72,\\n 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55,\\n 0x04, 0x07, 0x13, 0x09, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10, 0x30,\\n 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07,\\n 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64, 0x31,\\n 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03,\\n 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20, 0x49, 0x6e,\\n 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,\\n 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74,\\n 0x72, 0x61, 0x70, 0x43, 0x41, 0x30, 0x59, 0x30,\\n 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04,\\n 0x8b, 0x7c, 0x86, 0xc3, 0x88, 0x54, 0xe6, 0x5f,\\n 0xe0, 0x57, 0x4e, 0x1b, 0xac, 0x29, 0x82, 0xea,\\n 0x7d, 0x91, 0x00, 0x63, 0xa7, 0x4a, 0x05, 0xbc,\\n 0x54, 0xc5, 0x71, 0x27, 0x33, 0x19, 0x1b, 0x2e,\\n 0xfa, 0x41, 0xf8, 0x7a, 0x9a, 0x0c, 0x5d, 0xfc,\\n 0xb3, 0x37, 0x01, 0x99, 0xc5, 0xc9, 0xbe, 0x78,\\n 0x5b, 0x1d, 0xec, 0xb0, 0x1a, 0x1d, 0xdc, 0xe4,\\n 0x6f, 0x57, 0x04, 0xf4, 0x3a, 0xca, 0xa8, 0xd2,\\n 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b, 0x06, 0x03,\\n 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01,\\n 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,\\n 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,\\n 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xef, 0x69,\\n 0xfa, 0x62, 0x3f, 0x00, 0x86, 0xf4, 0x05, 0xb8,\\n 0xb6, 0xe6, 0xb2, 0xf1, 0xdb, 0x69, 0x10, 0xb4,\\n 0x39, 0x30, 0x10, 0x06, 0x09, 0x2b, 0x06, 0x01,\\n 0x04, 0x01, 0x82, 0x37, 0x15, 0x01, 0x04, 0x03,\\n 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a,\\n 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03,\\n 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, 0xa2,\\n 0x50, 0x88, 0x0f, 0x55, 0xe8, 0x26, 0x49, 0xe6,\\n 0xf5, 0x71, 0x86, 0x33, 0x29, 0x05, 0x4c, 0xf9,\\n 0xfd, 0x1f, 0x14, 0x98, 0x92, 0x85, 0xd9, 0x5c,\\n 0x48, 0x02, 0x9e, 0xc2, 0x79, 0xa8, 0x59, 0x02,\\n 0x20, 0x3e, 0xfe, 0x3c, 0xa0, 0xbf, 0xd3, 0x0f,\\n 0x15, 0x83, 0x56, 0xbc, 0xf2, 0xfa, 0x16, 0x26,\\n 0x7a, 0xc1, 0x68, 0xaa, 0xbc, 0x91, 0x3c, 0x69,\\n 0x44, 0x36, 0xf9, 0x74, 0xa1, 0x82, 0x76, 0x7a,\\n 0x6e };\\n\\nconst uint8_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x30, 0x30, 0x82, 0x01, 0xd5,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x26,\\n 0xf9, 0x08, 0xfc, 0xf1, 0xc0, 0x46, 0xa4, 0x4a,\\n 0x4d, 0x2c, 0xf1, 0x94, 0x27, 0xf9, 0x1f, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x6f, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x18, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x57, 0x4d, 0x32,\\n 0x4d, 0x20, 0x43, 0x41, 0x30, 0x20, 0x17, 0x0d,\\n 0x31, 0x37, 0x30, 0x32, 0x31, 0x32, 0x31, 0x30,\\n 0x33, 0x37, 0x35, 0x32, 0x5a, 0x18, 0x0f, 0x32,\\n 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x32, 0x31,\\n 0x30, 0x34, 0x37, 0x35, 0x32, 0x5a, 0x30, 0x6f,\\n 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,\\n 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30,\\n 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0e,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12,\\n 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,\\n 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64,\\n 0x67, 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03,\\n 0x55, 0x04, 0x0a, 0x13, 0x07, 0x41, 0x52, 0x4d,\\n 0x20, 0x4c, 0x74, 0x64, 0x31, 0x21, 0x30, 0x1f,\\n 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x41,\\n 0x52, 0x4d, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x67,\\n 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4c,\\n 0x57, 0x4d, 0x32, 0x4d, 0x20, 0x43, 0x41, 0x30,\\n 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,\\n 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,\\n 0x00, 0x04, 0xba, 0xea, 0x80, 0x01, 0x2d, 0xf0,\\n 0xe1, 0xb6, 0xc5, 0x5f, 0xf9, 0x76, 0x84, 0x31,\\n 0xa9, 0x29, 0xa1, 0xc7, 0xa8, 0xfd, 0xa0, 0xad,\\n 0xd9, 0x94, 0xe7, 0xec, 0x5a, 0x33, 0xa1, 0x2c,\\n 0x8e, 0x36, 0x43, 0x9b, 0x18, 0xdf, 0xce, 0x71,\\n 0x14, 0x24, 0xb1, 0xfb, 0x16, 0x34, 0x0e, 0x43,\\n 0xfc, 0x23, 0x77, 0xd4, 0x13, 0xd7, 0x11, 0xaa,\\n 0x39, 0x60, 0xab, 0xa2, 0xdf, 0x24, 0xb3, 0xeb,\\n 0xa0, 0xc5, 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b,\\n 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03,\\n 0x02, 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55,\\n 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30,\\n 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03,\\n 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7b,\\n 0xa1, 0xa5, 0x94, 0xa5, 0xe5, 0x8f, 0x95, 0x5d,\\n 0xd4, 0xce, 0xdc, 0x0f, 0x8a, 0xbe, 0xad, 0x9a,\\n 0x6b, 0x66, 0x3e, 0x30, 0x10, 0x06, 0x09, 0x2b,\\n 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x01,\\n 0x04, 0x03, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xd2, 0x06, 0x28, 0xc5, 0x31, 0x3a, 0x11,\\n 0x8d, 0xb6, 0xcb, 0x2b, 0x3f, 0xdd, 0x2a, 0x9a,\\n 0x13, 0x30, 0x52, 0x77, 0xaa, 0xda, 0xda, 0xcb,\\n 0xce, 0xb9, 0x5c, 0xe4, 0x32, 0x1c, 0x02, 0xfa,\\n 0x30, 0x02, 0x21, 0x00, 0xb3, 0x82, 0x24, 0xa2,\\n 0xb1, 0x67, 0x6b, 0x69, 0x07, 0x0e, 0xcd, 0x77,\\n 0x74, 0x99, 0x06, 0x9c, 0x59, 0xb2, 0x00, 0xc0,\\n 0xb3, 0xbb, 0x37, 0x5b, 0xc0, 0x1b, 0xfb, 0xd9,\\n 0x70, 0x98, 0xb9, 0x1e };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY[] = \\n{ 0x30, 0x81, 0x93, 0x02, 0x01, 0x00, 0x30, 0x13,\\n 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,\\n 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x03, 0x01, 0x07, 0x04, 0x79, 0x30, 0x77, 0x02,\\n 0x01, 0x01, 0x04, 0x20, 0x78, 0xa7, 0x3d, 0xed,\\n 0xa0, 0xb5, 0x67, 0x86, 0xa7, 0x89, 0x75, 0x46,\\n 0x8c, 0xd4, 0xaf, 0xbd, 0x7c, 0x36, 0x86, 0x5e,\\n 0xb3, 0xc0, 0x00, 0x98, 0x22, 0xcf, 0x3c, 0x38,\\n 0xa4, 0x31, 0xeb, 0x51, 0xa0, 0x0a, 0x06, 0x08,\\n 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07,\\n 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x44, 0x9c,\\n 0x2c, 0x36, 0xce, 0x5e, 0xf3, 0x9b, 0xf7, 0x4d,\\n 0xc0, 0x62, 0x52, 0x3d, 0xa3, 0x0f, 0x04, 0xe2,\\n 0x16, 0xcb, 0x48, 0x72, 0x4f, 0xb7, 0x91, 0x36,\\n 0x04, 0xee, 0x10, 0xe1, 0xb1, 0xce, 0xa6, 0xe5,\\n 0x87, 0xd8, 0xe8, 0x7a, 0x3f, 0xe0, 0x83, 0x3e,\\n 0xd7, 0xbd, 0xa4, 0x0b, 0xf7, 0x13, 0xa8, 0x3d,\\n 0xd1, 0x79, 0x3f, 0x65, 0xc6, 0x69, 0x43, 0xec,\\n 0x41, 0x3b, 0xaa, 0x9c, 0x8b, 0xf6 };\\n\\nconst char MBED_CLOUD_DEV_MANUFACTURER[] = \\\"dev_manufacturer\\\";\\n\\nconst char MBED_CLOUD_DEV_MODEL_NUMBER[] = \\\"dev_model_num\\\";\\n\\nconst char MBED_CLOUD_DEV_SERIAL_NUMBER[] = \\\"0\\\";\\n\\nconst char MBED_CLOUD_DEV_DEVICE_TYPE[] = \\\"dev_device_type\\\";\\n\\nconst char MBED_CLOUD_DEV_HARDWARE_VERSION[] = \\\"dev_hardware_version\\\";\\n\\nconst uint32_t MBED_CLOUD_DEV_MEMORY_TOTAL_KB = 0;\\n\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY);\\n\\n#endif //__MBED_CLOUD_DEV_CREDENTIALS_H__\\n", - "_key": "Success" - } - ], - "_key": "200" + "_key": "400" }, { - "description": "Bad request.", + "description": "Authentication failure.", "schema": { "type": "object", "required": [ @@ -30854,10 +29790,10 @@ } ] }, - "_key": "400" + "_key": "401" }, { - "description": "Invalid access token.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ @@ -30927,20 +29863,10 @@ } ] }, - "examples": [ - { - "object": "error", - "code": 401, - "type": "invalid_auth", - "message": "Invalid access token.", - "request_id": "015fee4431fd38c98640fbfb00000000", - "_key": "Authentication Error" - } - ], - "_key": "401" + "_key": "403" }, { - "description": "Developer certificate not found with given ID.", + "description": "Unknown image reference.", "schema": { "type": "object", "required": [ @@ -31010,26 +29936,16 @@ } ] }, - "examples": [ - { - "object": "error", - "code": 404, - "type": "not_found", - "message": "Not Found. Not found: 016006724ff53ade90ed948d03c00001", - "request_id": "015fee4431fd38c98640fbfb00000000", - "_key": "Authentication Error" - } - ], "_key": "404" } ], - "path": "/v3/developer-certificates/{developerCertificateId}", - "summary": "Fetch an existing developer certificate to connect to the bootstrap server.", - "return_type": "developer_certificate", + "path": "/v3/branding-images/dark/{reference}/upload-multipart", + "summary": "Upload a dark theme image.", + "return_type": "dark_theme_image", "return_info": { "self": true, "custom": false, - "type": "developer_certificate" + "type": "dark_theme_image" }, "x_filter": {}, "x_deprecation": null, @@ -31038,158 +29954,336 @@ "etag", "type", "filter", - "created_at", - "account_id", - "name", - "description", - "developer_private_key", - "security_file_content", - "certificate" + "static_uri", + "updated_at" + ], + "group_id": "Branding", + "operation_id": "uploadDarkImageMultipart", + "additional_operations": [ + { + "operation_id": "uploadDarkImage", + "notes": "The multipart endpoint is used by the SDKs as it offers the same functionality as the standard upload endpoint." + } ], - "group_id": "Security", - "parameter_map": { - "developerCertificateId": "id" - }, - "operation_id": "getDeveloperCertificate", "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "read" + "request_content_type": "multipart/form-data", + "request_body": "file", + "_key": "update" } ], "fields": [ { + "enum": [ + "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": "Account to which the developer certificate belongs.", - "api_fieldname": "account_id", - "readOnly": true, - "required": false, - "_key": "account_id" - }, - { - "type": "string", - "description": "PEM-format X.509 developer certificate.", - "api_fieldname": "developer_certificate", - "readOnly": true, - "required": false, - "_key": "certificate" - }, - { - "type": "string", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "description": "Description for the developer certificate.", - "x-nullable": true, - "api_fieldname": "description", + "description": "Name of the image.", + "is_primary_key": true, + "_override": true, + "api_fieldname": "reference", "readOnly": false, "required": false, - "_key": "description" + "enum_reference": "dark_theme_image_reference_enum", + "_key": "reference" }, { "type": "string", - "description": "PEM-format developer private key associated with the certificate.", - "api_fieldname": "developer_private_key", + "format": "uri", + "example": "https://static.mbed.com/123456789.jpg", + "description": "The static link to the image.", "readOnly": true, + "api_fieldname": "static_uri", "required": false, - "_key": "developer_private_key" - }, - { - "type": "string", - "description": "ID that uniquely identifies the developer certificate.", - "api_fieldname": "id", - "parameter_fieldname": "developerCertificateId", - "in": "path", - "required": true, - "readOnly": false, - "_key": "id" - }, - { - "type": "string", - "description": "Name of the developer certificate.", - "api_fieldname": "name", - "readOnly": false, - "required": true, - "_key": "name" + "_key": "static_uri" }, { "type": "string", - "description": "Content of the `security.c` file flashed to the device to provide security credentials.", - "api_fieldname": "security_file_content", + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update time in UTC.", "readOnly": true, + "api_fieldname": "updated_at", "required": false, - "_key": "security_file_content" - } - ], - "field_renames": [ - { - "api_fieldname": "developer_certificate", - "_key": "certificate" + "_key": "updated_at" } ], + "field_renames": [], "tags": [ - "Device security - developer class certificates", - "Device security - certificates" + "User interface configuration - images" ], - "group_id": "Security", - "_key": "developer_certificate" + "group_id": "Branding", + "_key": "dark_theme_image" }, { "swagger_models": [ - "CertificateEnrollment", - "DeviceData", - "DeviceDataPostRequest", - "DeviceDataPutRequest", - "DeviceGroupManipulation", - "DevicePage" + "DeveloperCertificateRequestData", + "DeveloperCertificateResponseData", + "TrustedCertificateResp" ], "primary_key_field": "id", "methods": [ { - "description": "Add one device to a group.", - "field_renames": [], + "description": "Create a developer certificate (a certificate that can be flashed to multiple devices to connect to the bootstrap server).\n\n**Note:** The number of developer certificates allowed per account is limited. Please see [Setting up a Certificate Authority](https://www.pelion.com/docs/device-management/current/provisioning-process/integrating-with-a-third-party-ca.html).\n\n**Example:**\n```\ncurl -X POST http://api.us-east-1.mbedcloud.com/v3/developer-certificates \\\n-H \"Authorization: Bearer \" \\\n-H \"content-type: application/json\" \\\n-d { \"name\": \"\", \"description\": \"\" }\n```", + "field_renames": [ + { + "api_fieldname": "developer_certificate", + "_key": "certificate" + } + ], "fields": [ { - "in": "path", - "description": "The ID of the group.", - "name": "device-group-id", - "required": true, "type": "string", - "entity_fieldname": "device-group-id", - "api_fieldname": "device-group-id", - "external_param": true, - "parameter_fieldname": "device-group-id", - "_key": "device-group-id" + "description": "Description for the developer certificate.", + "x-nullable": true, + "api_fieldname": "description", + "entity_fieldname": "description", + "parameter_fieldname": "description", + "in": "body", + "required": false, + "_key": "description" }, { "type": "string", - "example": "00000000000000000000000000000000", - "name": "device_id", + "description": "Name of the developer certificate.", + "api_fieldname": "name", + "entity_fieldname": "name", + "parameter_fieldname": "name", "in": "body", - "schema_param": true, - "entity_fieldname": "id", - "api_fieldname": "device_id", - "external_param": false, - "parameter_fieldname": "device_id", "required": true, - "_key": "id" + "_key": "name" } ], "method": "post", - "mode": "add_to_group", + "mode": "create", "responses": [ { - "description": "Success - device added.", - "_key": "204" + "description": "Developer certificate created successfully.", + "schema": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Account to which the developer certificate belongs.", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description for the developer certificate.", + "x-nullable": true, + "api_fieldname": "description", + "entity_fieldname": "description", + "_key": "description" + }, + { + "type": "string", + "description": "PEM-format X.509 developer certificate.", + "api_fieldname": "developer_certificate", + "entity_fieldname": "certificate", + "_key": "developer_certificate" + }, + { + "type": "string", + "description": "PEM-format developer private key associated with the certificate.", + "api_fieldname": "developer_private_key", + "entity_fieldname": "developer_private_key", + "_key": "developer_private_key" + }, + { + "type": "string", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "ID that uniquely identifies the developer certificate.", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "developerCertificateId", + "in": "path", + "required": true, + "_key": "id" + }, + { + "type": "string", + "description": "Name of the developer certificate.", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" + }, + { + "type": "string", + "description": "Entity name: always `trusted-cert`.", + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "description": "Content of the `security.c` file flashed to the device to provide security credentials.", + "api_fieldname": "security_file_content", + "entity_fieldname": "security_file_content", + "_key": "security_file_content" + } + ], + "foreign_key": { + "group": "Security", + "entity": "subtenant_trusted_certificate" + } + }, + "examples": [ + { + "object": "trusted-cert", + "id": "015fee4431fd38c98640fbfb00000000", + "etag": "1", + "created_at": "2017-12-11T14:22:20.009Z", + "account_id": "015fee5d9b3538c98640fbfb00000000", + "name": "DeveloperCertificate", + "description": "This certificate will be used with multiple developer devices.", + "developer_certificate": "-----BEGIN CERTIFICATE-----\\nMIICcDCCAhWgAwIBAgIRAPSBbBtLUE/ekQcWE4GzPJEwCgYIKoZIzj0EAwIwgaIx\\nCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5DYW1icmlkZ2VzaGlyZTESMBAGA1UEBwwJ\\nQ2FtYnJpZGdlMRAwDgYDVQQKDAdBUk0gTHRkMSkwJwYDVQQLDCAwMTU4NDNlMzJl\\nYzkwMjQyMGEwMTVlMDcwMDAwMDAwMDEpMCcGA1UEAwwgMDE2MWRiYmNkZDY2MGE1\\nODBhMDEwYzM0MDNjMDAwMDAwHhcNMTgwMjI4MDkyNzIzWhcNMjgwMjI4MDkyNzIz\\nWjCBojELMAkGA1UEBhMCR0IxFzAVBgNVBAgMDkNhbWJyaWRnZXNoaXJlMRIwEAYD\\nVQQHDAlDYW1icmlkZ2UxEDAOBgNVBAoMB0FSTSBMdGQxKTAnBgNVBAsMIDAxNTg0\\nM2UzMmVjOTAyNDIwYTAxNWUwNzAwMDAwMDAwMSkwJwYDVQQDDCAwMTYxZGJiY2Rk\\nNjYwYTU4MGEwMTBjMzQwM2MwMDAwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\\nBEScLDbOXvOb903AYlI9ow8E4hbLSHJPt5E2BO4Q4bHOpuWH2Oh6P+CDPte9pAv3\\nE6g90Xk/ZcZpQ+xBO6qci/ajKjAoMBIGCSsGAQQBoCCBSQQFAgNAAJEwEgYDVR0T\\nAQH/BAgwBgEB/wIBADAKBggqhkjOPQQDAgNJADBGAiEAsi9zSK8Njl22GoEHrsg8\\nQlwFnrkkP9d6FyLFtmqndt4CIQCmVHwisYNcCkqD2SWctG1xQHo0HZePAQW8PstM\\nzhNupQ==\\n-----END CERTIFICATE-----\\n", + "developer_private_key": "-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgeKc97aC1Z4aniXVG\\njNSvvXw2hl6zwACYIs88OKQx61GgCgYIKoZIzj0DAQehRANCAAREnCw2zl7zm/dN\\nwGJSPaMPBOIWy0hyT7eRNgTuEOGxzqblh9joej/ggz7XvaQL9xOoPdF5P2XGaUPs\\nQTuqnIv2\\n-----END PRIVATE KEY-----\\n", + "security_file_content": "/*\\n * Copyright (c) 2017 ARM Limited. All rights reserved.\\n * SPDX-License-Identifier: Apache-2.0\\n * Licensed under the Apache License, Version 2.0 (the License); you may\\n * not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an AS IS BASIS, WITHOUT\\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n#ifndef __MBED_CLOUD_DEV_CREDENTIALS_H__\\n#define __MBED_CLOUD_DEV_CREDENTIALS_H__\\n\\n#include \\n\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_ENDPOINT_NAME[] = \\\"0161dbbcdd660a580a010c3403c00000\\\";\\nconst char MBED_CLOUD_DEV_ACCOUNT_ID[] = \\\"015843e32ec902420a015e0700000000\\\";\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_SERVER_URI[] = \\\"coaps://coap-integration-lab.dev.mbed.com:5684?aid=015843e32ec902420a015e0700000000\\\";\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x70, 0x30, 0x82, 0x02, 0x15,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00,\\n 0xf4, 0x81, 0x6c, 0x1b, 0x4b, 0x50, 0x4f, 0xde,\\n 0x91, 0x07, 0x16, 0x13, 0x81, 0xb3, 0x3c, 0x91,\\n 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0xa2, 0x31,\\n 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,\\n 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15,\\n 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43,\\n 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,\\n 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30,\\n 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,\\n 0x04, 0x0a, 0x0c, 0x07, 0x41, 0x52, 0x4d, 0x20,\\n 0x4c, 0x74, 0x64, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x20, 0x30, 0x31,\\n 0x35, 0x38, 0x34, 0x33, 0x65, 0x33, 0x32, 0x65,\\n 0x63, 0x39, 0x30, 0x32, 0x34, 0x32, 0x30, 0x61,\\n 0x30, 0x31, 0x35, 0x65, 0x30, 0x37, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x29,\\n 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c,\\n 0x20, 0x30, 0x31, 0x36, 0x31, 0x64, 0x62, 0x62,\\n 0x63, 0x64, 0x64, 0x36, 0x36, 0x30, 0x61, 0x35,\\n 0x38, 0x30, 0x61, 0x30, 0x31, 0x30, 0x63, 0x33,\\n 0x34, 0x30, 0x33, 0x63, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x38, 0x30,\\n 0x32, 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32,\\n 0x33, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x30, 0x32,\\n 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32, 0x33,\\n 0x5a, 0x30, 0x81, 0xa2, 0x31, 0x0b, 0x30, 0x09,\\n 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47,\\n 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55,\\n 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69,\\n 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,\\n 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10,\\n 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c,\\n 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64,\\n 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04,\\n 0x0b, 0x0c, 0x20, 0x30, 0x31, 0x35, 0x38, 0x34,\\n 0x33, 0x65, 0x33, 0x32, 0x65, 0x63, 0x39, 0x30,\\n 0x32, 0x34, 0x32, 0x30, 0x61, 0x30, 0x31, 0x35,\\n 0x65, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x03, 0x0c, 0x20, 0x30, 0x31,\\n 0x36, 0x31, 0x64, 0x62, 0x62, 0x63, 0x64, 0x64,\\n 0x36, 0x36, 0x30, 0x61, 0x35, 0x38, 0x30, 0x61,\\n 0x30, 0x31, 0x30, 0x63, 0x33, 0x34, 0x30, 0x33,\\n 0x63, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x59,\\n 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00,\\n 0x04, 0x44, 0x9c, 0x2c, 0x36, 0xce, 0x5e, 0xf3,\\n 0x9b, 0xf7, 0x4d, 0xc0, 0x62, 0x52, 0x3d, 0xa3,\\n 0x0f, 0x04, 0xe2, 0x16, 0xcb, 0x48, 0x72, 0x4f,\\n 0xb7, 0x91, 0x36, 0x04, 0xee, 0x10, 0xe1, 0xb1,\\n 0xce, 0xa6, 0xe5, 0x87, 0xd8, 0xe8, 0x7a, 0x3f,\\n 0xe0, 0x83, 0x3e, 0xd7, 0xbd, 0xa4, 0x0b, 0xf7,\\n 0x13, 0xa8, 0x3d, 0xd1, 0x79, 0x3f, 0x65, 0xc6,\\n 0x69, 0x43, 0xec, 0x41, 0x3b, 0xaa, 0x9c, 0x8b,\\n 0xf6, 0xa3, 0x2a, 0x30, 0x28, 0x30, 0x12, 0x06,\\n 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xa0, 0x20,\\n 0x81, 0x49, 0x04, 0x05, 0x02, 0x03, 0x40, 0x00,\\n 0x91, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,\\n 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xb2, 0x2f, 0x73, 0x48, 0xaf, 0x0d, 0x8e,\\n 0x5d, 0xb6, 0x1a, 0x81, 0x07, 0xae, 0xc8, 0x3c,\\n 0x42, 0x5c, 0x05, 0x9e, 0xb9, 0x24, 0x3f, 0xd7,\\n 0x7a, 0x17, 0x22, 0xc5, 0xb6, 0x6a, 0xa7, 0x76,\\n 0xde, 0x02, 0x21, 0x00, 0xa6, 0x54, 0x7c, 0x22,\\n 0xb1, 0x83, 0x5c, 0x0a, 0x4a, 0x83, 0xd9, 0x25,\\n 0x9c, 0xb4, 0x6d, 0x71, 0x40, 0x7a, 0x34, 0x1d,\\n 0x97, 0x8f, 0x01, 0x05, 0xbc, 0x3e, 0xcb, 0x4c,\\n 0xce, 0x13, 0x6e, 0xa5 };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x35, 0x30, 0x82, 0x01, 0xdb,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x5c,\\n 0x27, 0xa5, 0x76, 0x7d, 0x58, 0x85, 0x8a, 0x43,\\n 0x91, 0xa0, 0x61, 0xab, 0xcf, 0xa6, 0x59, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x72, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74,\\n 0x73, 0x74, 0x72, 0x61, 0x70, 0x43, 0x41, 0x30,\\n 0x20, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x35, 0x31,\\n 0x35, 0x31, 0x39, 0x34, 0x39, 0x31, 0x31, 0x5a,\\n 0x18, 0x0f, 0x32, 0x30, 0x35, 0x32, 0x30, 0x35,\\n 0x31, 0x35, 0x31, 0x39, 0x35, 0x39, 0x31, 0x30,\\n 0x5a, 0x30, 0x72, 0x31, 0x0b, 0x30, 0x09, 0x06,\\n 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42,\\n 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,\\n 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72,\\n 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72,\\n 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55,\\n 0x04, 0x07, 0x13, 0x09, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10, 0x30,\\n 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07,\\n 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64, 0x31,\\n 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03,\\n 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20, 0x49, 0x6e,\\n 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,\\n 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74,\\n 0x72, 0x61, 0x70, 0x43, 0x41, 0x30, 0x59, 0x30,\\n 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04,\\n 0x8b, 0x7c, 0x86, 0xc3, 0x88, 0x54, 0xe6, 0x5f,\\n 0xe0, 0x57, 0x4e, 0x1b, 0xac, 0x29, 0x82, 0xea,\\n 0x7d, 0x91, 0x00, 0x63, 0xa7, 0x4a, 0x05, 0xbc,\\n 0x54, 0xc5, 0x71, 0x27, 0x33, 0x19, 0x1b, 0x2e,\\n 0xfa, 0x41, 0xf8, 0x7a, 0x9a, 0x0c, 0x5d, 0xfc,\\n 0xb3, 0x37, 0x01, 0x99, 0xc5, 0xc9, 0xbe, 0x78,\\n 0x5b, 0x1d, 0xec, 0xb0, 0x1a, 0x1d, 0xdc, 0xe4,\\n 0x6f, 0x57, 0x04, 0xf4, 0x3a, 0xca, 0xa8, 0xd2,\\n 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b, 0x06, 0x03,\\n 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01,\\n 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,\\n 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,\\n 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xef, 0x69,\\n 0xfa, 0x62, 0x3f, 0x00, 0x86, 0xf4, 0x05, 0xb8,\\n 0xb6, 0xe6, 0xb2, 0xf1, 0xdb, 0x69, 0x10, 0xb4,\\n 0x39, 0x30, 0x10, 0x06, 0x09, 0x2b, 0x06, 0x01,\\n 0x04, 0x01, 0x82, 0x37, 0x15, 0x01, 0x04, 0x03,\\n 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a,\\n 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03,\\n 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, 0xa2,\\n 0x50, 0x88, 0x0f, 0x55, 0xe8, 0x26, 0x49, 0xe6,\\n 0xf5, 0x71, 0x86, 0x33, 0x29, 0x05, 0x4c, 0xf9,\\n 0xfd, 0x1f, 0x14, 0x98, 0x92, 0x85, 0xd9, 0x5c,\\n 0x48, 0x02, 0x9e, 0xc2, 0x79, 0xa8, 0x59, 0x02,\\n 0x20, 0x3e, 0xfe, 0x3c, 0xa0, 0xbf, 0xd3, 0x0f,\\n 0x15, 0x83, 0x56, 0xbc, 0xf2, 0xfa, 0x16, 0x26,\\n 0x7a, 0xc1, 0x68, 0xaa, 0xbc, 0x91, 0x3c, 0x69,\\n 0x44, 0x36, 0xf9, 0x74, 0xa1, 0x82, 0x76, 0x7a,\\n 0x6e };\\n\\nconst uint8_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x30, 0x30, 0x82, 0x01, 0xd5,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x26,\\n 0xf9, 0x08, 0xfc, 0xf1, 0xc0, 0x46, 0xa4, 0x4a,\\n 0x4d, 0x2c, 0xf1, 0x94, 0x27, 0xf9, 0x1f, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x6f, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x18, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x57, 0x4d, 0x32,\\n 0x4d, 0x20, 0x43, 0x41, 0x30, 0x20, 0x17, 0x0d,\\n 0x31, 0x37, 0x30, 0x32, 0x31, 0x32, 0x31, 0x30,\\n 0x33, 0x37, 0x35, 0x32, 0x5a, 0x18, 0x0f, 0x32,\\n 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x32, 0x31,\\n 0x30, 0x34, 0x37, 0x35, 0x32, 0x5a, 0x30, 0x6f,\\n 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,\\n 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30,\\n 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0e,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12,\\n 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,\\n 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64,\\n 0x67, 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03,\\n 0x55, 0x04, 0x0a, 0x13, 0x07, 0x41, 0x52, 0x4d,\\n 0x20, 0x4c, 0x74, 0x64, 0x31, 0x21, 0x30, 0x1f,\\n 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x41,\\n 0x52, 0x4d, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x67,\\n 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4c,\\n 0x57, 0x4d, 0x32, 0x4d, 0x20, 0x43, 0x41, 0x30,\\n 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,\\n 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,\\n 0x00, 0x04, 0xba, 0xea, 0x80, 0x01, 0x2d, 0xf0,\\n 0xe1, 0xb6, 0xc5, 0x5f, 0xf9, 0x76, 0x84, 0x31,\\n 0xa9, 0x29, 0xa1, 0xc7, 0xa8, 0xfd, 0xa0, 0xad,\\n 0xd9, 0x94, 0xe7, 0xec, 0x5a, 0x33, 0xa1, 0x2c,\\n 0x8e, 0x36, 0x43, 0x9b, 0x18, 0xdf, 0xce, 0x71,\\n 0x14, 0x24, 0xb1, 0xfb, 0x16, 0x34, 0x0e, 0x43,\\n 0xfc, 0x23, 0x77, 0xd4, 0x13, 0xd7, 0x11, 0xaa,\\n 0x39, 0x60, 0xab, 0xa2, 0xdf, 0x24, 0xb3, 0xeb,\\n 0xa0, 0xc5, 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b,\\n 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03,\\n 0x02, 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55,\\n 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30,\\n 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03,\\n 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7b,\\n 0xa1, 0xa5, 0x94, 0xa5, 0xe5, 0x8f, 0x95, 0x5d,\\n 0xd4, 0xce, 0xdc, 0x0f, 0x8a, 0xbe, 0xad, 0x9a,\\n 0x6b, 0x66, 0x3e, 0x30, 0x10, 0x06, 0x09, 0x2b,\\n 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x01,\\n 0x04, 0x03, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xd2, 0x06, 0x28, 0xc5, 0x31, 0x3a, 0x11,\\n 0x8d, 0xb6, 0xcb, 0x2b, 0x3f, 0xdd, 0x2a, 0x9a,\\n 0x13, 0x30, 0x52, 0x77, 0xaa, 0xda, 0xda, 0xcb,\\n 0xce, 0xb9, 0x5c, 0xe4, 0x32, 0x1c, 0x02, 0xfa,\\n 0x30, 0x02, 0x21, 0x00, 0xb3, 0x82, 0x24, 0xa2,\\n 0xb1, 0x67, 0x6b, 0x69, 0x07, 0x0e, 0xcd, 0x77,\\n 0x74, 0x99, 0x06, 0x9c, 0x59, 0xb2, 0x00, 0xc0,\\n 0xb3, 0xbb, 0x37, 0x5b, 0xc0, 0x1b, 0xfb, 0xd9,\\n 0x70, 0x98, 0xb9, 0x1e };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY[] = \\n{ 0x30, 0x81, 0x93, 0x02, 0x01, 0x00, 0x30, 0x13,\\n 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,\\n 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x03, 0x01, 0x07, 0x04, 0x79, 0x30, 0x77, 0x02,\\n 0x01, 0x01, 0x04, 0x20, 0x78, 0xa7, 0x3d, 0xed,\\n 0xa0, 0xb5, 0x67, 0x86, 0xa7, 0x89, 0x75, 0x46,\\n 0x8c, 0xd4, 0xaf, 0xbd, 0x7c, 0x36, 0x86, 0x5e,\\n 0xb3, 0xc0, 0x00, 0x98, 0x22, 0xcf, 0x3c, 0x38,\\n 0xa4, 0x31, 0xeb, 0x51, 0xa0, 0x0a, 0x06, 0x08,\\n 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07,\\n 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x44, 0x9c,\\n 0x2c, 0x36, 0xce, 0x5e, 0xf3, 0x9b, 0xf7, 0x4d,\\n 0xc0, 0x62, 0x52, 0x3d, 0xa3, 0x0f, 0x04, 0xe2,\\n 0x16, 0xcb, 0x48, 0x72, 0x4f, 0xb7, 0x91, 0x36,\\n 0x04, 0xee, 0x10, 0xe1, 0xb1, 0xce, 0xa6, 0xe5,\\n 0x87, 0xd8, 0xe8, 0x7a, 0x3f, 0xe0, 0x83, 0x3e,\\n 0xd7, 0xbd, 0xa4, 0x0b, 0xf7, 0x13, 0xa8, 0x3d,\\n 0xd1, 0x79, 0x3f, 0x65, 0xc6, 0x69, 0x43, 0xec,\\n 0x41, 0x3b, 0xaa, 0x9c, 0x8b, 0xf6 };\\n\\nconst char MBED_CLOUD_DEV_MANUFACTURER[] = \\\"dev_manufacturer\\\";\\n\\nconst char MBED_CLOUD_DEV_MODEL_NUMBER[] = \\\"dev_model_num\\\";\\n\\nconst char MBED_CLOUD_DEV_SERIAL_NUMBER[] = \\\"0\\\";\\n\\nconst char MBED_CLOUD_DEV_DEVICE_TYPE[] = \\\"dev_device_type\\\";\\n\\nconst char MBED_CLOUD_DEV_HARDWARE_VERSION[] = \\\"dev_hardware_version\\\";\\n\\nconst uint32_t MBED_CLOUD_DEV_MEMORY_TOTAL_KB = 0;\\n\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY);\\n\\n#endif //__MBED_CLOUD_DEV_CREDENTIALS_H__\\n", + "_key": "Success" + } + ], + "_key": "201" + }, + { + "description": "Bad request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "examples": [ + { + "object": "error", + "code": 400, + "type": "validation_error", + "message": "Bad Request. Missing certificate name.", + "request_id": "015fee4431fd38c98640fbfb00000000", + "fields": { + "name": "name", + "message": "Missing certificate name." + }, + "_key": "Bad Request Error" + } + ], + "_key": "400" }, { - "description": "Bad request.", + "description": "Invalid access token.", "schema": { "type": "object", "required": [ @@ -31259,10 +30353,20 @@ } ] }, - "_key": "400" + "examples": [ + { + "object": "error", + "code": 401, + "type": "invalid_auth", + "message": "Invalid access token.", + "request_id": "015fee4431fd38c98640fbfb00000000", + "_key": "Authentication Error" + } + ], + "_key": "401" }, { - "description": "Unauthorized.", + "description": "The maximum number of developer certificates for the given account has already been reached.", "schema": { "type": "object", "required": [ @@ -31332,10 +30436,24 @@ } ] }, - "_key": "401" + "examples": [ + { + "object": "error", + "code": 403, + "type": "account_limit_exceeded", + "message": "Forbidden. Limit for the number of certificates exceeded.", + "request_id": "015fee4431fd38c98640fbfb00000000", + "fields": { + "name": "cert-count", + "message": "10" + }, + "_key": "Account Limit Exceeded Error" + } + ], + "_key": "403" }, { - "description": "Not found.", + "description": "Certificate with the given name already exists.", "schema": { "type": "object", "required": [ @@ -31405,16 +30523,30 @@ } ] }, - "_key": "404" + "examples": [ + { + "object": "error", + "code": 409, + "type": "duplicate", + "message": "Conflict. Certificate already exists.", + "request_id": "015fee4431fd38c98640fbfb00000000", + "fields": { + "name": "certificate", + "message": "Certificate already exists." + }, + "_key": "Duplicate Error" + } + ], + "_key": "409" } ], - "path": "/v3/device-groups/{device-group-id}/devices/add/", - "summary": "Add a device to a group.", - "return_type": "void", + "path": "/v3/developer-certificates", + "summary": "Create a new developer certificate to connect to the bootstrap server.", + "return_type": "developer_certificate", "return_info": { - "self": false, - "custom": true, - "type": "void" + "self": true, + "custom": false, + "type": "developer_certificate" }, "x_filter": {}, "x_deprecation": null, @@ -31422,680 +30554,758 @@ "object", "etag", "type", - "filter" + "filter", + "id", + "created_at", + "account_id", + "developer_private_key", + "security_file_content", + "certificate" ], - "group_id": "Devices", - "operation_id": "Group_members_add", + "group_id": "Security", "parameter_map": { - "device_id": "id" - }, - "spec": { - "return_type": "void" + "developerCertificateId": "id" }, + "operation_id": "createDeveloperCertificate", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "add_to_group" + "_key": "create" }, { - "description": "Create a new device.", - "field_renames": [], - "fields": [ - { - "type": "boolean", - "description": "DEPRECATED: Mark this device for automatic firmware update.", - "api_fieldname": "auto_update", - "entity_fieldname": "auto_update", - "parameter_fieldname": "auto_update", - "in": "body", - "required": false, - "_key": "auto_update" - }, - { - "format": "date", - "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to bootstrap server.", - "api_fieldname": "bootstrap_expiration_date", - "entity_fieldname": "bootstrap_expiration_date", - "parameter_fieldname": "bootstrap_expiration_date", - "in": "body", - "required": false, - "_key": "bootstrap_expiration_date" - }, - { - "type": "string", - "maxLength": 500, - "description": "The certificate issuer's ID.", - "example": "00000000000000000000000000000000", - "api_fieldname": "ca_id", - "entity_fieldname": "ca_id", - "parameter_fieldname": "ca_id", - "in": "body", - "required": false, - "_key": "ca_id" - }, - { - "format": "date", - "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to LwM2M server.", - "api_fieldname": "connector_expiration_date", - "entity_fieldname": "connector_expiration_date", - "parameter_fieldname": "connector_expiration_date", - "in": "body", - "required": false, - "_key": "connector_expiration_date" - }, - { - "type": "object", - "maxProperties": 5, - "additionalProperties": { - "type": "string", - "maxLength": 128, - "pattern": "^[A-Za-z].*" - }, - "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" - }, - "api_fieldname": "custom_attributes", - "entity_fieldname": "custom_attributes", - "parameter_fieldname": "custom_attributes", - "in": "body", - "required": false, - "_key": "custom_attributes" - }, - { - "type": "string", - "description": "DEPRECATED: The last deployment used on the device.", - "example": "", - "api_fieldname": "deployment", - "entity_fieldname": "deployment", - "parameter_fieldname": "deployment", - "in": "body", - "required": false, - "_key": "deployment" - }, - { - "type": "string", - "maxLength": 2000, - "description": "The description of the device.", - "example": "description", - "api_fieldname": "description", - "entity_fieldname": "description", - "parameter_fieldname": "description", - "in": "body", - "required": false, - "_key": "description" - }, - { - "type": "string", - "maxLength": 32, - "description": "An ID representing the model and hardware revision of the device.", - "example": "", - "api_fieldname": "device_class", - "entity_fieldname": "device_class", - "parameter_fieldname": "device_class", - "in": "body", - "required": false, - "_key": "device_class" - }, - { - "enum": [ - 0, - 1, - 5 - ], - "type": "integer", - "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.", - "example": 0, - "default": 0, - "api_fieldname": "device_execution_mode", - "entity_fieldname": "device_execution_mode", - "parameter_fieldname": "device_execution_mode", - "in": "body", - "required": false, - "_key": "device_execution_mode" - }, - { - "type": "string", - "maxLength": 512, - "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", - "api_fieldname": "device_key", - "entity_fieldname": "device_key", - "parameter_fieldname": "device_key", - "in": "body", - "required": false, - "_key": "device_key" - }, - { - "type": "string", - "description": "The endpoint name given to the device.", - "example": "00000000-0000-0000-0000-000000000000", - "readOnly": true, - "api_fieldname": "endpoint_name", - "entity_fieldname": "endpoint_name", - "parameter_fieldname": "endpoint_name", - "in": "body", - "required": false, - "_key": "endpoint_name" - }, - { - "type": "string", - "description": "The endpoint type of the device. For example, the device is a gateway.", - "maxLength": 64, - "example": "", - "api_fieldname": "endpoint_type", - "entity_fieldname": "endpoint_type", - "parameter_fieldname": "endpoint_type", - "in": "body", - "required": false, - "_key": "endpoint_type" - }, - { - "type": "string", - "description": "The ID of the host gateway, if appropriate.", - "example": "", - "api_fieldname": "host_gateway", - "entity_fieldname": "host_gateway", - "parameter_fieldname": "host_gateway", - "in": "body", - "required": false, - "_key": "host_gateway" - }, - { - "type": "string", - "pattern": "[A-Fa-f0-9]{64}", - "x-nullable": true, - "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", - "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322", - "api_fieldname": "issuer_fingerprint", - "entity_fieldname": "issuer_fingerprint", - "parameter_fieldname": "issuer_fingerprint", - "in": "body", - "required": false, - "_key": "issuer_fingerprint" - }, - { - "type": "string", - "description": "DEPRECATED: The URL for the current device manifest.", - "example": "", - "api_fieldname": "manifest", - "entity_fieldname": "manifest", - "parameter_fieldname": "manifest", - "in": "body", - "required": false, - "_key": "manifest" - }, - { - "enum": [ - "connector", - "direct" - ], - "type": "string", - "description": "The ID of the channel used to communicate with the device.", - "api_fieldname": "mechanism", - "entity_fieldname": "mechanism", - "parameter_fieldname": "mechanism", - "in": "body", - "required": false, - "enum_reference": "device_mechanism_enum", - "_key": "mechanism" - }, - { - "type": "string", - "description": "The address of the connector to use.", - "example": "", - "api_fieldname": "mechanism_url", - "entity_fieldname": "mechanism_url", - "parameter_fieldname": "mechanism_url", - "in": "body", - "required": false, - "_key": "mechanism_url" - }, - { - "type": "string", - "maxLength": 128, - "description": "The name of the device.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "name", - "entity_fieldname": "name", - "parameter_fieldname": "name", - "in": "body", - "required": false, - "_key": "name" - }, - { - "type": "string", - "description": "The serial number of the device.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "serial_number", - "entity_fieldname": "serial_number", - "parameter_fieldname": "serial_number", - "in": "body", - "required": false, - "_key": "serial_number" - }, + "description": "Delete a trusted certificate.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [ { - "enum": [ - "unenrolled", - "cloud_enrolling", - "bootstrapped", - "registered", - "deregistered" - ], - "type": "string", - "description": "The current state of the device.", - "api_fieldname": "state", - "entity_fieldname": "state", - "parameter_fieldname": "state", - "in": "body", - "required": false, - "enum_reference": "device_state_enum", - "_key": "state" - }, + "api_fieldname": "developer_certificate", + "_key": "certificate" + } + ], + "fields": [ { + "name": "cert_id", + "in": "path", + "description": "The ID of the trusted certificate to delete.", + "required": true, "type": "string", - "description": "The device vendor ID.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "vendor_id", - "entity_fieldname": "vendor_id", - "parameter_fieldname": "vendor_id", - "in": "body", - "required": false, - "_key": "vendor_id" + "entity_fieldname": "id", + "api_fieldname": "cert_id", + "external_param": false, + "parameter_fieldname": "cert_id", + "_key": "id" } ], - "method": "post", - "mode": "create", + "method": "delete", + "mode": "delete", "responses": [ { - "description": "Device created.", - "schema": [ - { - "group": "Devices", - "entity": "device", - "_key": "foreign_key" - }, - { - "device_execution_mode": { + "description": "Deleted successfully.", + "_key": "204" + }, + { + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", "enum": [ - 0, - 1, - 5 + "error" ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { "type": "integer", - "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.", - "example": 0, - "default": 0, - "api_fieldname": "device_execution_mode", - "entity_fieldname": "device_execution_mode" + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, - "groups": { - "description": "An array containing an ID of each group this device belongs to.", + { "type": "array", + "description": "Request fields which failed validation.", "items": { - "type": "string", - "example": "00000000000000000000000000000000" + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] }, - "api_fieldname": "groups", - "entity_fieldname": "groups" + "_key": "fields" }, - "issuer_fingerprint": { + { "type": "string", - "pattern": "[A-Fa-f0-9]{64}", - "x-nullable": true, - "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", - "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322", - "api_fieldname": "issuer_fingerprint", - "entity_fieldname": "issuer_fingerprint" - }, - "operator_suspended": { - "type": "boolean", - "description": "Is the device suspended by the operator?", - "api_fieldname": "operator_suspended", - "entity_fieldname": "operator_suspended" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, - "last_operator_suspended_category": { + { "type": "string", - "description": "The reference of the block category.", - "pattern": "[a-f0-9_]{32}", - "example": "maintenance", - "api_fieldname": "last_operator_suspended_category", - "entity_fieldname": "last_operator_suspended_category" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, - "last_operator_suspended_description": { + { "type": "string", - "maxLength": 2000, - "description": "The most recent description why the device was suspended or returned to service.", - "example": "Suspended for maintenance.", - "api_fieldname": "last_operator_suspended_description", - "entity_fieldname": "last_operator_suspended_description" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "last_operator_suspended_updated_at": { + { "type": "string", - "format": "date-time", - "description": "The timestamp of the most recent suspension activity.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "last_operator_suspended_updated_at", - "entity_fieldname": "last_operator_suspended_updated_at" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + }, + { + "description": "A certificate not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, - "system_suspended": { - "type": "boolean", - "description": "Is the device suspended by the system?", - "api_fieldname": "system_suspended", - "entity_fieldname": "system_suspended" + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, - "last_system_suspended_category": { + { "type": "string", - "description": "The reference of the block category.", - "pattern": "[a-f0-9_]{32}", - "example": "maintenance", - "api_fieldname": "last_system_suspended_category", - "entity_fieldname": "last_system_suspended_category" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, - "last_system_suspended_description": { + { "type": "string", - "maxLength": 2000, - "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.", - "api_fieldname": "last_system_suspended_description", - "entity_fieldname": "last_system_suspended_description" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, - "last_system_suspended_updated_at": { + { "type": "string", - "format": "date-time", - "description": "The timestamp of the most recent system block activity.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "last_system_suspended_updated_at", - "entity_fieldname": "last_system_suspended_updated_at" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "lifecycle_status": { + { "type": "string", - "enum": [ - "enabled", - "blocked" - ], - "description": "The lifecycle status of the device.", - "example": "enabled", - "api_fieldname": "lifecycle_status", - "entity_fieldname": "lifecycle_status" - }, - "account_id": { + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "404" + } + ], + "path": "/v3/trusted-certificates/{cert_id}", + "summary": "Delete a trusted certificate by ID.", + "return_type": "developer_certificate", + "return_info": { + "self": true, + "custom": false, + "type": "developer_certificate" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter" + ], + "group_id": "Security", + "parameter_map": { + "developerCertificateId": "id", + "cert_id": "id" + }, + "operation_id": "deleteCertificate", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "delete" + }, + { + "description": "Retrieve a trusted certificate.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", + "field_renames": [ + { + "api_fieldname": "developer_certificate", + "_key": "certificate" + } + ], + "fields": [ + { + "type": "string", + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "cert_id", + "in": "path", + "required": true, + "_key": "id" + } + ], + "method": "get", + "mode": "get_trusted_certificate_info", + "responses": [ + { + "description": "Successful operation.", + "schema": { + "type": "object", + "required": [ + "account_id", + "certificate", + "certificate_fingerprint", + "etag", + "id", + "issuer", + "name", + "object", + "service", + "subject", + "validity" + ], + "properties": [ + { "type": "string", - "description": "The ID of the associated account.", - "example": "00000000000000000000000000000000", + "example": "01619571e2e90242ac12000600000000", + "description": "The ID of the account.", + "pattern": "[a-f0-9]{32}", "api_fieldname": "account_id", - "entity_fieldname": "account_id" + "entity_fieldname": "account_id", + "_key": "account_id" }, - "auto_update": { - "type": "boolean", - "description": "DEPRECATED: Mark this device for automatic firmware update.", - "api_fieldname": "auto_update", - "entity_fieldname": "auto_update" + { + "type": "string", + "example": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----", + "description": "X509.v3 trusted certificate in PEM format.", + "api_fieldname": "certificate", + "entity_fieldname": "certificate", + "_key": "certificate" }, - "bootstrap_expiration_date": { - "format": "date", + { "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to bootstrap server.", - "api_fieldname": "bootstrap_expiration_date", - "entity_fieldname": "bootstrap_expiration_date" + "example": "a10fb2c8ba90e6de927bd0ae391dcc38f6115685de2d7024712af37ead0608f1", + "description": "A SHA-256 fingerprint of the certificate.", + "api_fieldname": "certificate_fingerprint", + "entity_fieldname": "certificate_fingerprint", + "_key": "certificate_fingerprint" }, - "bootstrapped_timestamp": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "description": "The timestamp of the device's most recent bootstrap process.", - "api_fieldname": "bootstrapped_timestamp", - "entity_fieldname": "bootstrapped_timestamp" + "format": "date-time", + "example": "2018-02-13T09:35:20Z", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" }, - "ca_id": { + { "type": "string", "maxLength": 500, - "description": "The certificate issuer's ID.", - "example": "00000000000000000000000000000000", - "api_fieldname": "ca_id", - "entity_fieldname": "ca_id" + "x-nullable": true, + "example": "Certificate created by me.", + "description": "Human readable description of this certificate.", + "api_fieldname": "description", + "entity_fieldname": "description", + "_key": "description" }, - "connector_expiration_date": { - "format": "date", + { + "type": "integer", + "format": "int32", + "example": 1, + "description": "Device execution mode where 1 means a developer certificate.", + "api_fieldname": "device_execution_mode", + "entity_fieldname": "device_execution_mode", + "_key": "device_execution_mode" + }, + { + "type": "boolean", + "example": false, + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, + "api_fieldname": "enrollment_mode", + "entity_fieldname": "enrollment_mode", + "_key": "enrollment_mode" + }, + { "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to LwM2M server.", - "api_fieldname": "connector_expiration_date", - "entity_fieldname": "connector_expiration_date" + "example": "1", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" }, - "created_at": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "description": "The timestamp of when the device was created in the device directory.", - "api_fieldname": "created_at", - "entity_fieldname": "created_at" + "example": "01619571d01d0242ac12000600000000", + "description": "Entity ID.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" }, - "custom_attributes": { - "type": "object", - "maxProperties": 5, - "additionalProperties": { - "type": "string", - "maxLength": 128, - "pattern": "^[A-Za-z].*" - }, - "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" - }, - "api_fieldname": "custom_attributes", - "entity_fieldname": "custom_attributes" + { + "type": "string", + "example": "CN=issuer", + "description": "Issuer of the certificate.", + "api_fieldname": "issuer", + "entity_fieldname": "issuer", + "_key": "issuer" }, - "deployed_state": { + { + "type": "string", + "maxLength": 100, + "example": "My certificate", + "description": "Certificate name.", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" + }, + { + "type": "string", + "description": "Entity name: always 'trusted-cert'", "enum": [ - "development", - "production" + "trusted-cert" ], + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "x-nullable": true, "type": "string", - "description": "DEPRECATED: The state of the device's deployment.", - "api_fieldname": "deployed_state", - "entity_fieldname": "deployed_state" + "example": "01619571dad80242ac12000600000000", + "description": "The ID of the owner.", + "pattern": "[a-f0-9]{32}", + "api_fieldname": "owner_id", + "entity_fieldname": "owner_id", + "_key": "owner_id" }, - "deployment": { + { "type": "string", - "description": "DEPRECATED: The last deployment used on the device.", - "example": "", - "api_fieldname": "deployment", - "entity_fieldname": "deployment" + "description": "Service name where the certificate is used.", + "enum": [ + "lwm2m", + "bootstrap" + ], + "api_fieldname": "service", + "entity_fieldname": "service", + "_key": "service" }, - "description": { + { "type": "string", - "maxLength": 2000, - "description": "The description of the device.", - "example": "description", - "api_fieldname": "description", - "entity_fieldname": "description" + "example": "ACTIVE", + "description": "Status of the certificate.", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" }, - "device_class": { + { "type": "string", - "maxLength": 32, - "description": "An ID representing the model and hardware revision of the device.", - "example": "", - "api_fieldname": "device_class", - "entity_fieldname": "device_class" + "example": "CN=subject", + "description": "Subject of the certificate.", + "api_fieldname": "subject", + "entity_fieldname": "subject", + "_key": "subject" }, - "id": { + { "type": "string", - "description": "The ID of the device. The device ID is used across all Device Management APIs.", - "example": "00000000000000000000000000000000", - "api_fieldname": "id", - "entity_fieldname": "id" + "format": "date-time", + "example": "2018-02-14T15:24:14Z", + "description": "Last update UTC time RFC3339.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" }, - "device_key": { + { + "type": "boolean", + "example": true, + "description": "This read-only flag indicates whether the certificate is valid or not.", + "readOnly": true, + "api_fieldname": "valid", + "entity_fieldname": "valid", + "_key": "valid" + }, + { "type": "string", - "maxLength": 512, - "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", - "api_fieldname": "device_key", - "entity_fieldname": "device_key" + "format": "date-time", + "example": "2038-02-14T15:24:14Z", + "description": "Expiration time in UTC formatted as RFC3339.", + "api_fieldname": "validity", + "entity_fieldname": "validity", + "_key": "validity" + } + ], + "description": "Represents a trusted certificate in responses.", + "foreign_key": { + "group": "Security", + "entity": "developer_certificate" + } + }, + "_key": "200" + }, + { + "description": "Authentication failure.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, - "endpoint_name": { - "type": "string", - "description": "The endpoint name given to the device.", - "example": "00000000-0000-0000-0000-000000000000", - "readOnly": true, - "api_fieldname": "endpoint_name", - "entity_fieldname": "endpoint_name" + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, - "endpoint_type": { + { "type": "string", - "description": "The endpoint type of the device. For example, the device is a gateway.", - "maxLength": 64, - "example": "", - "api_fieldname": "endpoint_type", - "entity_fieldname": "endpoint_type" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, - "etag": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "description": "The entity instance signature.", - "api_fieldname": "etag", - "entity_fieldname": "etag" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, - "firmware_checksum": { + { "type": "string", - "description": "The SHA256 checksum of the current firmware image.", - "example": "0000000000000000000000000000000000000000000000000000000000000000", - "api_fieldname": "firmware_checksum", - "entity_fieldname": "firmware_checksum" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "host_gateway": { + { "type": "string", - "description": "The ID of the host gateway, if appropriate.", - "example": "", - "api_fieldname": "host_gateway", - "entity_fieldname": "host_gateway" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, - "manifest": { - "type": "string", - "description": "DEPRECATED: The URL for the current device manifest.", - "example": "", - "api_fieldname": "manifest", - "entity_fieldname": "manifest" + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, - "manifest_timestamp": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "description": "The timestamp of the current manifest version.", - "api_fieldname": "manifest_timestamp", - "entity_fieldname": "manifest_timestamp" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, - "mechanism": { + { + "type": "string", + "description": "Entity name, always `error`.", "enum": [ - "connector", - "direct" + "error" ], - "type": "string", - "description": "The ID of the channel used to communicate with the device.", - "api_fieldname": "mechanism", - "entity_fieldname": "mechanism" + "_key": "object" }, - "mechanism_url": { + { "type": "string", - "description": "The address of the connector to use.", - "example": "", - "api_fieldname": "mechanism_url", - "entity_fieldname": "mechanism_url" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "name": { + { "type": "string", - "maxLength": 128, - "description": "The name of the device.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "name", - "entity_fieldname": "name" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + }, + { + "description": "A certificate not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, - "object": { - "type": "string", - "description": "The API resource entity.", - "example": "device", - "api_fieldname": "object", - "entity_fieldname": "object" + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, - "serial_number": { + { "type": "string", - "description": "The serial number of the device.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "serial_number", - "entity_fieldname": "serial_number" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, - "state": { + { + "type": "string", + "description": "Entity name, always `error`.", "enum": [ - "unenrolled", - "cloud_enrolling", - "bootstrapped", - "registered", - "deregistered" + "error" ], - "type": "string", - "description": "The current state of the device.", - "api_fieldname": "state", - "entity_fieldname": "state" - }, - "updated_at": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The time the object was updated.", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at" + "_key": "object" }, - "vendor_id": { + { "type": "string", - "description": "The device vendor ID.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "vendor_id", - "entity_fieldname": "vendor_id" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "enrolment_list_timestamp": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "description": "The claim date/time.", - "api_fieldname": "enrolment_list_timestamp", - "entity_fieldname": "enrolment_list_timestamp" - }, - "_key": "properties" - } - ], - "_key": "201" - }, - { - "description": "Validation error: The data used to create the device did not validate.", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Account limit reached. Could not create device.", - "_key": "403" - }, - { - "description": "Unique-constrained fields are used by other resources.", - "_key": "409" + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "404" } ], - "path": "/v3/devices/", - "summary": "Create a device.", - "return_type": "device", + "path": "/v3/trusted-certificates/{cert_id}", + "summary": "Get a trusted certificate.", + "return_type": "trusted_certificate", "return_info": { - "self": true, + "self": false, "custom": false, - "type": "device" + "type": "trusted_certificate" }, "x_filter": {}, "x_deprecation": null, @@ -32104,900 +31314,1092 @@ "etag", "type", "filter", - "groups", - "operator_suspended", - "last_operator_suspended_category", - "last_operator_suspended_description", - "last_operator_suspended_updated_at", - "system_suspended", - "last_system_suspended_category", - "last_system_suspended_description", - "last_system_suspended_updated_at", - "lifecycle_status", - "account_id", - "bootstrapped_timestamp", "created_at", - "deployed_state", - "id", - "firmware_checksum", - "manifest_timestamp", "updated_at", - "enrolment_list_timestamp" + "name", + "description", + "account_id", + "owner_id", + "certificate", + "service", + "issuer", + "subject", + "validity", + "status", + "device_execution_mode", + "enrollment_mode", + "certificate_fingerprint", + "valid" ], - "group_id": "Devices", - "operation_id": "Device_create", + "group_id": "Security", + "parameter_map": { + "developerCertificateId": "id", + "cert_id": "id" + }, + "operation_id": "getCertificate", + "unaggregated": true, + "foreign_key": { + "entity": "trusted_certificate", + "group": "Security" + }, "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "create" + "_key": "get_trusted_certificate_info" }, { - "description": "Delete device. Only available for devices with a developer certificate. Attempting to delete a device with a production certicate returns a 400 response.", - "field_renames": [], + "description": "Return an existing developer certificate (a certificate that can be flashed to multiple devices to connect to bootstrap server).\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \\\n-H \"Authorization: Bearer \"\n```", + "field_renames": [ + { + "api_fieldname": "developer_certificate", + "_key": "certificate" + } + ], "fields": [ { - "description": "The ID of the device.", - "in": "path", - "name": "id", - "required": true, "type": "string", - "entity_fieldname": "id", + "description": "ID that uniquely identifies the developer certificate.", "api_fieldname": "id", - "external_param": false, - "parameter_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "developerCertificateId", + "in": "path", + "required": true, "_key": "id" } ], - "method": "delete", - "mode": "delete", + "method": "get", + "mode": "read", "responses": [ { - "description": "Device deleted.", - "_key": "204" - }, - { - "description": "Bad request.", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Unable to delete device because it can't be found.", - "_key": "404" - } - ], - "path": "/v3/devices/{id}/", - "summary": "Delete a device.", - "return_type": "device", - "return_info": { - "self": true, - "custom": false, - "type": "device" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter" - ], - "group_id": "Devices", - "operation_id": "Device_destroy", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "delete" - }, - { - "description": "List all devices.\n\n**Example:**\nFollowing example filters devices according to state field and returns only devices in 'registered' state:\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/devices?filter=state%3Dregistered \\\n-H 'Authorization: Bearer '\n```", - "field_renames": [], - "fields": [ - { - "type": "string", - "description": "The ID of the item after which to retrieve the next page.", - "example": "01631667477600000000000100100374", - "api_fieldname": "after", - "entity_fieldname": "after", - "in": "query", - "name": "after", - "external_param": true, - "parameter_fieldname": "after", - "required": false, - "_key": "after" - }, - { - "description": "Comma-separated list of data fields to return. Currently supported: `total_count`.", - "in": "query", - "name": "include", - "type": "string", - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "required": false, - "_key": "include" - }, - { - "type": "integer", - "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, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "in": "query", - "name": "limit", - "external_param": true, - "parameter_fieldname": "limit", - "required": false, - "_key": "limit" + "description": "Developer certificate returned successfully.", + "schema": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Account to which the developer certificate belongs.", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" + }, + { + "type": "string", + "format": "date-time", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "string", + "description": "Description for the developer certificate.", + "x-nullable": true, + "api_fieldname": "description", + "entity_fieldname": "description", + "_key": "description" + }, + { + "type": "string", + "description": "PEM-format X.509 developer certificate.", + "api_fieldname": "developer_certificate", + "entity_fieldname": "developer_certificate", + "_key": "developer_certificate" + }, + { + "type": "string", + "description": "PEM-format developer private key associated with the certificate.", + "api_fieldname": "developer_private_key", + "entity_fieldname": "developer_private_key", + "_key": "developer_private_key" + }, + { + "type": "string", + "description": "API resource entity version.", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "ID that uniquely identifies the developer certificate.", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "string", + "description": "Name of the developer certificate.", + "api_fieldname": "name", + "entity_fieldname": "name", + "_key": "name" + }, + { + "type": "string", + "description": "Entity name: always `trusted-cert`.", + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "description": "Content of the `security.c` file flashed to the device to provide security credentials.", + "api_fieldname": "security_file_content", + "entity_fieldname": "security_file_content", + "_key": "security_file_content" + } + ], + "foreign_key": { + "group": "Security", + "entity": "developer_certificate" + } + }, + "examples": [ + { + "object": "trusted-cert", + "id": "015fee4431fd38c98640fbfb00000000", + "etag": "1", + "created_at": "2017-12-11T14:22:20.009Z", + "account_id": "015fee5d9b3538c98640fbfb00000000", + "name": "DeveloperCertificate", + "description": "This certificate applies to multiple developer devices.", + "developer_certificate": "-----BEGIN CERTIFICATE-----\\nMIICcDCCAhWgAwIBAgIRAPSBbBtLUE/ekQcWE4GzPJEwCgYIKoZIzj0EAwIwgaIx\\nCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5DYW1icmlkZ2VzaGlyZTESMBAGA1UEBwwJ\\nQ2FtYnJpZGdlMRAwDgYDVQQKDAdBUk0gTHRkMSkwJwYDVQQLDCAwMTU4NDNlMzJl\\nYzkwMjQyMGEwMTVlMDcwMDAwMDAwMDEpMCcGA1UEAwwgMDE2MWRiYmNkZDY2MGE1\\nODBhMDEwYzM0MDNjMDAwMDAwHhcNMTgwMjI4MDkyNzIzWhcNMjgwMjI4MDkyNzIz\\nWjCBojELMAkGA1UEBhMCR0IxFzAVBgNVBAgMDkNhbWJyaWRnZXNoaXJlMRIwEAYD\\nVQQHDAlDYW1icmlkZ2UxEDAOBgNVBAoMB0FSTSBMdGQxKTAnBgNVBAsMIDAxNTg0\\nM2UzMmVjOTAyNDIwYTAxNWUwNzAwMDAwMDAwMSkwJwYDVQQDDCAwMTYxZGJiY2Rk\\nNjYwYTU4MGEwMTBjMzQwM2MwMDAwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\\nBEScLDbOXvOb903AYlI9ow8E4hbLSHJPt5E2BO4Q4bHOpuWH2Oh6P+CDPte9pAv3\\nE6g90Xk/ZcZpQ+xBO6qci/ajKjAoMBIGCSsGAQQBoCCBSQQFAgNAAJEwEgYDVR0T\\nAQH/BAgwBgEB/wIBADAKBggqhkjOPQQDAgNJADBGAiEAsi9zSK8Njl22GoEHrsg8\\nQlwFnrkkP9d6FyLFtmqndt4CIQCmVHwisYNcCkqD2SWctG1xQHo0HZePAQW8PstM\\nzhNupQ==\\n-----END CERTIFICATE-----\\n", + "developer_private_key": "-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgeKc97aC1Z4aniXVG\\njNSvvXw2hl6zwACYIs88OKQx61GgCgYIKoZIzj0DAQehRANCAAREnCw2zl7zm/dN\\nwGJSPaMPBOIWy0hyT7eRNgTuEOGxzqblh9joej/ggz7XvaQL9xOoPdF5P2XGaUPs\\nQTuqnIv2\\n-----END PRIVATE KEY-----\\n", + "security_file_content": "/*\\n * Copyright (c) 2017 ARM Limited. All rights reserved.\\n * SPDX-License-Identifier: Apache-2.0\\n * Licensed under the Apache License, Version 2.0 (the License); you may\\n * not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an AS IS BASIS, WITHOUT\\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n#ifndef __MBED_CLOUD_DEV_CREDENTIALS_H__\\n#define __MBED_CLOUD_DEV_CREDENTIALS_H__\\n\\n#include \\n\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_ENDPOINT_NAME[] = \\\"0161dbbcdd660a580a010c3403c00000\\\";\\nconst char MBED_CLOUD_DEV_ACCOUNT_ID[] = \\\"015843e32ec902420a015e0700000000\\\";\\nconst char MBED_CLOUD_DEV_BOOTSTRAP_SERVER_URI[] = \\\"coaps://coap.us-east-1.mbedcloud.com:5684?aid=015843e32ec902420a015e0700000000\\\";\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x70, 0x30, 0x82, 0x02, 0x15,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00,\\n 0xf4, 0x81, 0x6c, 0x1b, 0x4b, 0x50, 0x4f, 0xde,\\n 0x91, 0x07, 0x16, 0x13, 0x81, 0xb3, 0x3c, 0x91,\\n 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0xa2, 0x31,\\n 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,\\n 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15,\\n 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43,\\n 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,\\n 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30,\\n 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,\\n 0x04, 0x0a, 0x0c, 0x07, 0x41, 0x52, 0x4d, 0x20,\\n 0x4c, 0x74, 0x64, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x20, 0x30, 0x31,\\n 0x35, 0x38, 0x34, 0x33, 0x65, 0x33, 0x32, 0x65,\\n 0x63, 0x39, 0x30, 0x32, 0x34, 0x32, 0x30, 0x61,\\n 0x30, 0x31, 0x35, 0x65, 0x30, 0x37, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x29,\\n 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c,\\n 0x20, 0x30, 0x31, 0x36, 0x31, 0x64, 0x62, 0x62,\\n 0x63, 0x64, 0x64, 0x36, 0x36, 0x30, 0x61, 0x35,\\n 0x38, 0x30, 0x61, 0x30, 0x31, 0x30, 0x63, 0x33,\\n 0x34, 0x30, 0x33, 0x63, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x38, 0x30,\\n 0x32, 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32,\\n 0x33, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x30, 0x32,\\n 0x32, 0x38, 0x30, 0x39, 0x32, 0x37, 0x32, 0x33,\\n 0x5a, 0x30, 0x81, 0xa2, 0x31, 0x0b, 0x30, 0x09,\\n 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47,\\n 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55,\\n 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69,\\n 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,\\n 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10,\\n 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c,\\n 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64,\\n 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04,\\n 0x0b, 0x0c, 0x20, 0x30, 0x31, 0x35, 0x38, 0x34,\\n 0x33, 0x65, 0x33, 0x32, 0x65, 0x63, 0x39, 0x30,\\n 0x32, 0x34, 0x32, 0x30, 0x61, 0x30, 0x31, 0x35,\\n 0x65, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30,\\n 0x30, 0x30, 0x30, 0x31, 0x29, 0x30, 0x27, 0x06,\\n 0x03, 0x55, 0x04, 0x03, 0x0c, 0x20, 0x30, 0x31,\\n 0x36, 0x31, 0x64, 0x62, 0x62, 0x63, 0x64, 0x64,\\n 0x36, 0x36, 0x30, 0x61, 0x35, 0x38, 0x30, 0x61,\\n 0x30, 0x31, 0x30, 0x63, 0x33, 0x34, 0x30, 0x33,\\n 0x63, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x59,\\n 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00,\\n 0x04, 0x44, 0x9c, 0x2c, 0x36, 0xce, 0x5e, 0xf3,\\n 0x9b, 0xf7, 0x4d, 0xc0, 0x62, 0x52, 0x3d, 0xa3,\\n 0x0f, 0x04, 0xe2, 0x16, 0xcb, 0x48, 0x72, 0x4f,\\n 0xb7, 0x91, 0x36, 0x04, 0xee, 0x10, 0xe1, 0xb1,\\n 0xce, 0xa6, 0xe5, 0x87, 0xd8, 0xe8, 0x7a, 0x3f,\\n 0xe0, 0x83, 0x3e, 0xd7, 0xbd, 0xa4, 0x0b, 0xf7,\\n 0x13, 0xa8, 0x3d, 0xd1, 0x79, 0x3f, 0x65, 0xc6,\\n 0x69, 0x43, 0xec, 0x41, 0x3b, 0xaa, 0x9c, 0x8b,\\n 0xf6, 0xa3, 0x2a, 0x30, 0x28, 0x30, 0x12, 0x06,\\n 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xa0, 0x20,\\n 0x81, 0x49, 0x04, 0x05, 0x02, 0x03, 0x40, 0x00,\\n 0x91, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,\\n 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xb2, 0x2f, 0x73, 0x48, 0xaf, 0x0d, 0x8e,\\n 0x5d, 0xb6, 0x1a, 0x81, 0x07, 0xae, 0xc8, 0x3c,\\n 0x42, 0x5c, 0x05, 0x9e, 0xb9, 0x24, 0x3f, 0xd7,\\n 0x7a, 0x17, 0x22, 0xc5, 0xb6, 0x6a, 0xa7, 0x76,\\n 0xde, 0x02, 0x21, 0x00, 0xa6, 0x54, 0x7c, 0x22,\\n 0xb1, 0x83, 0x5c, 0x0a, 0x4a, 0x83, 0xd9, 0x25,\\n 0x9c, 0xb4, 0x6d, 0x71, 0x40, 0x7a, 0x34, 0x1d,\\n 0x97, 0x8f, 0x01, 0x05, 0xbc, 0x3e, 0xcb, 0x4c,\\n 0xce, 0x13, 0x6e, 0xa5 };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x35, 0x30, 0x82, 0x01, 0xdb,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x5c,\\n 0x27, 0xa5, 0x76, 0x7d, 0x58, 0x85, 0x8a, 0x43,\\n 0x91, 0xa0, 0x61, 0xab, 0xcf, 0xa6, 0x59, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x72, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74,\\n 0x73, 0x74, 0x72, 0x61, 0x70, 0x43, 0x41, 0x30,\\n 0x20, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x35, 0x31,\\n 0x35, 0x31, 0x39, 0x34, 0x39, 0x31, 0x31, 0x5a,\\n 0x18, 0x0f, 0x32, 0x30, 0x35, 0x32, 0x30, 0x35,\\n 0x31, 0x35, 0x31, 0x39, 0x35, 0x39, 0x31, 0x30,\\n 0x5a, 0x30, 0x72, 0x31, 0x0b, 0x30, 0x09, 0x06,\\n 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42,\\n 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,\\n 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72,\\n 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72,\\n 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55,\\n 0x04, 0x07, 0x13, 0x09, 0x43, 0x61, 0x6d, 0x62,\\n 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x10, 0x30,\\n 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07,\\n 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74, 0x64, 0x31,\\n 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03,\\n 0x13, 0x1b, 0x41, 0x52, 0x4d, 0x20, 0x49, 0x6e,\\n 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,\\n 0x6e, 0x20, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74,\\n 0x72, 0x61, 0x70, 0x43, 0x41, 0x30, 0x59, 0x30,\\n 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,\\n 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04,\\n 0x8b, 0x7c, 0x86, 0xc3, 0x88, 0x54, 0xe6, 0x5f,\\n 0xe0, 0x57, 0x4e, 0x1b, 0xac, 0x29, 0x82, 0xea,\\n 0x7d, 0x91, 0x00, 0x63, 0xa7, 0x4a, 0x05, 0xbc,\\n 0x54, 0xc5, 0x71, 0x27, 0x33, 0x19, 0x1b, 0x2e,\\n 0xfa, 0x41, 0xf8, 0x7a, 0x9a, 0x0c, 0x5d, 0xfc,\\n 0xb3, 0x37, 0x01, 0x99, 0xc5, 0xc9, 0xbe, 0x78,\\n 0x5b, 0x1d, 0xec, 0xb0, 0x1a, 0x1d, 0xdc, 0xe4,\\n 0x6f, 0x57, 0x04, 0xf4, 0x3a, 0xca, 0xa8, 0xd2,\\n 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b, 0x06, 0x03,\\n 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01,\\n 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13,\\n 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,\\n 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,\\n 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xef, 0x69,\\n 0xfa, 0x62, 0x3f, 0x00, 0x86, 0xf4, 0x05, 0xb8,\\n 0xb6, 0xe6, 0xb2, 0xf1, 0xdb, 0x69, 0x10, 0xb4,\\n 0x39, 0x30, 0x10, 0x06, 0x09, 0x2b, 0x06, 0x01,\\n 0x04, 0x01, 0x82, 0x37, 0x15, 0x01, 0x04, 0x03,\\n 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a,\\n 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03,\\n 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, 0xa2,\\n 0x50, 0x88, 0x0f, 0x55, 0xe8, 0x26, 0x49, 0xe6,\\n 0xf5, 0x71, 0x86, 0x33, 0x29, 0x05, 0x4c, 0xf9,\\n 0xfd, 0x1f, 0x14, 0x98, 0x92, 0x85, 0xd9, 0x5c,\\n 0x48, 0x02, 0x9e, 0xc2, 0x79, 0xa8, 0x59, 0x02,\\n 0x20, 0x3e, 0xfe, 0x3c, 0xa0, 0xbf, 0xd3, 0x0f,\\n 0x15, 0x83, 0x56, 0xbc, 0xf2, 0xfa, 0x16, 0x26,\\n 0x7a, 0xc1, 0x68, 0xaa, 0xbc, 0x91, 0x3c, 0x69,\\n 0x44, 0x36, 0xf9, 0x74, 0xa1, 0x82, 0x76, 0x7a,\\n 0x6e };\\n\\nconst uint8_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE[] = \\n{ 0x30, 0x82, 0x02, 0x30, 0x30, 0x82, 0x01, 0xd5,\\n 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x26,\\n 0xf9, 0x08, 0xfc, 0xf1, 0xc0, 0x46, 0xa4, 0x4a,\\n 0x4d, 0x2c, 0xf1, 0x94, 0x27, 0xf9, 0x1f, 0x30,\\n 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x04, 0x03, 0x02, 0x30, 0x6f, 0x31, 0x0b, 0x30,\\n 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,\\n 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,\\n 0x55, 0x04, 0x08, 0x13, 0x0e, 0x43, 0x61, 0x6d,\\n 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68,\\n 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06,\\n 0x03, 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x61,\\n 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31,\\n 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,\\n 0x13, 0x07, 0x41, 0x52, 0x4d, 0x20, 0x4c, 0x74,\\n 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,\\n 0x04, 0x03, 0x13, 0x18, 0x41, 0x52, 0x4d, 0x20,\\n 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,\\n 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x57, 0x4d, 0x32,\\n 0x4d, 0x20, 0x43, 0x41, 0x30, 0x20, 0x17, 0x0d,\\n 0x31, 0x37, 0x30, 0x32, 0x31, 0x32, 0x31, 0x30,\\n 0x33, 0x37, 0x35, 0x32, 0x5a, 0x18, 0x0f, 0x32,\\n 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x32, 0x31,\\n 0x30, 0x34, 0x37, 0x35, 0x32, 0x5a, 0x30, 0x6f,\\n 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,\\n 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30,\\n 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0e,\\n 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67,\\n 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12,\\n 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,\\n 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64,\\n 0x67, 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03,\\n 0x55, 0x04, 0x0a, 0x13, 0x07, 0x41, 0x52, 0x4d,\\n 0x20, 0x4c, 0x74, 0x64, 0x31, 0x21, 0x30, 0x1f,\\n 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x41,\\n 0x52, 0x4d, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x67,\\n 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4c,\\n 0x57, 0x4d, 0x32, 0x4d, 0x20, 0x43, 0x41, 0x30,\\n 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,\\n 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,\\n 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,\\n 0x00, 0x04, 0xba, 0xea, 0x80, 0x01, 0x2d, 0xf0,\\n 0xe1, 0xb6, 0xc5, 0x5f, 0xf9, 0x76, 0x84, 0x31,\\n 0xa9, 0x29, 0xa1, 0xc7, 0xa8, 0xfd, 0xa0, 0xad,\\n 0xd9, 0x94, 0xe7, 0xec, 0x5a, 0x33, 0xa1, 0x2c,\\n 0x8e, 0x36, 0x43, 0x9b, 0x18, 0xdf, 0xce, 0x71,\\n 0x14, 0x24, 0xb1, 0xfb, 0x16, 0x34, 0x0e, 0x43,\\n 0xfc, 0x23, 0x77, 0xd4, 0x13, 0xd7, 0x11, 0xaa,\\n 0x39, 0x60, 0xab, 0xa2, 0xdf, 0x24, 0xb3, 0xeb,\\n 0xa0, 0xc5, 0xa3, 0x51, 0x30, 0x4f, 0x30, 0x0b,\\n 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03,\\n 0x02, 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55,\\n 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30,\\n 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03,\\n 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7b,\\n 0xa1, 0xa5, 0x94, 0xa5, 0xe5, 0x8f, 0x95, 0x5d,\\n 0xd4, 0xce, 0xdc, 0x0f, 0x8a, 0xbe, 0xad, 0x9a,\\n 0x6b, 0x66, 0x3e, 0x30, 0x10, 0x06, 0x09, 0x2b,\\n 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x01,\\n 0x04, 0x03, 0x02, 0x01, 0x00, 0x30, 0x0a, 0x06,\\n 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,\\n 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,\\n 0x00, 0xd2, 0x06, 0x28, 0xc5, 0x31, 0x3a, 0x11,\\n 0x8d, 0xb6, 0xcb, 0x2b, 0x3f, 0xdd, 0x2a, 0x9a,\\n 0x13, 0x30, 0x52, 0x77, 0xaa, 0xda, 0xda, 0xcb,\\n 0xce, 0xb9, 0x5c, 0xe4, 0x32, 0x1c, 0x02, 0xfa,\\n 0x30, 0x02, 0x21, 0x00, 0xb3, 0x82, 0x24, 0xa2,\\n 0xb1, 0x67, 0x6b, 0x69, 0x07, 0x0e, 0xcd, 0x77,\\n 0x74, 0x99, 0x06, 0x9c, 0x59, 0xb2, 0x00, 0xc0,\\n 0xb3, 0xbb, 0x37, 0x5b, 0xc0, 0x1b, 0xfb, 0xd9,\\n 0x70, 0x98, 0xb9, 0x1e };\\n\\nconst uint8_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY[] = \\n{ 0x30, 0x81, 0x93, 0x02, 0x01, 0x00, 0x30, 0x13,\\n 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,\\n 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,\\n 0x03, 0x01, 0x07, 0x04, 0x79, 0x30, 0x77, 0x02,\\n 0x01, 0x01, 0x04, 0x20, 0x78, 0xa7, 0x3d, 0xed,\\n 0xa0, 0xb5, 0x67, 0x86, 0xa7, 0x89, 0x75, 0x46,\\n 0x8c, 0xd4, 0xaf, 0xbd, 0x7c, 0x36, 0x86, 0x5e,\\n 0xb3, 0xc0, 0x00, 0x98, 0x22, 0xcf, 0x3c, 0x38,\\n 0xa4, 0x31, 0xeb, 0x51, 0xa0, 0x0a, 0x06, 0x08,\\n 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07,\\n 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x44, 0x9c,\\n 0x2c, 0x36, 0xce, 0x5e, 0xf3, 0x9b, 0xf7, 0x4d,\\n 0xc0, 0x62, 0x52, 0x3d, 0xa3, 0x0f, 0x04, 0xe2,\\n 0x16, 0xcb, 0x48, 0x72, 0x4f, 0xb7, 0x91, 0x36,\\n 0x04, 0xee, 0x10, 0xe1, 0xb1, 0xce, 0xa6, 0xe5,\\n 0x87, 0xd8, 0xe8, 0x7a, 0x3f, 0xe0, 0x83, 0x3e,\\n 0xd7, 0xbd, 0xa4, 0x0b, 0xf7, 0x13, 0xa8, 0x3d,\\n 0xd1, 0x79, 0x3f, 0x65, 0xc6, 0x69, 0x43, 0xec,\\n 0x41, 0x3b, 0xaa, 0x9c, 0x8b, 0xf6 };\\n\\nconst char MBED_CLOUD_DEV_MANUFACTURER[] = \\\"dev_manufacturer\\\";\\n\\nconst char MBED_CLOUD_DEV_MODEL_NUMBER[] = \\\"dev_model_num\\\";\\n\\nconst char MBED_CLOUD_DEV_SERIAL_NUMBER[] = \\\"0\\\";\\n\\nconst char MBED_CLOUD_DEV_DEVICE_TYPE[] = \\\"dev_device_type\\\";\\n\\nconst char MBED_CLOUD_DEV_HARDWARE_VERSION[] = \\\"dev_hardware_version\\\";\\n\\nconst uint32_t MBED_CLOUD_DEV_MEMORY_TOTAL_KB = 0;\\n\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE_SIZE = sizeof(MBED_CLOUD_DEV_LWM2M_SERVER_ROOT_CA_CERTIFICATE);\\nconst uint32_t MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY_SIZE = sizeof(MBED_CLOUD_DEV_BOOTSTRAP_DEVICE_PRIVATE_KEY);\\n\\n#endif //__MBED_CLOUD_DEV_CREDENTIALS_H__\\n", + "_key": "Success" + } + ], + "_key": "200" }, { - "type": "string", - "description": "Record order. Acceptable values: ASC, DESC. Default: ASC.", - "example": "DESC", - "api_fieldname": "order", - "entity_fieldname": "order", - "in": "query", - "name": "order", - "external_param": true, - "parameter_fieldname": "order", - "required": false, - "_key": "order" - } - ], - "method": "get", - "mode": "list", - "responses": [ - { - "description": "Request successful.", + "description": "Bad request.", "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], "properties": [ { - "type": "string", - "description": "An offset token for current page.", - "example": "01631667477600000000000100100374", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { - "items": [ - { - "group": "Devices", - "entity": "device", - "_key": "foreign_key" - }, - { - "device_execution_mode": { - "enum": [ - 0, - 1, - 5 - ], - "type": "integer", - "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.", - "example": 0, - "default": 0 - }, - "groups": { - "description": "An array containing an ID of each group this device belongs to.", - "type": "array", - "items": { - "type": "string", - "example": "00000000000000000000000000000000" - } - }, - "issuer_fingerprint": { - "type": "string", - "pattern": "[A-Fa-f0-9]{64}", - "x-nullable": true, - "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", - "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322" - }, - "operator_suspended": { - "type": "boolean", - "description": "Is the device suspended by the operator?" - }, - "last_operator_suspended_category": { - "type": "string", - "description": "The reference of the block category.", - "pattern": "[a-f0-9_]{32}", - "example": "maintenance" - }, - "last_operator_suspended_description": { - "type": "string", - "maxLength": 2000, - "description": "The most recent description why the device was suspended or returned to service.", - "example": "Suspended for maintenance." - }, - "last_operator_suspended_updated_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp of the most recent suspension activity.", - "example": "2017-05-22T12:37:55.576563Z" - }, - "system_suspended": { - "type": "boolean", - "description": "Is the device suspended by the system?" - }, - "last_system_suspended_category": { - "type": "string", - "description": "The reference of the block category.", - "pattern": "[a-f0-9_]{32}", - "example": "maintenance" - }, - "last_system_suspended_description": { - "type": "string", - "maxLength": 2000, - "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." - }, - "last_system_suspended_updated_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp of the most recent system block activity.", - "example": "2017-05-22T12:37:55.576563Z" - }, - "lifecycle_status": { - "type": "string", - "enum": [ - "enabled", - "blocked" - ], - "description": "The lifecycle status of the device.", - "example": "enabled" - }, - "account_id": { - "type": "string", - "description": "The ID of the associated account.", - "example": "00000000000000000000000000000000" - }, - "auto_update": { - "type": "boolean", - "description": "DEPRECATED: Mark this device for automatic firmware update." - }, - "bootstrap_expiration_date": { - "format": "date", - "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to bootstrap server." - }, - "bootstrapped_timestamp": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The timestamp of the device's most recent bootstrap process." - }, - "ca_id": { - "type": "string", - "maxLength": 500, - "description": "The certificate issuer's ID.", - "example": "00000000000000000000000000000000" - }, - "connector_expiration_date": { - "format": "date", - "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to LwM2M server." - }, - "created_at": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The timestamp of when the device was created in the device directory." - }, - "custom_attributes": { - "type": "object", - "maxProperties": 5, - "additionalProperties": { - "type": "string", - "maxLength": 128, - "pattern": "^[A-Za-z].*" - }, - "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" - } - }, - "deployed_state": { - "enum": [ - "development", - "production" - ], - "type": "string", - "description": "DEPRECATED: The state of the device's deployment." - }, - "deployment": { - "type": "string", - "description": "DEPRECATED: The last deployment used on the device.", - "example": "" - }, - "description": { - "type": "string", - "maxLength": 2000, - "description": "The description of the device.", - "example": "description" - }, - "device_class": { - "type": "string", - "maxLength": 32, - "description": "An ID representing the model and hardware revision of the device.", - "example": "" - }, - "id": { - "type": "string", - "description": "The ID of the device. The device ID is used across all Device Management APIs.", - "example": "00000000000000000000000000000000" - }, - "device_key": { - "type": "string", - "maxLength": 512, - "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" - }, - "endpoint_name": { - "type": "string", - "description": "The endpoint name given to the device.", - "example": "00000000-0000-0000-0000-000000000000", - "readOnly": true - }, - "endpoint_type": { - "type": "string", - "description": "The endpoint type of the device. For example, the device is a gateway.", - "maxLength": 64, - "example": "" - }, - "etag": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The entity instance signature." - }, - "firmware_checksum": { - "type": "string", - "description": "The SHA256 checksum of the current firmware image.", - "example": "0000000000000000000000000000000000000000000000000000000000000000" - }, - "host_gateway": { - "type": "string", - "description": "The ID of the host gateway, if appropriate.", - "example": "" - }, - "manifest": { - "type": "string", - "description": "DEPRECATED: The URL for the current device manifest.", - "example": "" - }, - "manifest_timestamp": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The timestamp of the current manifest version." - }, - "mechanism": { - "enum": [ - "connector", - "direct" - ], - "type": "string", - "description": "The ID of the channel used to communicate with the device." - }, - "mechanism_url": { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { "type": "string", - "description": "The address of the connector to use.", - "example": "" + "description": "Message describing the error condition.", + "_key": "message" }, - "name": { + { "type": "string", - "maxLength": 128, - "description": "The name of the device.", - "example": "00000000-0000-0000-0000-000000000000" - }, - "object": { + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Invalid access token.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { "type": "string", - "description": "The API resource entity.", - "example": "device" + "description": "Message describing the error condition.", + "_key": "message" }, - "serial_number": { + { "type": "string", - "description": "The serial number of the device.", - "example": "00000000-0000-0000-0000-000000000000" - }, - "state": { - "enum": [ - "unenrolled", - "cloud_enrolling", - "bootstrapped", - "registered", - "deregistered" - ], + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "examples": [ + { + "object": "error", + "code": 401, + "type": "invalid_auth", + "message": "Invalid access token.", + "request_id": "015fee4431fd38c98640fbfb00000000", + "_key": "Authentication Error" + } + ], + "_key": "401" + }, + { + "description": "Developer certificate not found with given ID.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { "type": "string", - "description": "The current state of the device." + "description": "Message describing the error condition.", + "_key": "message" }, - "updated_at": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "description": "The time the object was updated." - }, - "vendor_id": { + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "examples": [ + { + "object": "error", + "code": 404, + "type": "not_found", + "message": "Not Found. Not found: 016006724ff53ade90ed948d03c00001", + "request_id": "015fee4431fd38c98640fbfb00000000", + "_key": "Authentication Error" + } + ], + "_key": "404" + } + ], + "path": "/v3/developer-certificates/{developerCertificateId}", + "summary": "Fetch an existing developer certificate to connect to the bootstrap server.", + "return_type": "developer_certificate", + "return_info": { + "self": true, + "custom": false, + "type": "developer_certificate" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "created_at", + "account_id", + "name", + "description", + "developer_private_key", + "security_file_content", + "certificate" + ], + "group_id": "Security", + "parameter_map": { + "developerCertificateId": "id" + }, + "operation_id": "getDeveloperCertificate", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "read" + } + ], + "fields": [ + { + "type": "string", + "description": "Account to which the developer certificate belongs.", + "api_fieldname": "account_id", + "readOnly": true, + "required": false, + "_key": "account_id" + }, + { + "type": "string", + "description": "PEM-format X.509 developer certificate.", + "api_fieldname": "developer_certificate", + "readOnly": true, + "required": false, + "_key": "certificate" + }, + { + "type": "string", + "format": "date-time", + "description": "Creation UTC time RFC3339.", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "string", + "description": "Description for the developer certificate.", + "x-nullable": true, + "api_fieldname": "description", + "readOnly": false, + "required": false, + "_key": "description" + }, + { + "type": "string", + "description": "PEM-format developer private key associated with the certificate.", + "api_fieldname": "developer_private_key", + "readOnly": true, + "required": false, + "_key": "developer_private_key" + }, + { + "type": "string", + "description": "ID that uniquely identifies the developer certificate.", + "api_fieldname": "id", + "parameter_fieldname": "developerCertificateId", + "in": "path", + "required": true, + "readOnly": false, + "_key": "id" + }, + { + "type": "string", + "description": "Name of the developer certificate.", + "api_fieldname": "name", + "readOnly": false, + "required": true, + "_key": "name" + }, + { + "type": "string", + "description": "Content of the `security.c` file flashed to the device to provide security credentials.", + "api_fieldname": "security_file_content", + "readOnly": true, + "required": false, + "_key": "security_file_content" + } + ], + "field_renames": [ + { + "api_fieldname": "developer_certificate", + "_key": "certificate" + } + ], + "tags": [ + "Security and identity - developer class certificates", + "Security and identity - certificates" + ], + "group_id": "Security", + "_key": "developer_certificate" + }, + { + "swagger_models": [ + "CertificateEnrollment", + "DeviceData", + "DeviceDataPostRequest", + "DeviceDataPutRequest", + "DeviceGroupManipulation", + "DevicePage" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "Add one device to a group. A device can be in multiple groups.", + "field_renames": [], + "fields": [ + { + "in": "path", + "description": "The ID of the group.", + "name": "device-group-id", + "required": true, + "type": "string", + "entity_fieldname": "device-group-id", + "api_fieldname": "device-group-id", + "external_param": true, + "parameter_fieldname": "device-group-id", + "_key": "device-group-id" + }, + { + "type": "string", + "example": "00000000000000000000000000000000", + "name": "device_id", + "in": "body", + "schema_param": true, + "entity_fieldname": "id", + "api_fieldname": "device_id", + "external_param": false, + "parameter_fieldname": "device_id", + "required": true, + "_key": "id" + } + ], + "method": "post", + "mode": "add_to_group", + "responses": [ + { + "description": "Success - device added.", + "_key": "204" + }, + { + "description": "Bad request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { "type": "string", - "description": "The device vendor ID.", - "example": "00000000-0000-0000-0000-000000000000" + "description": "Message describing the error condition.", + "_key": "message" }, - "enrolment_list_timestamp": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "description": "The claim date/time." - }, - "_key": "properties" - } - ], - "type": "array", - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" - }, - { - "type": "boolean", - "description": "Are there more results available.", - "example": false, - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { - "type": "integer", - "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, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", - "description": "The type of this API object is a \"list\".", - "example": "list", - "api_fieldname": "object", - "entity_fieldname": "object", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], "_key": "object" }, { "type": "string", - "description": "The order of the records based on creation time, `ASC` or `DESC`; by default `ASC`.", - "example": "DESC", - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, { - "format": "integer", - "type": "integer", - "example": 1, - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "pagination": true, - "foreign_key": { - "group": "Devices", - "entity": "device" - } + ] }, - "_key": "200" - }, - { - "description": "Bad request.", "_key": "400" }, { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Unable to find page.", - "_key": "404" - } - ], - "path": "/v3/devices/", - "summary": "List all devices.", - "return_type": "paginated_response(device)", - "return_info": { - "self": true, - "custom": false, - "type": "device" - }, - "x_filter": { - "lifecycle_status": [ - "eq", - "neq", - "in", - "nin" - ], - "operator_suspended": [ - "eq", - "neq" - ], - "last_operator_suspended_category": [ - "eq", - "neq", - "in", - "nin" - ], - "last_operator_suspended_updated_at": [ - "in", - "nin", - "lte", - "gte" - ], - "system_suspended": [ - "eq", - "neq" - ], - "last_system_suspended_category": [ - "eq", - "neq", - "in", - "nin" - ], - "last_system_suspended_updated_at": [ - "in", - "nin", - "lte", - "gte" - ], - "account_id": [ - "eq", - "neq", - "in", - "nin" - ], - "auto_update": [ - "eq", - "neq" - ], - "bootstrap_expiration_date": [ - "in", - "nin", - "lte", - "gte" - ], - "bootstrapped_timestamp": [ - "in", - "nin", - "lte", - "gte" - ], - "ca_id": [ - "eq", - "neq", - "in", - "nin" - ], - "connector_expiration_date": [ - "in", - "nin", - "lte", - "gte" - ], - "created_at": [ - "in", - "nin", - "lte", - "gte" - ], - "deployed_state": [ - "eq", - "neq", - "in", - "nin" - ], - "deployment": [ - "eq", - "neq", - "in", - "nin" - ], - "description": [ - "eq", - "neq", - "in", - "nin" - ], - "device_class": [ - "eq", - "neq", - "in", - "nin" - ], - "device_execution_mode": [ - "eq", - "neq", - "in", - "nin" - ], - "device_key": [ - "eq", - "neq", - "in", - "nin" - ], - "endpoint_name": [ - "eq", - "neq", - "in", - "nin" - ], - "endpoint_type": [ - "eq", - "neq", - "in", - "nin" - ], - "enrolment_list_timestamp": [ - "in", - "nin", - "lte", - "gte" - ], - "firmware_checksum": [ - "eq", - "neq", - "in", - "nin" - ], - "host_gateway": [ - "eq", - "neq", - "in", - "nin" - ], - "id": [ - "eq", - "neq", - "in", - "nin" - ], - "manifest": [ - "eq", - "neq", - "in", - "nin" - ], - "manifest_timestamp": [ - "in", - "nin", - "lte", - "gte" - ], - "mechanism": [ - "eq", - "neq", - "in", - "nin" - ], - "mechanism_url": [ - "eq", - "neq", - "in", - "nin" - ], - "name": [ - "eq", - "neq", - "in", - "nin" - ], - "serial_number": [ - "eq", - "neq", - "in", - "nin" - ], - "state": [ - "eq", - "neq", - "in", - "nin" - ], - "updated_at": [ - "in", - "nin", - "lte", - "gte" - ], - "vendor_id": [ - "eq", - "neq", - "in", - "nin" - ] + "description": "Unauthorized.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "404" + } + ], + "path": "/v3/device-groups/{device-group-id}/devices/add/", + "summary": "Add a device to a group.", + "return_type": "void", + "return_info": { + "self": false, + "custom": true, + "type": "void" }, + "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", "etag", "type", - "filter", - "data", - "has_more", - "total_count", - "lifecycle_status__eq", - "lifecycle_status__neq", - "lifecycle_status__in", - "lifecycle_status__nin", - "operator_suspended__eq", - "operator_suspended__neq", - "last_operator_suspended_category__eq", - "last_operator_suspended_category__neq", - "last_operator_suspended_category__in", - "last_operator_suspended_category__nin", - "last_operator_suspended_updated_at__in", - "last_operator_suspended_updated_at__nin", - "last_operator_suspended_updated_at__lte", - "last_operator_suspended_updated_at__gte", - "system_suspended__eq", - "system_suspended__neq", - "last_system_suspended_category__eq", - "last_system_suspended_category__neq", - "last_system_suspended_category__in", - "last_system_suspended_category__nin", - "last_system_suspended_updated_at__in", - "last_system_suspended_updated_at__nin", - "last_system_suspended_updated_at__lte", - "last_system_suspended_updated_at__gte", - "account_id__eq", - "account_id__neq", - "account_id__in", - "account_id__nin", - "auto_update__eq", - "auto_update__neq", - "bootstrap_expiration_date__in", - "bootstrap_expiration_date__nin", - "bootstrap_expiration_date__lte", - "bootstrap_expiration_date__gte", - "bootstrapped_timestamp__in", - "bootstrapped_timestamp__nin", - "bootstrapped_timestamp__lte", - "bootstrapped_timestamp__gte", - "ca_id__eq", - "ca_id__neq", - "ca_id__in", - "ca_id__nin", - "connector_expiration_date__in", - "connector_expiration_date__nin", - "connector_expiration_date__lte", - "connector_expiration_date__gte", - "created_at__in", - "created_at__nin", - "created_at__lte", - "created_at__gte", - "deployed_state__eq", - "deployed_state__neq", - "deployed_state__in", - "deployed_state__nin", - "deployment__eq", - "deployment__neq", - "deployment__in", - "deployment__nin", - "description__eq", - "description__neq", - "description__in", - "description__nin", - "device_class__eq", - "device_class__neq", - "device_class__in", - "device_class__nin", - "device_execution_mode__eq", - "device_execution_mode__neq", - "device_execution_mode__in", - "device_execution_mode__nin", - "device_key__eq", - "device_key__neq", - "device_key__in", - "device_key__nin", - "endpoint_name__eq", - "endpoint_name__neq", - "endpoint_name__in", - "endpoint_name__nin", - "endpoint_type__eq", - "endpoint_type__neq", - "endpoint_type__in", - "endpoint_type__nin", - "enrolment_list_timestamp__in", - "enrolment_list_timestamp__nin", - "enrolment_list_timestamp__lte", - "enrolment_list_timestamp__gte", - "firmware_checksum__eq", - "firmware_checksum__neq", - "firmware_checksum__in", - "firmware_checksum__nin", - "host_gateway__eq", - "host_gateway__neq", - "host_gateway__in", - "host_gateway__nin", - "id__eq", - "id__neq", - "id__in", - "id__nin", - "manifest__eq", - "manifest__neq", - "manifest__in", - "manifest__nin", - "manifest_timestamp__in", - "manifest_timestamp__nin", - "manifest_timestamp__lte", - "manifest_timestamp__gte", - "mechanism__eq", - "mechanism__neq", - "mechanism__in", - "mechanism__nin", - "mechanism_url__eq", - "mechanism_url__neq", - "mechanism_url__in", - "mechanism_url__nin", - "name__eq", - "name__neq", - "name__in", - "name__nin", - "serial_number__eq", - "serial_number__neq", - "serial_number__in", - "serial_number__nin", - "state__eq", - "state__neq", - "state__in", - "state__nin", - "updated_at__in", - "updated_at__nin", - "updated_at__lte", - "updated_at__gte", - "vendor_id__eq", - "vendor_id__neq", - "vendor_id__in", - "vendor_id__nin" + "filter" ], - "foreign_key_priority": "self", "group_id": "Devices", - "operation_id": "Device_list", - "pagination": true, - "foreign_key": { - "group": "Devices", - "entity": "device" + "operation_id": "Group_members_add", + "parameter_map": { + "device_id": "id" + }, + "spec": { + "return_type": "void" }, + "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "list" + "_key": "add_to_group" }, { - "description": "Retrieve information about a specific device.\n\n**Example:**\nFollowing example must be updated with the device's ID to the URL. The id is from of \"01667c6e992c00000000000100100370\"\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/devices/ \\\n-H 'Authorization: Bearer '\n```", + "description": "Create a new device in Device Management. Usually you do not need to create a device this way, as it is automatically created when it bootstraps or connects to Device Management.", "field_renames": [], "fields": [ + { + "type": "boolean", + "description": "DEPRECATED: Mark this device for automatic firmware update.", + "api_fieldname": "auto_update", + "entity_fieldname": "auto_update", + "parameter_fieldname": "auto_update", + "in": "body", + "required": false, + "_key": "auto_update" + }, + { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to bootstrap server.", + "api_fieldname": "bootstrap_expiration_date", + "entity_fieldname": "bootstrap_expiration_date", + "parameter_fieldname": "bootstrap_expiration_date", + "in": "body", + "required": false, + "_key": "bootstrap_expiration_date" + }, + { + "type": "string", + "maxLength": 500, + "description": "The certificate issuer's ID.", + "example": "00000000000000000000000000000000", + "api_fieldname": "ca_id", + "entity_fieldname": "ca_id", + "parameter_fieldname": "ca_id", + "in": "body", + "required": false, + "_key": "ca_id" + }, + { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to LwM2M server.", + "api_fieldname": "connector_expiration_date", + "entity_fieldname": "connector_expiration_date", + "parameter_fieldname": "connector_expiration_date", + "in": "body", + "required": false, + "_key": "connector_expiration_date" + }, + { + "type": "object", + "maxProperties": 5, + "additionalProperties": { + "type": "string", + "maxLength": 128, + "pattern": "^[A-Za-z].*" + }, + "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" + }, + "api_fieldname": "custom_attributes", + "entity_fieldname": "custom_attributes", + "parameter_fieldname": "custom_attributes", + "in": "body", + "required": false, + "_key": "custom_attributes" + }, + { + "type": "string", + "description": "DEPRECATED: The last deployment used on the device.", + "example": "", + "api_fieldname": "deployment", + "entity_fieldname": "deployment", + "parameter_fieldname": "deployment", + "in": "body", + "required": false, + "_key": "deployment" + }, + { + "type": "string", + "maxLength": 2000, + "description": "The description of the device.", + "example": "Temperature measuring device", + "api_fieldname": "description", + "entity_fieldname": "description", + "parameter_fieldname": "description", + "in": "body", + "required": false, + "_key": "description" + }, + { + "type": "string", + "maxLength": 32, + "description": "An ID representing the model and hardware revision of the device.", + "example": "", + "api_fieldname": "device_class", + "entity_fieldname": "device_class", + "parameter_fieldname": "device_class", + "in": "body", + "required": false, + "_key": "device_class" + }, + { + "enum": [ + 0, + 1, + 5 + ], + "type": "integer", + "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.", + "example": 0, + "default": 0, + "api_fieldname": "device_execution_mode", + "entity_fieldname": "device_execution_mode", + "parameter_fieldname": "device_execution_mode", + "in": "body", + "required": false, + "_key": "device_execution_mode" + }, + { + "type": "string", + "maxLength": 512, + "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", + "api_fieldname": "device_key", + "entity_fieldname": "device_key", + "parameter_fieldname": "device_key", + "in": "body", + "required": false, + "_key": "device_key" + }, + { + "type": "string", + "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, + "api_fieldname": "endpoint_name", + "entity_fieldname": "endpoint_name", + "parameter_fieldname": "endpoint_name", + "in": "body", + "required": false, + "_key": "endpoint_name" + }, + { + "type": "string", + "description": "The endpoint type of the device. For example, the device is a gateway.", + "maxLength": 64, + "example": "", + "api_fieldname": "endpoint_type", + "entity_fieldname": "endpoint_type", + "parameter_fieldname": "endpoint_type", + "in": "body", + "required": false, + "_key": "endpoint_type" + }, + { + "type": "string", + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", + "example": "", + "api_fieldname": "host_gateway", + "entity_fieldname": "host_gateway", + "parameter_fieldname": "host_gateway", + "in": "body", + "required": false, + "_key": "host_gateway" + }, + { + "type": "string", + "pattern": "[A-Fa-f0-9]{64}", + "x-nullable": true, + "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", + "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322", + "api_fieldname": "issuer_fingerprint", + "entity_fieldname": "issuer_fingerprint", + "parameter_fieldname": "issuer_fingerprint", + "in": "body", + "required": false, + "_key": "issuer_fingerprint" + }, + { + "type": "string", + "description": "DEPRECATED: The URL for the current device manifest.", + "example": "", + "api_fieldname": "manifest", + "entity_fieldname": "manifest", + "parameter_fieldname": "manifest", + "in": "body", + "required": false, + "_key": "manifest" + }, + { + "enum": [ + "connector", + "direct" + ], + "type": "string", + "description": "NOT USED: The ID of the channel used to communicate with the device.", + "api_fieldname": "mechanism", + "entity_fieldname": "mechanism", + "parameter_fieldname": "mechanism", + "in": "body", + "required": false, + "enum_reference": "device_mechanism_enum", + "_key": "mechanism" + }, + { + "type": "string", + "description": "NOT USED: The address of the connector to use.", + "example": "", + "api_fieldname": "mechanism_url", + "entity_fieldname": "mechanism_url", + "parameter_fieldname": "mechanism_url", + "in": "body", + "required": false, + "_key": "mechanism_url" + }, + { + "type": "string", + "maxLength": 128, + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", + "example": "00000000-0000-0000-0000-000000000000", + "api_fieldname": "name", + "entity_fieldname": "name", + "parameter_fieldname": "name", + "in": "body", + "required": false, + "_key": "name" + }, { "type": "string", - "description": "The ID of the device. The device ID is used across all Device Management APIs.", - "example": "00000000000000000000000000000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "id", - "in": "path", - "required": true, - "_key": "id" + "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", + "api_fieldname": "serial_number", + "entity_fieldname": "serial_number", + "parameter_fieldname": "serial_number", + "in": "body", + "required": false, + "_key": "serial_number" + }, + { + "enum": [ + "unenrolled", + "cloud_enrolling", + "bootstrapped", + "registered", + "deregistered" + ], + "type": "string", + "description": "The current state of the device.\n* Unenrolled: The device has been created, but has not yet bootstrapped or connected to Device Management.\n* 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.\n* Bootstrapped: The device has bootstrapped, and has credentials to connect to Device Management.\n* 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.\n* Deregistered: The device has requested deregistration, or its registration has expired.", + "api_fieldname": "state", + "entity_fieldname": "state", + "parameter_fieldname": "state", + "in": "body", + "required": false, + "enum_reference": "device_state_enum", + "_key": "state" + }, + { + "type": "string", + "description": "The device vendor ID.", + "example": "00000000-0000-0000-0000-000000000000", + "api_fieldname": "vendor_id", + "entity_fieldname": "vendor_id", + "parameter_fieldname": "vendor_id", + "in": "body", + "required": false, + "_key": "vendor_id" } ], - "method": "get", - "mode": "read", + "method": "post", + "mode": "create", "responses": [ { - "description": "Retrieved result successfully.", + "description": "Device created.", "schema": [ { "group": "Devices", @@ -33039,7 +32441,7 @@ }, "operator_suspended": { "type": "boolean", - "description": "Is the device suspended by the operator?", + "description": "Device has been suspended by operator.", "api_fieldname": "operator_suspended", "entity_fieldname": "operator_suspended" }, @@ -33103,7 +32505,7 @@ "enabled", "blocked" ], - "description": "The lifecycle status of the device.", + "description": "The lifecycle status of the device.\n* Enabled: The device is allowed to connect to Pelion Device Management.\n* Blocked: The device is prevented from connecting to Pelion Device Management. Device can be, for example, 'suspended'.", "example": "enabled", "api_fieldname": "lifecycle_status", "entity_fieldname": "lifecycle_status" @@ -33145,6 +32547,20 @@ "api_fieldname": "ca_id", "entity_fieldname": "ca_id" }, + "component_attributes": { + "type": "object", + "maxProperties": 10, + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "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" + }, + "api_fieldname": "component_attributes", + "entity_fieldname": "component_attributes" + }, "connector_expiration_date": { "format": "date", "type": "string", @@ -33197,7 +32613,7 @@ "type": "string", "maxLength": 2000, "description": "The description of the device.", - "example": "description", + "example": "Temperature measuring device", "api_fieldname": "description", "entity_fieldname": "description" }, @@ -33226,7 +32642,7 @@ }, "endpoint_name": { "type": "string", - "description": "The endpoint name given to the device.", + "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, "api_fieldname": "endpoint_name", @@ -33257,7 +32673,7 @@ }, "host_gateway": { "type": "string", - "description": "The ID of the host gateway, if appropriate.", + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", "example": "", "api_fieldname": "host_gateway", "entity_fieldname": "host_gateway" @@ -33283,13 +32699,13 @@ "direct" ], "type": "string", - "description": "The ID of the channel used to communicate with the device.", + "description": "NOT USED: The ID of the channel used to communicate with the device.", "api_fieldname": "mechanism", "entity_fieldname": "mechanism" }, "mechanism_url": { "type": "string", - "description": "The address of the connector to use.", + "description": "NOT USED: The address of the connector to use.", "example": "", "api_fieldname": "mechanism_url", "entity_fieldname": "mechanism_url" @@ -33297,11 +32713,20 @@ "name": { "type": "string", "maxLength": 128, - "description": "The name of the device.", + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", "example": "00000000-0000-0000-0000-000000000000", "api_fieldname": "name", "entity_fieldname": "name" }, + "net_id": { + "type": "string", + "default": "", + "maxLength": 40, + "description": "Private network identifier. Used to group nodes connected to a specific border router.", + "example": "0000:0000:0000:0000:0000:0000:0000:0000", + "api_fieldname": "net_id", + "entity_fieldname": "net_id" + }, "object": { "type": "string", "description": "The API resource entity.", @@ -33311,7 +32736,7 @@ }, "serial_number": { "type": "string", - "description": "The serial number of the device.", + "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", "api_fieldname": "serial_number", "entity_fieldname": "serial_number" @@ -33325,7 +32750,7 @@ "deregistered" ], "type": "string", - "description": "The current state of the device.", + "description": "The current state of the device.\n* Unenrolled: The device has been created, but has not yet bootstrapped or connected to Device Management.\n* 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.\n* Bootstrapped: The device has bootstrapped, and has credentials to connect to Device Management.\n* 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.\n* Deregistered: The device has requested deregistration, or its registration has expired.", "api_fieldname": "state", "entity_fieldname": "state" }, @@ -33333,7 +32758,7 @@ "format": "date-time", "example": "2017-05-22T12:37:55.576563Z", "type": "string", - "description": "The time the object was updated.", + "description": "The time this data object was updated.", "api_fieldname": "updated_at", "entity_fieldname": "updated_at" }, @@ -33355,10 +32780,10 @@ "_key": "properties" } ], - "_key": "200" + "_key": "201" }, { - "description": "Bad request.", + "description": "Validation error: The data used to create the device did not validate.", "_key": "400" }, { @@ -33366,12 +32791,16 @@ "_key": "401" }, { - "description": "Unable to find device.", - "_key": "404" + "description": "Account limit reached. Could not create device.", + "_key": "403" + }, + { + "description": "Unique-constrained fields are used by other resources.", + "_key": "409" } ], - "path": "/v3/devices/{id}/", - "summary": "Get a device.", + "path": "/v3/devices/", + "summary": "Create a device.", "return_type": "device", "return_info": { "self": true, @@ -33385,9 +32814,7 @@ "etag", "type", "filter", - "device_execution_mode", "groups", - "issuer_fingerprint", "operator_suspended", "last_operator_suspended_category", "last_operator_suspended_description", @@ -33398,304 +32825,68 @@ "last_system_suspended_updated_at", "lifecycle_status", "account_id", - "auto_update", - "bootstrap_expiration_date", "bootstrapped_timestamp", - "ca_id", - "connector_expiration_date", + "component_attributes", "created_at", - "custom_attributes", "deployed_state", - "deployment", - "description", - "device_class", - "device_key", - "endpoint_name", - "endpoint_type", + "id", "firmware_checksum", - "host_gateway", - "manifest", "manifest_timestamp", - "mechanism", - "mechanism_url", - "name", - "serial_number", - "state", + "net_id", "updated_at", - "vendor_id", "enrolment_list_timestamp" ], "group_id": "Devices", - "operation_id": "Device_retrieve", + "operation_id": "Device_create", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "read" + "_key": "create" }, { - "description": "Remove one device from a group.", + "description": "Delete device. Only available for devices with a developer certificate. Attempting to delete a device with a production certificate returns a 400 response.", "field_renames": [], "fields": [ { + "description": "The [Device ID](https://www.pelion.com/docs/device-management/current/connecting/device-identity.html) created by Device Management.", "in": "path", - "description": "The ID of the group.", - "name": "device-group-id", + "name": "id", "required": true, "type": "string", - "entity_fieldname": "device-group-id", - "api_fieldname": "device-group-id", - "external_param": true, - "parameter_fieldname": "device-group-id", - "_key": "device-group-id" - }, - { - "type": "string", - "example": "00000000000000000000000000000000", - "name": "device_id", - "in": "body", - "schema_param": true, "entity_fieldname": "id", - "api_fieldname": "device_id", + "api_fieldname": "id", "external_param": false, - "parameter_fieldname": "device_id", - "required": true, + "parameter_fieldname": "id", "_key": "id" } ], - "method": "post", - "mode": "remove_from_group", + "method": "delete", + "mode": "delete", "responses": [ { - "description": "Success - device removed.", + "description": "Device deleted.", "_key": "204" }, { "description": "Bad request.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, "_key": "400" }, { - "description": "Unauthorized.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, + "description": "Not authenticated.", "_key": "401" }, { - "description": "Not found.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" - }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], - "_key": "object" - }, - { - "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, + "description": "Unable to delete device because it can't be found.", "_key": "404" } ], - "path": "/v3/device-groups/{device-group-id}/devices/remove/", - "summary": "Remove a device from a group.", - "return_type": "void", + "path": "/v3/devices/{id}/", + "summary": "Delete a device.", + "return_type": "device", "return_info": { - "self": false, - "custom": true, - "type": "void" + "self": true, + "custom": false, + "type": "device" }, "x_filter": {}, "x_deprecation": null, @@ -33706,684 +32897,831 @@ "filter" ], "group_id": "Devices", - "operation_id": "Group_members_remove", - "parameter_map": { - "device_id": "id" - }, - "spec": { - "return_type": "void" - }, + "operation_id": "Device_destroy", "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "remove_from_group" + "_key": "delete" }, { - "description": "Request a certificate renewal.\n\n**Example:**\n\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/devices/01612df56f3b0a580a010fc700000000/certificates/customer.dlms/renew \\\n-H 'Authorization: Bearer ' \\\n-H 'content-length: 0'\n```", + "description": "List all devices enrolled to Device Management for the account.\n\n**Example:**\nFollowing example filters devices according to state field and returns only devices in 'registered' state:\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/devices?filter=state%3Dregistered \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", - "maxLength": 50, - "description": "The certificate name.", - "example": "customer.dlms", - "api_fieldname": "certificate-name", - "entity_fieldname": "certificate_name", - "in": "path", - "name": "certificate-name", - "required": true, - "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", + "description": "The ID of the item after which to retrieve the next page.", + "example": "01631667477600000000000100100374", + "api_fieldname": "after", + "entity_fieldname": "after", + "in": "query", + "name": "after", "external_param": true, - "parameter_fieldname": "certificate-name", - "_key": "certificate_name" - }, - { - "type": "string", - "description": "The certificate enrollment ID.", - "example": "01612df56f3b0a580a010fc700000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "device-id", - "in": "path", - "required": true, - "_key": "id" - } - ], - "method": "post", - "mode": "renew_certificate", - "responses": [ - { - "description": "Created.", - "schema": { - "type": "object", - "properties": [ - { - "type": "string", - "maxLength": 50, - "description": "The certificate name.", - "example": "customer.dlms", - "api_fieldname": "certificate_name", - "entity_fieldname": "certificate_name", - "_key": "certificate_name" - }, - { - "type": "string", - "format": "date-time", - "description": "Creation UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, - { - "type": "string", - "description": "The device ID.", - "example": "01625daa23230a580a0100bd00000000", - "api_fieldname": "device_id", - "entity_fieldname": "device_id", - "_key": "device_id" - }, - { - "type": "string", - "enum": [ - "success", - "failure" - ], - "description": "The result of certificate enrollment request.", - "example": "success", - "api_fieldname": "enroll_result", - "entity_fieldname": "enroll_result", - "_key": "enroll_result" - }, - { - "type": "string", - "description": "Additional information in case of failure.", - "example": "The device is currently processing too many certificate renewals.", - "api_fieldname": "enroll_result_detail", - "entity_fieldname": "enroll_result_detail", - "_key": "enroll_result_detail" - }, - { - "type": "string", - "description": "The status of certificate enrollment request.", - "enum": [ - "new", - "completed" - ], - "api_fieldname": "enroll_status", - "entity_fieldname": "enroll_status", - "_key": "enroll_status" - }, - { - "type": "string", - "description": "Entity instance signature.", - "example": "1", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, - { - "type": "string", - "description": "The certificate enrollment ID.", - "example": "01612df56f3b0a580a010fc700000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" - }, - { - "type": "string", - "enum": [ - "certificate-enrollment" - ], - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" - }, - { - "type": "string", - "format": "date-time", - "description": "Update UTC time RFC3339.", - "example": "2017-01-01T00:00:00Z", - "api_fieldname": "updated_at", - "entity_fieldname": "updated_at", - "_key": "updated_at" - } - ], - "required": [ - "created_at", - "etag", - "id", - "device_id", - "certificate_name" - ], - "foreign_key": { - "group": "Security", - "entity": "certificate_enrollment" - } - }, - "_key": "201" + "parameter_fieldname": "after", + "required": false, + "_key": "after" }, { - "description": "Validation error: There is no certificate issuer configured for this certificate.", + "description": "Comma-separated list of data fields to return. Currently supported: `total_count`.", + "in": "query", + "name": "include", + "type": "string", + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "required": false, + "_key": "include" + }, + { + "type": "integer", + "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, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "in": "query", + "name": "limit", + "external_param": true, + "parameter_fieldname": "limit", + "required": false, + "_key": "limit" + }, + { + "type": "string", + "description": "Record order. Acceptable values: ASC, DESC. Default: ASC.", + "example": "DESC", + "api_fieldname": "order", + "entity_fieldname": "order", + "in": "query", + "name": "order", + "external_param": true, + "parameter_fieldname": "order", + "required": false, + "_key": "order" + } + ], + "method": "get", + "mode": "list", + "responses": [ + { + "description": "Request successful.", "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], "properties": [ { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" + "type": "string", + "description": "An offset token for current page.", + "example": "01631667477600000000000100100374", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { + "items": [ + { + "group": "Devices", + "entity": "device", + "_key": "foreign_key" + }, + { + "device_execution_mode": { + "enum": [ + 0, + 1, + 5 + ], + "type": "integer", + "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.", + "example": 0, + "default": 0 + }, + "groups": { + "description": "An array containing an ID of each group this device belongs to.", + "type": "array", + "items": { + "type": "string", + "example": "00000000000000000000000000000000" + } + }, + "issuer_fingerprint": { "type": "string", - "description": "Field name.", - "_key": "field" + "pattern": "[A-Fa-f0-9]{64}", + "x-nullable": true, + "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", + "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322" }, - { + "operator_suspended": { + "type": "boolean", + "description": "Device has been suspended by operator." + }, + "last_operator_suspended_category": { "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "400" - }, - { - "description": "You are not authorized to perform the action.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { + "description": "The reference of the block category.", + "pattern": "[a-f0-9_]{32}", + "example": "maintenance" + }, + "last_operator_suspended_description": { "type": "string", - "description": "Field name.", - "_key": "field" + "maxLength": 2000, + "description": "The most recent description why the device was suspended or returned to service.", + "example": "Suspended for maintenance." }, - { + "last_operator_suspended_updated_at": { "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "401" - }, - { - "description": "Forbidden.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { + "format": "date-time", + "description": "The timestamp of the most recent suspension activity.", + "example": "2017-05-22T12:37:55.576563Z" + }, + "system_suspended": { + "type": "boolean", + "description": "Is the device suspended by the system?" + }, + "last_system_suspended_category": { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "The reference of the block category.", + "pattern": "[a-f0-9_]{32}", + "example": "maintenance" }, - { + "last_system_suspended_description": { "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "403" - }, - { - "description": "The device ID or certificate name is not found.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { + "maxLength": 2000, + "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." + }, + "last_system_suspended_updated_at": { "type": "string", - "description": "Field name.", - "_key": "field" + "format": "date-time", + "description": "The timestamp of the most recent system block activity.", + "example": "2017-05-22T12:37:55.576563Z" }, - { + "lifecycle_status": { "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "404" - }, - { - "description": "Conflict. A renewal request for this certificate is in progress.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { + "enum": [ + "enabled", + "blocked" + ], + "description": "The lifecycle status of the device.\n* Enabled: The device is allowed to connect to Pelion Device Management.\n* Blocked: The device is prevented from connecting to Pelion Device Management. Device can be, for example, 'suspended'.", + "example": "enabled" + }, + "account_id": { + "type": "string", + "description": "The ID of the associated account.", + "example": "00000000000000000000000000000000" + }, + "auto_update": { + "type": "boolean", + "description": "DEPRECATED: Mark this device for automatic firmware update." + }, + "bootstrap_expiration_date": { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to bootstrap server." + }, + "bootstrapped_timestamp": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The timestamp of the device's most recent bootstrap process." + }, + "ca_id": { + "type": "string", + "maxLength": 500, + "description": "The certificate issuer's ID.", + "example": "00000000000000000000000000000000" + }, + "component_attributes": { + "type": "object", + "maxProperties": 10, + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "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" + } + }, + "connector_expiration_date": { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to LwM2M server." + }, + "created_at": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The timestamp of when the device was created in the device directory." + }, + "custom_attributes": { + "type": "object", + "maxProperties": 5, + "additionalProperties": { + "type": "string", + "maxLength": 128, + "pattern": "^[A-Za-z].*" + }, + "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" + } + }, + "deployed_state": { + "enum": [ + "development", + "production" + ], + "type": "string", + "description": "DEPRECATED: The state of the device's deployment." + }, + "deployment": { + "type": "string", + "description": "DEPRECATED: The last deployment used on the device.", + "example": "" + }, + "description": { + "type": "string", + "maxLength": 2000, + "description": "The description of the device.", + "example": "Temperature measuring device" + }, + "device_class": { + "type": "string", + "maxLength": 32, + "description": "An ID representing the model and hardware revision of the device.", + "example": "" + }, + "id": { + "type": "string", + "description": "The ID of the device. The device ID is used across all Device Management APIs.", + "example": "00000000000000000000000000000000" + }, + "device_key": { + "type": "string", + "maxLength": 512, + "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" + }, + "endpoint_name": { + "type": "string", + "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 + }, + "endpoint_type": { + "type": "string", + "description": "The endpoint type of the device. For example, the device is a gateway.", + "maxLength": 64, + "example": "" + }, + "etag": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The entity instance signature." + }, + "firmware_checksum": { + "type": "string", + "description": "The SHA256 checksum of the current firmware image.", + "example": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "host_gateway": { + "type": "string", + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", + "example": "" + }, + "manifest": { + "type": "string", + "description": "DEPRECATED: The URL for the current device manifest.", + "example": "" + }, + "manifest_timestamp": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", "type": "string", - "description": "Field name.", - "_key": "field" + "description": "The timestamp of the current manifest version." }, - { + "mechanism": { + "enum": [ + "connector", + "direct" + ], "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" - }, - { - "type": "string", - "description": "Error message.", - "_key": "message" - }, - { - "type": "string", - "description": "Entity name: `error`.", - "_key": "object" - }, - { - "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" - }, - { - "type": "string", - "description": "Error type.", - "_key": "type" - } - ] - }, - "_key": "409" - }, - { - "description": "Either:\n- Operation not supported for this device.\n- The device is not connected.", - "schema": { - "type": "object", - "required": [ - "code", - "fields", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "Error code. Correlates with response status code.", - "_key": "code" - }, - { - "type": "array", - "description": "A list of request fields that failed validation.", - "items": { - "type": "object", - "properties": [ - { + "description": "NOT USED: The ID of the channel used to communicate with the device." + }, + "mechanism_url": { "type": "string", - "description": "Field name.", - "_key": "field" + "description": "NOT USED: The address of the connector to use.", + "example": "" }, - { + "name": { "type": "string", - "description": "Error message related to the field.", - "_key": "message" - } - ] - }, - "_key": "fields" + "maxLength": 128, + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", + "example": "00000000-0000-0000-0000-000000000000" + }, + "net_id": { + "type": "string", + "default": "", + "maxLength": 40, + "description": "Private network identifier. Used to group nodes connected to a specific border router.", + "example": "0000:0000:0000:0000:0000:0000:0000:0000" + }, + "object": { + "type": "string", + "description": "The API resource entity.", + "example": "device" + }, + "serial_number": { + "type": "string", + "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" + }, + "state": { + "enum": [ + "unenrolled", + "cloud_enrolling", + "bootstrapped", + "registered", + "deregistered" + ], + "type": "string", + "description": "The current state of the device.\n* Unenrolled: The device has been created, but has not yet bootstrapped or connected to Device Management.\n* 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.\n* Bootstrapped: The device has bootstrapped, and has credentials to connect to Device Management.\n* 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.\n* Deregistered: The device has requested deregistration, or its registration has expired." + }, + "updated_at": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The time this data object was updated." + }, + "vendor_id": { + "type": "string", + "description": "The device vendor ID.", + "example": "00000000-0000-0000-0000-000000000000" + }, + "enrolment_list_timestamp": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The claim date/time." + }, + "_key": "properties" + } + ], + "type": "array", + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "description": "Error message.", - "_key": "message" + "type": "boolean", + "description": "Are there more results available.", + "example": false, + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" + }, + { + "type": "integer", + "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, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", - "description": "Entity name: `error`.", + "description": "The type of this API object is a \"list\".", + "example": "list", + "api_fieldname": "object", + "entity_fieldname": "object", "_key": "object" }, { "type": "string", - "description": "Request ID from JWT.", - "_key": "request_id" + "description": "The order of the records based on creation time, `ASC` or `DESC`; by default `ASC`.", + "example": "DESC", + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { - "type": "string", - "description": "Error type.", - "_key": "type" + "format": "integer", + "type": "integer", + "example": 1, + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } - ] + ], + "pagination": true, + "foreign_key": { + "group": "Devices", + "entity": "device" + } }, - "_key": "423" + "_key": "200" + }, + { + "description": "Bad request.", + "_key": "400" + }, + { + "description": "Not authenticated.", + "_key": "401" + }, + { + "description": "Unable to find page.", + "_key": "404" } ], - "path": "/v3/devices/{device-id}/certificates/{certificate-name}/renew", - "summary": "Request certificate renewal.", - "return_type": "certificate_enrollment", + "path": "/v3/devices/", + "summary": "List all devices.", + "return_type": "paginated_response(device)", "return_info": { - "self": false, + "self": true, "custom": false, - "type": "certificate_enrollment" + "type": "device" + }, + "x_filter": { + "lifecycle_status": [ + "eq", + "neq", + "in", + "nin" + ], + "operator_suspended": [ + "eq", + "neq" + ], + "last_operator_suspended_category": [ + "eq", + "neq", + "in", + "nin" + ], + "last_operator_suspended_updated_at": [ + "in", + "nin", + "lte", + "gte" + ], + "system_suspended": [ + "eq", + "neq" + ], + "last_system_suspended_category": [ + "eq", + "neq", + "in", + "nin" + ], + "last_system_suspended_updated_at": [ + "in", + "nin", + "lte", + "gte" + ], + "account_id": [ + "eq", + "neq", + "in", + "nin" + ], + "auto_update": [ + "eq", + "neq" + ], + "bootstrap_expiration_date": [ + "in", + "nin", + "lte", + "gte" + ], + "bootstrapped_timestamp": [ + "in", + "nin", + "lte", + "gte" + ], + "ca_id": [ + "eq", + "neq", + "in", + "nin" + ], + "connector_expiration_date": [ + "in", + "nin", + "lte", + "gte" + ], + "created_at": [ + "in", + "nin", + "lte", + "gte" + ], + "deployed_state": [ + "eq", + "neq", + "in", + "nin" + ], + "deployment": [ + "eq", + "neq", + "in", + "nin" + ], + "description": [ + "eq", + "neq", + "in", + "nin" + ], + "device_class": [ + "eq", + "neq", + "in", + "nin" + ], + "device_execution_mode": [ + "eq", + "neq", + "in", + "nin" + ], + "device_key": [ + "eq", + "neq", + "in", + "nin" + ], + "endpoint_name": [ + "eq", + "neq", + "in", + "nin" + ], + "endpoint_type": [ + "eq", + "neq", + "in", + "nin" + ], + "enrolment_list_timestamp": [ + "in", + "nin", + "lte", + "gte" + ], + "firmware_checksum": [ + "eq", + "neq", + "in", + "nin" + ], + "host_gateway": [ + "eq", + "neq", + "in", + "nin" + ], + "id": [ + "eq", + "neq", + "in", + "nin" + ], + "manifest": [ + "eq", + "neq", + "in", + "nin" + ], + "manifest_timestamp": [ + "in", + "nin", + "lte", + "gte" + ], + "mechanism": [ + "eq", + "neq", + "in", + "nin" + ], + "mechanism_url": [ + "eq", + "neq", + "in", + "nin" + ], + "name": [ + "eq", + "neq", + "in", + "nin" + ], + "net_id": [ + "eq", + "neq", + "in", + "nin" + ], + "serial_number": [ + "eq", + "neq", + "in", + "nin" + ], + "state": [ + "eq", + "neq", + "in", + "nin" + ], + "updated_at": [ + "in", + "nin", + "lte", + "gte" + ], + "vendor_id": [ + "eq", + "neq", + "in", + "nin" + ] }, - "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", "etag", "type", "filter", - "created_at", - "device_id", - "enroll_status", - "enroll_result", - "enroll_result_detail", - "updated_at" + "data", + "has_more", + "total_count", + "lifecycle_status__eq", + "lifecycle_status__neq", + "lifecycle_status__in", + "lifecycle_status__nin", + "operator_suspended__eq", + "operator_suspended__neq", + "last_operator_suspended_category__eq", + "last_operator_suspended_category__neq", + "last_operator_suspended_category__in", + "last_operator_suspended_category__nin", + "last_operator_suspended_updated_at__in", + "last_operator_suspended_updated_at__nin", + "last_operator_suspended_updated_at__lte", + "last_operator_suspended_updated_at__gte", + "system_suspended__eq", + "system_suspended__neq", + "last_system_suspended_category__eq", + "last_system_suspended_category__neq", + "last_system_suspended_category__in", + "last_system_suspended_category__nin", + "last_system_suspended_updated_at__in", + "last_system_suspended_updated_at__nin", + "last_system_suspended_updated_at__lte", + "last_system_suspended_updated_at__gte", + "account_id__eq", + "account_id__neq", + "account_id__in", + "account_id__nin", + "auto_update__eq", + "auto_update__neq", + "bootstrap_expiration_date__in", + "bootstrap_expiration_date__nin", + "bootstrap_expiration_date__lte", + "bootstrap_expiration_date__gte", + "bootstrapped_timestamp__in", + "bootstrapped_timestamp__nin", + "bootstrapped_timestamp__lte", + "bootstrapped_timestamp__gte", + "ca_id__eq", + "ca_id__neq", + "ca_id__in", + "ca_id__nin", + "connector_expiration_date__in", + "connector_expiration_date__nin", + "connector_expiration_date__lte", + "connector_expiration_date__gte", + "created_at__in", + "created_at__nin", + "created_at__lte", + "created_at__gte", + "deployed_state__eq", + "deployed_state__neq", + "deployed_state__in", + "deployed_state__nin", + "deployment__eq", + "deployment__neq", + "deployment__in", + "deployment__nin", + "description__eq", + "description__neq", + "description__in", + "description__nin", + "device_class__eq", + "device_class__neq", + "device_class__in", + "device_class__nin", + "device_execution_mode__eq", + "device_execution_mode__neq", + "device_execution_mode__in", + "device_execution_mode__nin", + "device_key__eq", + "device_key__neq", + "device_key__in", + "device_key__nin", + "endpoint_name__eq", + "endpoint_name__neq", + "endpoint_name__in", + "endpoint_name__nin", + "endpoint_type__eq", + "endpoint_type__neq", + "endpoint_type__in", + "endpoint_type__nin", + "enrolment_list_timestamp__in", + "enrolment_list_timestamp__nin", + "enrolment_list_timestamp__lte", + "enrolment_list_timestamp__gte", + "firmware_checksum__eq", + "firmware_checksum__neq", + "firmware_checksum__in", + "firmware_checksum__nin", + "host_gateway__eq", + "host_gateway__neq", + "host_gateway__in", + "host_gateway__nin", + "id__eq", + "id__neq", + "id__in", + "id__nin", + "manifest__eq", + "manifest__neq", + "manifest__in", + "manifest__nin", + "manifest_timestamp__in", + "manifest_timestamp__nin", + "manifest_timestamp__lte", + "manifest_timestamp__gte", + "mechanism__eq", + "mechanism__neq", + "mechanism__in", + "mechanism__nin", + "mechanism_url__eq", + "mechanism_url__neq", + "mechanism_url__in", + "mechanism_url__nin", + "name__eq", + "name__neq", + "name__in", + "name__nin", + "net_id__eq", + "net_id__neq", + "net_id__in", + "net_id__nin", + "serial_number__eq", + "serial_number__neq", + "serial_number__in", + "serial_number__nin", + "state__eq", + "state__neq", + "state__in", + "state__nin", + "updated_at__in", + "updated_at__nin", + "updated_at__lte", + "updated_at__gte", + "vendor_id__eq", + "vendor_id__neq", + "vendor_id__in", + "vendor_id__nin" ], + "foreign_key_priority": "self", "group_id": "Devices", - "operation_id": "RequestCertificateRenewal", - "unaggregated": true, - "parameter_map": { - "device-id": "id", - "certificate-name": "certificate_name" - }, + "operation_id": "Device_list", + "pagination": true, "foreign_key": { - "entity": "certificate_enrollment", - "group": "Security" + "group": "Devices", + "entity": "device" }, - "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "renew_certificate" + "_key": "list" }, { - "description": "Update a specific device.\n\n**Example:**\nFollowing example will update the specific devices description field to contain \"Testing description field\".\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/devices/ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"description\": \"Testing description field\"}'\n```", + "description": "Retrieve information about a specific device. This API returns [DeviceData](https://www.pelion.com/docs/device-management-api/device-directory/). If you want to see the structure of resources in the device or the actual resource values, use the [Connect API](https://www.pelion.com/docs/device-management-api/connect/).\n\n**Example:**\nFollowing example must be updated with the device's ID to the URL. The id is from of \"01667c6e992c00000000000100100370\"\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/devices/ \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ - { - "type": "boolean", - "description": "DEPRECATED: Mark this device for automatic firmware update.", - "api_fieldname": "auto_update", - "entity_fieldname": "auto_update", - "parameter_fieldname": "auto_update", - "in": "body", - "required": false, - "_key": "auto_update" - }, - { - "type": "string", - "maxLength": 500, - "description": "The certificate issuer's ID.", - "example": "00000000000000000000000000000000", - "api_fieldname": "ca_id", - "entity_fieldname": "ca_id", - "parameter_fieldname": "ca_id", - "in": "body", - "required": false, - "_key": "ca_id" - }, - { - "type": "object", - "maxProperties": 5, - "additionalProperties": { - "type": "string", - "maxLength": 128, - "pattern": "^[A-Za-z].*" - }, - "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" - }, - "api_fieldname": "custom_attributes", - "entity_fieldname": "custom_attributes", - "parameter_fieldname": "custom_attributes", - "in": "body", - "required": false, - "_key": "custom_attributes" - }, - { - "type": "string", - "maxLength": 2000, - "description": "The description of the device.", - "example": "description", - "api_fieldname": "description", - "entity_fieldname": "description", - "parameter_fieldname": "description", - "in": "body", - "required": false, - "_key": "description" - }, - { - "type": "string", - "maxLength": 512, - "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", - "api_fieldname": "device_key", - "entity_fieldname": "device_key", - "parameter_fieldname": "device_key", - "in": "body", - "required": false, - "_key": "device_key" - }, - { - "type": "string", - "description": "The endpoint name given to the device.", - "example": "00000000-0000-0000-0000-000000000000", - "readOnly": true, - "api_fieldname": "endpoint_name", - "entity_fieldname": "endpoint_name", - "parameter_fieldname": "endpoint_name", - "in": "body", - "required": false, - "_key": "endpoint_name" - }, - { - "type": "string", - "description": "The endpoint type of the device. For example, the device is a gateway.", - "maxLength": 64, - "example": "", - "api_fieldname": "endpoint_type", - "entity_fieldname": "endpoint_type", - "parameter_fieldname": "endpoint_type", - "in": "body", - "required": false, - "_key": "endpoint_type" - }, - { - "type": "string", - "description": "The ID of the host gateway, if appropriate.", - "example": "", - "api_fieldname": "host_gateway", - "entity_fieldname": "host_gateway", - "parameter_fieldname": "host_gateway", - "in": "body", - "required": false, - "_key": "host_gateway" - }, { "type": "string", "description": "The ID of the device. The device ID is used across all Device Management APIs.", @@ -34394,25 +33732,13 @@ "in": "path", "required": true, "_key": "id" - }, - { - "type": "string", - "maxLength": 128, - "description": "The name of the device.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "name", - "entity_fieldname": "name", - "parameter_fieldname": "name", - "in": "body", - "required": false, - "_key": "name" } ], - "method": "put", - "mode": "update", + "method": "get", + "mode": "read", "responses": [ { - "description": "Device updated.", + "description": "Retrieved result successfully.", "schema": [ { "group": "Devices", @@ -34454,7 +33780,7 @@ }, "operator_suspended": { "type": "boolean", - "description": "Is the device suspended by the operator?", + "description": "Device has been suspended by operator.", "api_fieldname": "operator_suspended", "entity_fieldname": "operator_suspended" }, @@ -34518,7 +33844,7 @@ "enabled", "blocked" ], - "description": "The lifecycle status of the device.", + "description": "The lifecycle status of the device.\n* Enabled: The device is allowed to connect to Pelion Device Management.\n* Blocked: The device is prevented from connecting to Pelion Device Management. Device can be, for example, 'suspended'.", "example": "enabled", "api_fieldname": "lifecycle_status", "entity_fieldname": "lifecycle_status" @@ -34560,6 +33886,20 @@ "api_fieldname": "ca_id", "entity_fieldname": "ca_id" }, + "component_attributes": { + "type": "object", + "maxProperties": 10, + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "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" + }, + "api_fieldname": "component_attributes", + "entity_fieldname": "component_attributes" + }, "connector_expiration_date": { "format": "date", "type": "string", @@ -34612,7 +33952,7 @@ "type": "string", "maxLength": 2000, "description": "The description of the device.", - "example": "description", + "example": "Temperature measuring device", "api_fieldname": "description", "entity_fieldname": "description" }, @@ -34641,7 +33981,7 @@ }, "endpoint_name": { "type": "string", - "description": "The endpoint name given to the device.", + "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, "api_fieldname": "endpoint_name", @@ -34672,7 +34012,7 @@ }, "host_gateway": { "type": "string", - "description": "The ID of the host gateway, if appropriate.", + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", "example": "", "api_fieldname": "host_gateway", "entity_fieldname": "host_gateway" @@ -34698,13 +34038,13 @@ "direct" ], "type": "string", - "description": "The ID of the channel used to communicate with the device.", + "description": "NOT USED: The ID of the channel used to communicate with the device.", "api_fieldname": "mechanism", "entity_fieldname": "mechanism" }, "mechanism_url": { "type": "string", - "description": "The address of the connector to use.", + "description": "NOT USED: The address of the connector to use.", "example": "", "api_fieldname": "mechanism_url", "entity_fieldname": "mechanism_url" @@ -34712,11 +34052,20 @@ "name": { "type": "string", "maxLength": 128, - "description": "The name of the device.", + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", "example": "00000000-0000-0000-0000-000000000000", "api_fieldname": "name", "entity_fieldname": "name" }, + "net_id": { + "type": "string", + "default": "", + "maxLength": 40, + "description": "Private network identifier. Used to group nodes connected to a specific border router.", + "example": "0000:0000:0000:0000:0000:0000:0000:0000", + "api_fieldname": "net_id", + "entity_fieldname": "net_id" + }, "object": { "type": "string", "description": "The API resource entity.", @@ -34726,7 +34075,7 @@ }, "serial_number": { "type": "string", - "description": "The serial number of the device.", + "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", "api_fieldname": "serial_number", "entity_fieldname": "serial_number" @@ -34740,7 +34089,7 @@ "deregistered" ], "type": "string", - "description": "The current state of the device.", + "description": "The current state of the device.\n* Unenrolled: The device has been created, but has not yet bootstrapped or connected to Device Management.\n* 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.\n* Bootstrapped: The device has bootstrapped, and has credentials to connect to Device Management.\n* 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.\n* Deregistered: The device has requested deregistration, or its registration has expired.", "api_fieldname": "state", "entity_fieldname": "state" }, @@ -34748,7 +34097,7 @@ "format": "date-time", "example": "2017-05-22T12:37:55.576563Z", "type": "string", - "description": "The time the object was updated.", + "description": "The time this data object was updated.", "api_fieldname": "updated_at", "entity_fieldname": "updated_at" }, @@ -34759,39 +34108,360 @@ "api_fieldname": "vendor_id", "entity_fieldname": "vendor_id" }, - "enrolment_list_timestamp": { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + "enrolment_list_timestamp": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The claim date/time.", + "api_fieldname": "enrolment_list_timestamp", + "entity_fieldname": "enrolment_list_timestamp" + }, + "_key": "properties" + } + ], + "_key": "200" + }, + { + "description": "Bad request.", + "_key": "400" + }, + { + "description": "Not authenticated.", + "_key": "401" + }, + { + "description": "Unable to find device.", + "_key": "404" + } + ], + "path": "/v3/devices/{id}/", + "summary": "Get a device.", + "return_type": "device", + "return_info": { + "self": true, + "custom": false, + "type": "device" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "device_execution_mode", + "groups", + "issuer_fingerprint", + "operator_suspended", + "last_operator_suspended_category", + "last_operator_suspended_description", + "last_operator_suspended_updated_at", + "system_suspended", + "last_system_suspended_category", + "last_system_suspended_description", + "last_system_suspended_updated_at", + "lifecycle_status", + "account_id", + "auto_update", + "bootstrap_expiration_date", + "bootstrapped_timestamp", + "ca_id", + "component_attributes", + "connector_expiration_date", + "created_at", + "custom_attributes", + "deployed_state", + "deployment", + "description", + "device_class", + "device_key", + "endpoint_name", + "endpoint_type", + "firmware_checksum", + "host_gateway", + "manifest", + "manifest_timestamp", + "mechanism", + "mechanism_url", + "name", + "net_id", + "serial_number", + "state", + "updated_at", + "vendor_id", + "enrolment_list_timestamp" + ], + "group_id": "Devices", + "operation_id": "Device_retrieve", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "read" + }, + { + "description": "Remove one device from a group.", + "field_renames": [], + "fields": [ + { + "in": "path", + "description": "The ID of the group.", + "name": "device-group-id", + "required": true, + "type": "string", + "entity_fieldname": "device-group-id", + "api_fieldname": "device-group-id", + "external_param": true, + "parameter_fieldname": "device-group-id", + "_key": "device-group-id" + }, + { + "type": "string", + "example": "00000000000000000000000000000000", + "name": "device_id", + "in": "body", + "schema_param": true, + "entity_fieldname": "id", + "api_fieldname": "device_id", + "external_param": false, + "parameter_fieldname": "device_id", + "required": true, + "_key": "id" + } + ], + "method": "post", + "mode": "remove_from_group", + "responses": [ + { + "description": "Success - device removed.", + "_key": "204" + }, + { + "description": "Bad request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Unauthorized.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { "type": "string", - "description": "The claim date/time.", - "api_fieldname": "enrolment_list_timestamp", - "entity_fieldname": "enrolment_list_timestamp" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "_key": "properties" - } - ], - "_key": "200" - }, - { - "description": "Validation error: The data used to update the device did not validate.", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Unable to update device because it can't be found.", + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" } ], - "path": "/v3/devices/{id}/", - "summary": "Update a device.", - "return_type": "device", + "path": "/v3/device-groups/{device-group-id}/devices/remove/", + "summary": "Remove a device from a group.", + "return_type": "void", "return_info": { - "self": true, - "custom": false, - "type": "device" + "self": false, + "custom": true, + "type": "void" }, "x_filter": {}, "x_deprecation": null, @@ -34799,579 +34469,129 @@ "object", "etag", "type", - "filter", - "device_execution_mode", - "groups", - "issuer_fingerprint", - "operator_suspended", - "last_operator_suspended_category", - "last_operator_suspended_description", - "last_operator_suspended_updated_at", - "system_suspended", - "last_system_suspended_category", - "last_system_suspended_description", - "last_system_suspended_updated_at", - "lifecycle_status", - "account_id", - "bootstrap_expiration_date", - "bootstrapped_timestamp", - "connector_expiration_date", - "created_at", - "deployed_state", - "deployment", - "device_class", - "firmware_checksum", - "manifest", - "manifest_timestamp", - "mechanism", - "mechanism_url", - "serial_number", - "state", - "updated_at", - "vendor_id", - "enrolment_list_timestamp" + "filter" ], "group_id": "Devices", - "operation_id": "Device_update", + "operation_id": "Group_members_remove", + "parameter_map": { + "device_id": "id" + }, + "spec": { + "return_type": "void" + }, "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "update" - } - ], - "fields": [ - { - "type": "string", - "description": "The ID of the associated account.", - "example": "00000000000000000000000000000000", - "api_fieldname": "account_id", - "readOnly": true, - "required": false, - "_key": "account_id" - }, - { - "type": "boolean", - "description": "DEPRECATED: Mark this device for automatic firmware update.", - "api_fieldname": "auto_update", - "readOnly": false, - "required": false, - "_key": "auto_update" - }, - { - "format": "date", - "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to bootstrap server.", - "api_fieldname": "bootstrap_expiration_date", - "readOnly": false, - "required": false, - "_key": "bootstrap_expiration_date" - }, - { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The timestamp of the device's most recent bootstrap process.", - "api_fieldname": "bootstrapped_timestamp", - "readOnly": true, - "required": false, - "_key": "bootstrapped_timestamp" - }, - { - "type": "string", - "maxLength": 500, - "description": "The certificate issuer's ID.", - "example": "00000000000000000000000000000000", - "api_fieldname": "ca_id", - "readOnly": false, - "required": false, - "_key": "ca_id" - }, - { - "format": "date", - "type": "string", - "x-nullable": true, - "description": "The expiration date of the certificate used to connect to LwM2M server.", - "api_fieldname": "connector_expiration_date", - "readOnly": false, - "required": false, - "_key": "connector_expiration_date" - }, - { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The timestamp of when the device was created in the device directory.", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "object", - "maxProperties": 5, - "additionalProperties": { - "type": "string", - "maxLength": 128, - "pattern": "^[A-Za-z].*" - }, - "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" - }, - "api_fieldname": "custom_attributes", - "readOnly": false, - "required": false, - "_key": "custom_attributes" - }, - { - "enum": [ - "development", - "production" - ], - "type": "string", - "description": "DEPRECATED: The state of the device's deployment.", - "api_fieldname": "deployed_state", - "readOnly": true, - "required": false, - "enum_reference": "device_deployed_state_enum", - "_key": "deployed_state" - }, - { - "type": "string", - "description": "DEPRECATED: The last deployment used on the device.", - "example": "", - "api_fieldname": "deployment", - "readOnly": false, - "required": false, - "_key": "deployment" - }, - { - "type": "string", - "maxLength": 2000, - "description": "The description of the device.", - "example": "description", - "api_fieldname": "description", - "readOnly": false, - "required": false, - "_key": "description" - }, - { - "type": "string", - "maxLength": 32, - "description": "An ID representing the model and hardware revision of the device.", - "example": "", - "api_fieldname": "device_class", - "readOnly": false, - "required": false, - "_key": "device_class" - }, - { - "enum": [ - 0, - 1, - 5 - ], - "type": "integer", - "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.", - "example": 0, - "default": 0, - "api_fieldname": "device_execution_mode", - "readOnly": false, - "required": false, - "_key": "device_execution_mode" - }, - { - "type": "string", - "maxLength": 512, - "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", - "api_fieldname": "device_key", - "readOnly": false, - "required": false, - "_key": "device_key" - }, - { - "type": "string", - "description": "The endpoint name given to the device.", - "example": "00000000-0000-0000-0000-000000000000", - "readOnly": true, - "api_fieldname": "endpoint_name", - "required": false, - "_key": "endpoint_name" - }, - { - "type": "string", - "description": "The endpoint type of the device. For example, the device is a gateway.", - "maxLength": 64, - "example": "", - "api_fieldname": "endpoint_type", - "readOnly": false, - "required": false, - "_key": "endpoint_type" - }, - { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The claim date/time.", - "api_fieldname": "enrolment_list_timestamp", - "readOnly": true, - "required": false, - "_key": "enrolment_list_timestamp" - }, - { - "type": "string", - "description": "The SHA256 checksum of the current firmware image.", - "example": "0000000000000000000000000000000000000000000000000000000000000000", - "api_fieldname": "firmware_checksum", - "readOnly": true, - "required": false, - "_key": "firmware_checksum" - }, - { - "description": "An array containing an ID of each group this device belongs to.", - "type": "array", - "items": { - "type": "string", - "example": "00000000000000000000000000000000" - }, - "api_fieldname": "groups", - "readOnly": true, - "required": false, - "_key": "groups" - }, - { - "type": "string", - "description": "The ID of the host gateway, if appropriate.", - "example": "", - "api_fieldname": "host_gateway", - "readOnly": false, - "required": false, - "_key": "host_gateway" - }, - { - "type": "string", - "description": "The ID of the device. The device ID is used across all Device Management APIs.", - "example": "00000000000000000000000000000000", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - }, - { - "type": "string", - "pattern": "[A-Fa-f0-9]{64}", - "x-nullable": true, - "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", - "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322", - "api_fieldname": "issuer_fingerprint", - "readOnly": false, - "required": false, - "_key": "issuer_fingerprint" - }, - { - "type": "string", - "description": "The reference of the block category.", - "pattern": "[a-f0-9_]{32}", - "example": "maintenance", - "api_fieldname": "last_operator_suspended_category", - "readOnly": true, - "required": false, - "_key": "last_operator_suspended_category" - }, - { - "type": "string", - "maxLength": 2000, - "description": "The most recent description why the device was suspended or returned to service.", - "example": "Suspended for maintenance.", - "api_fieldname": "last_operator_suspended_description", - "readOnly": true, - "required": false, - "_key": "last_operator_suspended_description" - }, - { - "type": "string", - "format": "date-time", - "description": "The timestamp of the most recent suspension activity.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "last_operator_suspended_updated_at", - "readOnly": true, - "required": false, - "_key": "last_operator_suspended_updated_at" - }, - { - "type": "string", - "description": "The reference of the block category.", - "pattern": "[a-f0-9_]{32}", - "example": "maintenance", - "api_fieldname": "last_system_suspended_category", - "readOnly": true, - "required": false, - "_key": "last_system_suspended_category" - }, - { - "type": "string", - "maxLength": 2000, - "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.", - "api_fieldname": "last_system_suspended_description", - "readOnly": true, - "required": false, - "_key": "last_system_suspended_description" - }, - { - "type": "string", - "format": "date-time", - "description": "The timestamp of the most recent system block activity.", - "example": "2017-05-22T12:37:55.576563Z", - "api_fieldname": "last_system_suspended_updated_at", - "readOnly": true, - "required": false, - "_key": "last_system_suspended_updated_at" - }, - { - "type": "string", - "enum": [ - "enabled", - "blocked" - ], - "description": "The lifecycle status of the device.", - "example": "enabled", - "api_fieldname": "lifecycle_status", - "readOnly": true, - "required": false, - "enum_reference": "device_lifecycle_status_enum", - "_key": "lifecycle_status" - }, - { - "type": "string", - "description": "DEPRECATED: The URL for the current device manifest.", - "example": "", - "api_fieldname": "manifest", - "readOnly": false, - "required": false, - "_key": "manifest" - }, - { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The timestamp of the current manifest version.", - "api_fieldname": "manifest_timestamp", - "readOnly": true, - "required": false, - "_key": "manifest_timestamp" - }, - { - "enum": [ - "connector", - "direct" - ], - "type": "string", - "description": "The ID of the channel used to communicate with the device.", - "api_fieldname": "mechanism", - "readOnly": false, - "required": false, - "enum_reference": "device_mechanism_enum", - "_key": "mechanism" - }, - { - "type": "string", - "description": "The address of the connector to use.", - "example": "", - "api_fieldname": "mechanism_url", - "readOnly": false, - "required": false, - "_key": "mechanism_url" - }, - { - "type": "string", - "maxLength": 128, - "description": "The name of the device.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "name", - "readOnly": false, - "required": false, - "_key": "name" - }, - { - "type": "boolean", - "description": "Is the device suspended by the operator?", - "api_fieldname": "operator_suspended", - "readOnly": true, - "required": false, - "_key": "operator_suspended" - }, - { - "type": "string", - "description": "The serial number of the device.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "serial_number", - "readOnly": false, - "required": false, - "_key": "serial_number" - }, - { - "enum": [ - "unenrolled", - "cloud_enrolling", - "bootstrapped", - "registered", - "deregistered" - ], - "type": "string", - "description": "The current state of the device.", - "api_fieldname": "state", - "readOnly": false, - "required": false, - "enum_reference": "device_state_enum", - "_key": "state" - }, - { - "type": "boolean", - "description": "Is the device suspended by the system?", - "api_fieldname": "system_suspended", - "readOnly": true, - "required": false, - "_key": "system_suspended" - }, - { - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "type": "string", - "description": "The time the object was updated.", - "api_fieldname": "updated_at", - "readOnly": true, - "required": false, - "_key": "updated_at" + "_key": "remove_from_group" }, { - "type": "string", - "description": "The device vendor ID.", - "example": "00000000-0000-0000-0000-000000000000", - "api_fieldname": "vendor_id", - "readOnly": false, - "required": false, - "_key": "vendor_id" - } - ], - "field_renames": [], - "tags": [ - "Device directory - devices", - "Device security - device certificate renewals", - "Device directory - groups" - ], - "group_id": "Devices", - "_key": "device" - }, - { - "swagger_models": [ - "EnrollmentId", - "EnrollmentIdentities", - "EnrollmentIdentity" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "When the device connects to the bootstrap server and provides the enrollment ID, it is assigned to your account.\n
\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments \\\n-d '{\"enrollment_identity\": \"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\"}'\n```", + "description": "Request a certificate renewal.\n\n**Example:**\n\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/devices/01612df56f3b0a580a010fc700000000/certificates/customer.dlms/renew \\\n-H 'Authorization: Bearer ' \\\n-H 'content-length: 0'\n```", "field_renames": [], "fields": [ { "type": "string", - "description": "Enrollment identity.", - "pattern": "^A-[A-Za-z0-9:]{95}$", - "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", - "api_fieldname": "enrollment_identity", - "entity_fieldname": "enrollment_identity", - "parameter_fieldname": "enrollment_identity", - "in": "body", + "maxLength": 50, + "description": "The certificate name.", + "example": "customer.dlms", + "api_fieldname": "certificate-name", + "entity_fieldname": "certificate_name", + "in": "path", + "name": "certificate-name", + "required": true, + "pattern": "[\\w\\-]{1,10}\\.[\\w\\-.]{1,10}", + "external_param": true, + "parameter_fieldname": "certificate-name", + "_key": "certificate_name" + }, + { + "type": "string", + "description": "The certificate enrollment ID.", + "example": "01612df56f3b0a580a010fc700000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "device-id", + "in": "path", "required": true, - "_key": "enrollment_identity" + "_key": "id" } ], "method": "post", - "mode": "create", + "mode": "renew_certificate", "responses": [ { - "description": "Created. The enrollment claim has been created and is waiting for the device to connect.", + "description": "Created.", "schema": { "type": "object", - "required": [ - "object", - "id", - "etag", - "account_id", - "created_at", - "expires_at", - "claimed_at", - "enrollment_identity", - "enrolled_device_id" - ], "properties": [ { "type": "string", - "description": "ID", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" - }, - { - "type": "string", - "description": "The time the device was claimed.", - "format": "date-time", - "api_fieldname": "claimed_at", - "entity_fieldname": "claimed_at", - "_key": "claimed_at" + "maxLength": 50, + "description": "The certificate name.", + "example": "customer.dlms", + "api_fieldname": "certificate_name", + "entity_fieldname": "certificate_name", + "_key": "certificate_name" }, { "type": "string", - "description": "The time of the enrollment identity creation.", "format": "date-time", + "description": "Creation UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", "api_fieldname": "created_at", "entity_fieldname": "created_at", "_key": "created_at" }, { "type": "string", - "description": "The ID of the device in the Device Directory once it is registered.", - "pattern": "^[A-Za-z0-9]{32}", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "enrolled_device_id", - "entity_fieldname": "enrolled_device_id", - "_key": "enrolled_device_id" + "description": "The device ID.", + "example": "01625daa23230a580a0100bd00000000", + "api_fieldname": "device_id", + "entity_fieldname": "device_id", + "_key": "device_id" }, { "type": "string", - "description": "Enrollment identity.", - "pattern": "^A-[A-Za-z0-9:]{95}$", - "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", - "api_fieldname": "enrollment_identity", - "entity_fieldname": "enrollment_identity", - "_key": "enrollment_identity" + "enum": [ + "success", + "failure" + ], + "description": "The result of certificate enrollment request.", + "example": "success", + "api_fieldname": "enroll_result", + "entity_fieldname": "enroll_result", + "_key": "enroll_result" }, { "type": "string", - "pattern": "[A-Za-z0-9]{1,256}", - "example": "7642xfaxz", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "description": "Additional information in case of failure.", + "example": "The device is currently processing too many certificate renewals.", + "api_fieldname": "enroll_result_detail", + "entity_fieldname": "enroll_result_detail", + "_key": "enroll_result_detail" }, { "type": "string", - "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", - "api_fieldname": "expires_at", - "entity_fieldname": "expires_at", - "_key": "expires_at" + "description": "The status of certificate enrollment request.", + "enum": [ + "new", + "completed" + ], + "api_fieldname": "enroll_status", + "entity_fieldname": "enroll_status", + "_key": "enroll_status" }, { "type": "string", - "description": "Enrollment identity.", - "pattern": "^[A-Za-z0-9]{32}", - "example": "00005a4e027f0a580a01081c00000000", + "description": "Entity instance signature.", + "example": "1", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "description": "The certificate enrollment ID.", + "example": "01612df56f3b0a580a010fc700000000", "api_fieldname": "id", "entity_fieldname": "id", "_key": "id" @@ -35379,27 +34599,43 @@ { "type": "string", "enum": [ - "enrollment" + "certificate-enrollment" ], - "example": "enrollment", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" + }, + { + "type": "string", + "format": "date-time", + "description": "Update UTC time RFC3339.", + "example": "2017-01-01T00:00:00Z", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at", + "_key": "updated_at" } ], + "required": [ + "created_at", + "etag", + "id", + "device_id", + "certificate_name" + ], "foreign_key": { - "group": "Devices", - "entity": "device_enrollment" + "group": "Security", + "entity": "certificate_enrollment" } }, "_key": "201" }, { - "description": "Bad request. The enrollment identity is not valid.", + "description": "Validation error: There is no certificate issuer configured for this certificate.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -35409,29 +34645,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -35439,28 +34670,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -35468,11 +34693,12 @@ "_key": "400" }, { - "description": "The provided access token is not valid.", + "description": "You are not authorized to perform the action.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -35482,29 +34708,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -35512,28 +34733,22 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] @@ -35541,11 +34756,12 @@ "_key": "401" }, { - "description": "Conflict. The requested identity to add already exists on this or another account.", + "description": "Forbidden.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -35555,29 +34771,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -35585,94 +34796,35 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] }, - "_key": "409" - } - ], - "path": "/v3/device-enrollments", - "summary": "Create a single enrollment.", - "return_type": "device_enrollment", - "return_info": { - "self": true, - "custom": false, - "type": "device_enrollment" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "id", - "created_at", - "claimed_at", - "account_id", - "expires_at", - "enrolled_device_id" - ], - "group_id": "Devices", - "operation_id": "createDeviceEnrollment", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "create" - }, - { - "description": "To free a device from your account, delete the enrollment claim. To bypass the device ownership, you need to delete the enrollment and factory reset the device. For more information, see [Transferring ownership using First-to-Claim](../connecting/device-ownership-first-to-claim-by-enrollment-list.html).\n
\n**Example:**\n```\ncurl -X DELETE \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id}\n```", - "field_renames": [], - "fields": [ - { - "in": "path", - "name": "id", - "type": "string", - "required": true, - "description": "Enrollment identity.", - "entity_fieldname": "id", - "api_fieldname": "id", - "external_param": false, - "parameter_fieldname": "id", - "_key": "id" - } - ], - "method": "delete", - "mode": "delete", - "responses": [ - { - "description": "No content. The enrollment claim has been deleted.", - "_key": "204" + "_key": "403" }, { - "description": "Bad request. Invalid enrollment identity.", + "description": "The device ID or certificate name is not found.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -35682,29 +34834,24 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", - "_key": "message" + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -35712,40 +34859,35 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] }, - "_key": "400" + "_key": "404" }, { - "description": "Not found.", + "description": "Conflict. A renewal request for this certificate is in progress.", "schema": { "type": "object", "required": [ "code", + "fields", "message", "object", "request_id", @@ -35755,29 +34897,87 @@ { "type": "integer", "format": "int32", - "description": "HTTP response code", - "example": 400, + "description": "Error code. Correlates with response status code.", "_key": "code" }, { "type": "array", - "description": "Request fields which failed validation.", + "description": "A list of request fields that failed validation.", "items": { "type": "object", - "required": [ - "name", - "message" - ], "properties": [ { "type": "string", - "description": "Message describing the error condition.", + "description": "Field name.", + "_key": "field" + }, + { + "type": "string", + "description": "Error message related to the field.", "_key": "message" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "Error message.", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name: `error`.", + "_key": "object" + }, + { + "type": "string", + "description": "Request ID from JWT.", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type.", + "_key": "type" + } + ] + }, + "_key": "409" + }, + { + "description": "Either:\n- Operation not supported for this device.\n- The device is not connected.", + "schema": { + "type": "object", + "required": [ + "code", + "fields", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "Error code. Correlates with response status code.", + "_key": "code" + }, + { + "type": "array", + "description": "A list of request fields that failed validation.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "Field name.", + "_key": "field" }, { "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" + "description": "Error message related to the field.", + "_key": "message" } ] }, @@ -35785,42 +34985,36 @@ }, { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", + "description": "Error message.", "_key": "message" }, { "type": "string", - "description": "Entity name, always `error`.", - "enum": [ - "error" - ], + "description": "Entity name: `error`.", "_key": "object" }, { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", + "description": "Request ID from JWT.", "_key": "request_id" }, { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", + "description": "Error type.", "_key": "type" } ] }, - "_key": "404" + "_key": "423" } ], - "path": "/v3/device-enrollments/{id}", - "summary": "Delete an enrollment by ID.", - "return_type": "device_enrollment", + "path": "/v3/devices/{device-id}/certificates/{certificate-name}/renew", + "summary": "Request certificate renewal.", + "return_type": "certificate_enrollment", "return_info": { - "self": true, + "self": false, "custom": false, - "type": "device_enrollment" + "type": "certificate_enrollment" }, "x_filter": {}, "x_deprecation": null, @@ -35828,448 +35022,1097 @@ "object", "etag", "type", - "filter" + "filter", + "created_at", + "device_id", + "enroll_status", + "enroll_result", + "enroll_result_detail", + "updated_at" ], "group_id": "Devices", - "operation_id": "deleteDeviceEnrollment", + "operation_id": "RequestCertificateRenewal", + "unaggregated": true, + "parameter_map": { + "device-id": "id", + "certificate-name": "certificate_name" + }, + "foreign_key": { + "entity": "certificate_enrollment", + "group": "Security" + }, "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "delete" + "_key": "renew_certificate" }, { - "description": "Provides a list of pending and claimed enrollments.\n\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments\n```\nWith query parameters:\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\n'https://api.us-east-1.mbedcloud.com/v3/device-enrollments?limit=10'\n```", + "description": "Update a specific device.\n\n**Example:**\nFollowing example will update the specific devices description field to contain \"Testing description field\".\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/devices/ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"description\": \"Testing description field\"}'\n```", "field_renames": [], "fields": [ + { + "type": "boolean", + "description": "DEPRECATED: Mark this device for automatic firmware update.", + "api_fieldname": "auto_update", + "entity_fieldname": "auto_update", + "parameter_fieldname": "auto_update", + "in": "body", + "required": false, + "_key": "auto_update" + }, + { + "type": "string", + "maxLength": 500, + "description": "The certificate issuer's ID.", + "example": "00000000000000000000000000000000", + "api_fieldname": "ca_id", + "entity_fieldname": "ca_id", + "parameter_fieldname": "ca_id", + "in": "body", + "required": false, + "_key": "ca_id" + }, + { + "type": "object", + "maxProperties": 5, + "additionalProperties": { + "type": "string", + "maxLength": 128, + "pattern": "^[A-Za-z].*" + }, + "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" + }, + "api_fieldname": "custom_attributes", + "entity_fieldname": "custom_attributes", + "parameter_fieldname": "custom_attributes", + "in": "body", + "required": false, + "_key": "custom_attributes" + }, { "type": "string", - "description": "Entity ID to fetch after.", - "example": "00005a4e027f0a580a01081c00000000", - "pattern": "^[A-Za-z0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "name": "after", - "in": "query", + "maxLength": 2000, + "description": "The description of the device.", + "example": "Temperature measuring device", + "api_fieldname": "description", + "entity_fieldname": "description", + "parameter_fieldname": "description", + "in": "body", "required": false, - "external_param": true, - "parameter_fieldname": "after", - "_key": "after" + "_key": "description" }, { - "name": "include", "type": "string", - "in": "query", - "description": "Comma-separated additional data to return. Currently supported: total_count.", + "maxLength": 512, + "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", + "api_fieldname": "device_key", + "entity_fieldname": "device_key", + "parameter_fieldname": "device_key", + "in": "body", "required": false, - "entity_fieldname": "include", - "api_fieldname": "include", - "external_param": true, - "parameter_fieldname": "include", - "_key": "include" + "_key": "device_key" }, { - "type": "integer", - "description": "Number of results to return (2-1000).", - "example": 50, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "name": "limit", - "in": "query", + "type": "string", + "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, + "api_fieldname": "endpoint_name", + "entity_fieldname": "endpoint_name", + "parameter_fieldname": "endpoint_name", + "in": "body", "required": false, - "external_param": true, - "parameter_fieldname": "limit", - "_key": "limit" + "_key": "endpoint_name" }, { "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "default": "ASC", - "example": "ASC", - "api_fieldname": "order", - "entity_fieldname": "order", - "name": "order", - "in": "query", - "description": "ASC or DESC", + "description": "The endpoint type of the device. For example, the device is a gateway.", + "maxLength": 64, + "example": "", + "api_fieldname": "endpoint_type", + "entity_fieldname": "endpoint_type", + "parameter_fieldname": "endpoint_type", + "in": "body", "required": false, - "external_param": true, - "parameter_fieldname": "order", - "enum_reference": "device_enrollment_order_enum", - "_key": "order" + "_key": "endpoint_type" + }, + { + "type": "string", + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", + "example": "", + "api_fieldname": "host_gateway", + "entity_fieldname": "host_gateway", + "parameter_fieldname": "host_gateway", + "in": "body", + "required": false, + "_key": "host_gateway" + }, + { + "type": "string", + "description": "The ID of the device. The device ID is used across all Device Management APIs.", + "example": "00000000000000000000000000000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "id", + "in": "path", + "required": true, + "_key": "id" + }, + { + "type": "string", + "maxLength": 128, + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", + "example": "00000000-0000-0000-0000-000000000000", + "api_fieldname": "name", + "entity_fieldname": "name", + "parameter_fieldname": "name", + "in": "body", + "required": false, + "_key": "name" } ], - "method": "get", - "mode": "list", + "method": "put", + "mode": "update", "responses": [ { - "description": "OK.", - "schema": { - "type": "object", - "required": [ - "object", - "limit", - "after", - "order", - "has_more", - "total_count", - "data" - ], - "properties": [ - { - "type": "string", - "description": "ID", - "example": "00005a4e027f0a580a01081c00000000", - "pattern": "^[A-Za-z0-9]{32}", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" + "description": "Device updated.", + "schema": [ + { + "group": "Devices", + "entity": "device", + "_key": "foreign_key" + }, + { + "device_execution_mode": { + "enum": [ + 0, + 1, + 5 + ], + "type": "integer", + "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.", + "example": 0, + "default": 0, + "api_fieldname": "device_execution_mode", + "entity_fieldname": "device_execution_mode" }, - { + "groups": { + "description": "An array containing an ID of each group this device belongs to.", "type": "array", "items": { - "type": "object", - "required": [ - "object", - "id", - "etag", - "account_id", - "created_at", - "expires_at", - "claimed_at", - "enrollment_identity", - "enrolled_device_id" - ], - "properties": [ - { - "type": "string", - "description": "ID", - "example": "00005a4e027f0a580a01081c00000000", - "_key": "account_id" - }, - { - "type": "string", - "description": "The time the device was claimed.", - "format": "date-time", - "_key": "claimed_at" - }, - { - "type": "string", - "description": "The time of the enrollment identity creation.", - "format": "date-time", - "_key": "created_at" - }, - { - "type": "string", - "description": "The ID of the device in the Device Directory once it is registered.", - "pattern": "^[A-Za-z0-9]{32}", - "example": "00005a4e027f0a580a01081c00000000", - "_key": "enrolled_device_id" - }, - { - "type": "string", - "description": "Enrollment identity.", - "pattern": "^A-[A-Za-z0-9:]{95}$", - "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", - "_key": "enrollment_identity" - }, - { - "type": "string", - "pattern": "[A-Za-z0-9]{1,256}", - "example": "7642xfaxz", - "_key": "etag" - }, - { - "type": "string", - "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", - "_key": "expires_at" - }, - { - "type": "string", - "description": "Enrollment identity.", - "pattern": "^[A-Za-z0-9]{32}", - "example": "00005a4e027f0a580a01081c00000000", - "_key": "id" - }, - { - "type": "string", - "enum": [ - "enrollment" - ], - "example": "enrollment", - "_key": "object" - } - ], - "foreign_key": { - "group": "Devices", - "entity": "device_enrollment" - } + "type": "string", + "example": "00000000000000000000000000000000" }, - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" + "api_fieldname": "groups", + "entity_fieldname": "groups" }, - { + "issuer_fingerprint": { + "type": "string", + "pattern": "[A-Fa-f0-9]{64}", + "x-nullable": true, + "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", + "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322", + "api_fieldname": "issuer_fingerprint", + "entity_fieldname": "issuer_fingerprint" + }, + "operator_suspended": { "type": "boolean", - "example": true, - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" + "description": "Device has been suspended by operator.", + "api_fieldname": "operator_suspended", + "entity_fieldname": "operator_suspended" }, - { - "type": "integer", - "description": "Range 2-1000, or default.", - "example": 50, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" + "last_operator_suspended_category": { + "type": "string", + "description": "The reference of the block category.", + "pattern": "[a-f0-9_]{32}", + "example": "maintenance", + "api_fieldname": "last_operator_suspended_category", + "entity_fieldname": "last_operator_suspended_category" }, - { + "last_operator_suspended_description": { + "type": "string", + "maxLength": 2000, + "description": "The most recent description why the device was suspended or returned to service.", + "example": "Suspended for maintenance.", + "api_fieldname": "last_operator_suspended_description", + "entity_fieldname": "last_operator_suspended_description" + }, + "last_operator_suspended_updated_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the most recent suspension activity.", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "last_operator_suspended_updated_at", + "entity_fieldname": "last_operator_suspended_updated_at" + }, + "system_suspended": { + "type": "boolean", + "description": "Is the device suspended by the system?", + "api_fieldname": "system_suspended", + "entity_fieldname": "system_suspended" + }, + "last_system_suspended_category": { + "type": "string", + "description": "The reference of the block category.", + "pattern": "[a-f0-9_]{32}", + "example": "maintenance", + "api_fieldname": "last_system_suspended_category", + "entity_fieldname": "last_system_suspended_category" + }, + "last_system_suspended_description": { + "type": "string", + "maxLength": 2000, + "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.", + "api_fieldname": "last_system_suspended_description", + "entity_fieldname": "last_system_suspended_description" + }, + "last_system_suspended_updated_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the most recent system block activity.", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "last_system_suspended_updated_at", + "entity_fieldname": "last_system_suspended_updated_at" + }, + "lifecycle_status": { "type": "string", "enum": [ - "list" + "enabled", + "blocked" ], - "example": "list", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "description": "The lifecycle status of the device.\n* Enabled: The device is allowed to connect to Pelion Device Management.\n* Blocked: The device is prevented from connecting to Pelion Device Management. Device can be, for example, 'suspended'.", + "example": "enabled", + "api_fieldname": "lifecycle_status", + "entity_fieldname": "lifecycle_status" }, - { + "account_id": { + "type": "string", + "description": "The ID of the associated account.", + "example": "00000000000000000000000000000000", + "api_fieldname": "account_id", + "entity_fieldname": "account_id" + }, + "auto_update": { + "type": "boolean", + "description": "DEPRECATED: Mark this device for automatic firmware update.", + "api_fieldname": "auto_update", + "entity_fieldname": "auto_update" + }, + "bootstrap_expiration_date": { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to bootstrap server.", + "api_fieldname": "bootstrap_expiration_date", + "entity_fieldname": "bootstrap_expiration_date" + }, + "bootstrapped_timestamp": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The timestamp of the device's most recent bootstrap process.", + "api_fieldname": "bootstrapped_timestamp", + "entity_fieldname": "bootstrapped_timestamp" + }, + "ca_id": { + "type": "string", + "maxLength": 500, + "description": "The certificate issuer's ID.", + "example": "00000000000000000000000000000000", + "api_fieldname": "ca_id", + "entity_fieldname": "ca_id" + }, + "component_attributes": { + "type": "object", + "maxProperties": 10, + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "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" + }, + "api_fieldname": "component_attributes", + "entity_fieldname": "component_attributes" + }, + "connector_expiration_date": { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to LwM2M server.", + "api_fieldname": "connector_expiration_date", + "entity_fieldname": "connector_expiration_date" + }, + "created_at": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", "type": "string", + "description": "The timestamp of when the device was created in the device directory.", + "api_fieldname": "created_at", + "entity_fieldname": "created_at" + }, + "custom_attributes": { + "type": "object", + "maxProperties": 5, + "additionalProperties": { + "type": "string", + "maxLength": 128, + "pattern": "^[A-Za-z].*" + }, + "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" + }, + "api_fieldname": "custom_attributes", + "entity_fieldname": "custom_attributes" + }, + "deployed_state": { "enum": [ - "ASC", - "DESC" + "development", + "production" ], - "default": "ASC", - "example": "ASC", - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" + "type": "string", + "description": "DEPRECATED: The state of the device's deployment.", + "api_fieldname": "deployed_state", + "entity_fieldname": "deployed_state" }, - { - "type": "integer", - "example": 100, - "format": "int32", - "minimum": 1, - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" - } - ], - "pagination": true, - "foreign_key": { - "group": "Devices", - "entity": "device_enrollment" - } - }, - "_key": "200" - }, - { - "description": "Bad request. The access token could not be read.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "deployment": { + "type": "string", + "description": "DEPRECATED: The last deployment used on the device.", + "example": "", + "api_fieldname": "deployment", + "entity_fieldname": "deployment" + }, + "description": { + "type": "string", + "maxLength": 2000, + "description": "The description of the device.", + "example": "Temperature measuring device", + "api_fieldname": "description", + "entity_fieldname": "description" + }, + "device_class": { + "type": "string", + "maxLength": 32, + "description": "An ID representing the model and hardware revision of the device.", + "example": "", + "api_fieldname": "device_class", + "entity_fieldname": "device_class" + }, + "id": { + "type": "string", + "description": "The ID of the device. The device ID is used across all Device Management APIs.", + "example": "00000000000000000000000000000000", + "api_fieldname": "id", + "entity_fieldname": "id" + }, + "device_key": { + "type": "string", + "maxLength": 512, + "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", + "api_fieldname": "device_key", + "entity_fieldname": "device_key" + }, + "endpoint_name": { + "type": "string", + "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, + "api_fieldname": "endpoint_name", + "entity_fieldname": "endpoint_name" + }, + "endpoint_type": { + "type": "string", + "description": "The endpoint type of the device. For example, the device is a gateway.", + "maxLength": 64, + "example": "", + "api_fieldname": "endpoint_type", + "entity_fieldname": "endpoint_type" + }, + "etag": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The entity instance signature.", + "api_fieldname": "etag", + "entity_fieldname": "etag" }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" + "firmware_checksum": { + "type": "string", + "description": "The SHA256 checksum of the current firmware image.", + "example": "0000000000000000000000000000000000000000000000000000000000000000", + "api_fieldname": "firmware_checksum", + "entity_fieldname": "firmware_checksum" }, - { + "host_gateway": { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", + "example": "", + "api_fieldname": "host_gateway", + "entity_fieldname": "host_gateway" }, - { + "manifest": { "type": "string", - "description": "Entity name, always `error`.", + "description": "DEPRECATED: The URL for the current device manifest.", + "example": "", + "api_fieldname": "manifest", + "entity_fieldname": "manifest" + }, + "manifest_timestamp": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The timestamp of the current manifest version.", + "api_fieldname": "manifest_timestamp", + "entity_fieldname": "manifest_timestamp" + }, + "mechanism": { "enum": [ - "error" + "connector", + "direct" ], - "_key": "object" + "type": "string", + "description": "NOT USED: The ID of the channel used to communicate with the device.", + "api_fieldname": "mechanism", + "entity_fieldname": "mechanism" }, - { + "mechanism_url": { "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "description": "NOT USED: The address of the connector to use.", + "example": "", + "api_fieldname": "mechanism_url", + "entity_fieldname": "mechanism_url" }, - { + "name": { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, - "_key": "400" - }, - { - "description": "The provided access token is not valid.", - "schema": { - "type": "object", - "required": [ - "code", - "message", - "object", - "request_id", - "type" - ], - "properties": [ - { - "type": "integer", - "format": "int32", - "description": "HTTP response code", - "example": 400, - "_key": "code" + "maxLength": 128, + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", + "example": "00000000-0000-0000-0000-000000000000", + "api_fieldname": "name", + "entity_fieldname": "name" }, - { - "type": "array", - "description": "Request fields which failed validation.", - "items": { - "type": "object", - "required": [ - "name", - "message" - ], - "properties": [ - { - "type": "string", - "description": "Message describing the error condition.", - "_key": "message" - }, - { - "type": "string", - "description": "Name of the field which caused the error.", - "_key": "name" - } - ] - }, - "_key": "fields" + "net_id": { + "type": "string", + "default": "", + "maxLength": 40, + "description": "Private network identifier. Used to group nodes connected to a specific border router.", + "example": "0000:0000:0000:0000:0000:0000:0000:0000", + "api_fieldname": "net_id", + "entity_fieldname": "net_id" }, - { + "object": { "type": "string", - "description": "A human readable informative explanation", - "example": "Validation error", - "_key": "message" + "description": "The API resource entity.", + "example": "device", + "api_fieldname": "object", + "entity_fieldname": "object" }, - { + "serial_number": { "type": "string", - "description": "Entity name, always `error`.", + "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", + "api_fieldname": "serial_number", + "entity_fieldname": "serial_number" + }, + "state": { "enum": [ - "error" + "unenrolled", + "cloud_enrolling", + "bootstrapped", + "registered", + "deregistered" ], - "_key": "object" + "type": "string", + "description": "The current state of the device.\n* Unenrolled: The device has been created, but has not yet bootstrapped or connected to Device Management.\n* 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.\n* Bootstrapped: The device has bootstrapped, and has credentials to connect to Device Management.\n* 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.\n* Deregistered: The device has requested deregistration, or its registration has expired.", + "api_fieldname": "state", + "entity_fieldname": "state" }, - { + "updated_at": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", "type": "string", - "description": "ID of the request.", - "example": "0161991d63150242ac12000600000000", - "_key": "request_id" + "description": "The time this data object was updated.", + "api_fieldname": "updated_at", + "entity_fieldname": "updated_at" }, - { + "vendor_id": { "type": "string", - "description": "Error type used to categorise the error.", - "example": "validation_error", - "_key": "type" - } - ] - }, + "description": "The device vendor ID.", + "example": "00000000-0000-0000-0000-000000000000", + "api_fieldname": "vendor_id", + "entity_fieldname": "vendor_id" + }, + "enrolment_list_timestamp": { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The claim date/time.", + "api_fieldname": "enrolment_list_timestamp", + "entity_fieldname": "enrolment_list_timestamp" + }, + "_key": "properties" + } + ], + "_key": "200" + }, + { + "description": "Validation error: The data used to update the device did not validate.", + "_key": "400" + }, + { + "description": "Not authenticated.", "_key": "401" + }, + { + "description": "Unable to update device because it can't be found.", + "_key": "404" } ], - "path": "/v3/device-enrollments", - "summary": "Get a list of enrollments per account.", - "return_type": "paginated_response(device_enrollment)", - "return_info": { - "self": true, - "custom": false, - "type": "device_enrollment" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "has_more", - "total_count", - "data" + "path": "/v3/devices/{id}/", + "summary": "Update a device.", + "return_type": "device", + "return_info": { + "self": true, + "custom": false, + "type": "device" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "device_execution_mode", + "groups", + "issuer_fingerprint", + "operator_suspended", + "last_operator_suspended_category", + "last_operator_suspended_description", + "last_operator_suspended_updated_at", + "system_suspended", + "last_system_suspended_category", + "last_system_suspended_description", + "last_system_suspended_updated_at", + "lifecycle_status", + "account_id", + "bootstrap_expiration_date", + "bootstrapped_timestamp", + "component_attributes", + "connector_expiration_date", + "created_at", + "deployed_state", + "deployment", + "device_class", + "firmware_checksum", + "manifest", + "manifest_timestamp", + "mechanism", + "mechanism_url", + "net_id", + "serial_number", + "state", + "updated_at", + "vendor_id", + "enrolment_list_timestamp" + ], + "group_id": "Devices", + "operation_id": "Device_update", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "update" + } + ], + "fields": [ + { + "type": "string", + "description": "The ID of the associated account.", + "example": "00000000000000000000000000000000", + "api_fieldname": "account_id", + "readOnly": true, + "required": false, + "_key": "account_id" + }, + { + "type": "boolean", + "description": "DEPRECATED: Mark this device for automatic firmware update.", + "api_fieldname": "auto_update", + "readOnly": false, + "required": false, + "_key": "auto_update" + }, + { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to bootstrap server.", + "api_fieldname": "bootstrap_expiration_date", + "readOnly": false, + "required": false, + "_key": "bootstrap_expiration_date" + }, + { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The timestamp of the device's most recent bootstrap process.", + "api_fieldname": "bootstrapped_timestamp", + "readOnly": true, + "required": false, + "_key": "bootstrapped_timestamp" + }, + { + "type": "string", + "maxLength": 500, + "description": "The certificate issuer's ID.", + "example": "00000000000000000000000000000000", + "api_fieldname": "ca_id", + "readOnly": false, + "required": false, + "_key": "ca_id" + }, + { + "type": "object", + "maxProperties": 10, + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "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" + }, + "api_fieldname": "component_attributes", + "readOnly": true, + "required": false, + "_key": "component_attributes" + }, + { + "format": "date", + "type": "string", + "x-nullable": true, + "description": "The expiration date of the certificate used to connect to LwM2M server.", + "api_fieldname": "connector_expiration_date", + "readOnly": false, + "required": false, + "_key": "connector_expiration_date" + }, + { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The timestamp of when the device was created in the device directory.", + "api_fieldname": "created_at", + "readOnly": true, + "required": false, + "_key": "created_at" + }, + { + "type": "object", + "maxProperties": 5, + "additionalProperties": { + "type": "string", + "maxLength": 128, + "pattern": "^[A-Za-z].*" + }, + "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" + }, + "api_fieldname": "custom_attributes", + "readOnly": false, + "required": false, + "_key": "custom_attributes" + }, + { + "enum": [ + "development", + "production" + ], + "type": "string", + "description": "DEPRECATED: The state of the device's deployment.", + "api_fieldname": "deployed_state", + "readOnly": true, + "required": false, + "enum_reference": "device_deployed_state_enum", + "_key": "deployed_state" + }, + { + "type": "string", + "description": "DEPRECATED: The last deployment used on the device.", + "example": "", + "api_fieldname": "deployment", + "readOnly": false, + "required": false, + "_key": "deployment" + }, + { + "type": "string", + "maxLength": 2000, + "description": "The description of the device.", + "example": "Temperature measuring device", + "api_fieldname": "description", + "readOnly": false, + "required": false, + "_key": "description" + }, + { + "type": "string", + "maxLength": 32, + "description": "An ID representing the model and hardware revision of the device.", + "example": "", + "api_fieldname": "device_class", + "readOnly": false, + "required": false, + "_key": "device_class" + }, + { + "enum": [ + 0, + 1, + 5 + ], + "type": "integer", + "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.", + "example": 0, + "default": 0, + "api_fieldname": "device_execution_mode", + "readOnly": false, + "required": false, + "_key": "device_execution_mode" + }, + { + "type": "string", + "maxLength": 512, + "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", + "api_fieldname": "device_key", + "readOnly": false, + "required": false, + "_key": "device_key" + }, + { + "type": "string", + "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, + "api_fieldname": "endpoint_name", + "required": false, + "_key": "endpoint_name" + }, + { + "type": "string", + "description": "The endpoint type of the device. For example, the device is a gateway.", + "maxLength": 64, + "example": "", + "api_fieldname": "endpoint_type", + "readOnly": false, + "required": false, + "_key": "endpoint_type" + }, + { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The claim date/time.", + "api_fieldname": "enrolment_list_timestamp", + "readOnly": true, + "required": false, + "_key": "enrolment_list_timestamp" + }, + { + "type": "string", + "description": "The SHA256 checksum of the current firmware image.", + "example": "0000000000000000000000000000000000000000000000000000000000000000", + "api_fieldname": "firmware_checksum", + "readOnly": true, + "required": false, + "_key": "firmware_checksum" + }, + { + "description": "An array containing an ID of each group this device belongs to.", + "type": "array", + "items": { + "type": "string", + "example": "00000000000000000000000000000000" + }, + "api_fieldname": "groups", + "readOnly": true, + "required": false, + "_key": "groups" + }, + { + "type": "string", + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", + "example": "", + "api_fieldname": "host_gateway", + "readOnly": false, + "required": false, + "_key": "host_gateway" + }, + { + "type": "string", + "description": "The ID of the device. The device ID is used across all Device Management APIs.", + "example": "00000000000000000000000000000000", + "api_fieldname": "id", + "readOnly": false, + "required": true, + "_key": "id" + }, + { + "type": "string", + "pattern": "[A-Fa-f0-9]{64}", + "x-nullable": true, + "description": "SHA256 fingerprint of the certificate used to validate the signature of the device certificate.", + "example": "C42EDEFC75871E4CE2146FCDA67D03DDA05CC26FDF93B17B55F42C1EADFDC322", + "api_fieldname": "issuer_fingerprint", + "readOnly": false, + "required": false, + "_key": "issuer_fingerprint" + }, + { + "type": "string", + "description": "The reference of the block category.", + "pattern": "[a-f0-9_]{32}", + "example": "maintenance", + "api_fieldname": "last_operator_suspended_category", + "readOnly": true, + "required": false, + "_key": "last_operator_suspended_category" + }, + { + "type": "string", + "maxLength": 2000, + "description": "The most recent description why the device was suspended or returned to service.", + "example": "Suspended for maintenance.", + "api_fieldname": "last_operator_suspended_description", + "readOnly": true, + "required": false, + "_key": "last_operator_suspended_description" + }, + { + "type": "string", + "format": "date-time", + "description": "The timestamp of the most recent suspension activity.", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "last_operator_suspended_updated_at", + "readOnly": true, + "required": false, + "_key": "last_operator_suspended_updated_at" + }, + { + "type": "string", + "description": "The reference of the block category.", + "pattern": "[a-f0-9_]{32}", + "example": "maintenance", + "api_fieldname": "last_system_suspended_category", + "readOnly": true, + "required": false, + "_key": "last_system_suspended_category" + }, + { + "type": "string", + "maxLength": 2000, + "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.", + "api_fieldname": "last_system_suspended_description", + "readOnly": true, + "required": false, + "_key": "last_system_suspended_description" + }, + { + "type": "string", + "format": "date-time", + "description": "The timestamp of the most recent system block activity.", + "example": "2017-05-22T12:37:55.576563Z", + "api_fieldname": "last_system_suspended_updated_at", + "readOnly": true, + "required": false, + "_key": "last_system_suspended_updated_at" + }, + { + "type": "string", + "enum": [ + "enabled", + "blocked" + ], + "description": "The lifecycle status of the device.\n* Enabled: The device is allowed to connect to Pelion Device Management.\n* Blocked: The device is prevented from connecting to Pelion Device Management. Device can be, for example, 'suspended'.", + "example": "enabled", + "api_fieldname": "lifecycle_status", + "readOnly": true, + "required": false, + "enum_reference": "device_lifecycle_status_enum", + "_key": "lifecycle_status" + }, + { + "type": "string", + "description": "DEPRECATED: The URL for the current device manifest.", + "example": "", + "api_fieldname": "manifest", + "readOnly": false, + "required": false, + "_key": "manifest" + }, + { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The timestamp of the current manifest version.", + "api_fieldname": "manifest_timestamp", + "readOnly": true, + "required": false, + "_key": "manifest_timestamp" + }, + { + "enum": [ + "connector", + "direct" ], - "foreign_key_priority": "self", - "group_id": "Devices", - "operation_id": "getDeviceEnrollments", - "pagination": true, - "foreign_key": { - "group": "Devices", - "entity": "device_enrollment" - }, - "request_content_type": "application/json", - "request_body": "json", - "_key": "list" + "type": "string", + "description": "NOT USED: The ID of the channel used to communicate with the device.", + "api_fieldname": "mechanism", + "readOnly": false, + "required": false, + "enum_reference": "device_mechanism_enum", + "_key": "mechanism" + }, + { + "type": "string", + "description": "NOT USED: The address of the connector to use.", + "example": "", + "api_fieldname": "mechanism_url", + "readOnly": false, + "required": false, + "_key": "mechanism_url" + }, + { + "type": "string", + "maxLength": 128, + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", + "example": "00000000-0000-0000-0000-000000000000", + "api_fieldname": "name", + "readOnly": false, + "required": false, + "_key": "name" + }, + { + "type": "string", + "default": "", + "maxLength": 40, + "description": "Private network identifier. Used to group nodes connected to a specific border router.", + "example": "0000:0000:0000:0000:0000:0000:0000:0000", + "api_fieldname": "net_id", + "readOnly": true, + "required": false, + "_key": "net_id" + }, + { + "type": "boolean", + "description": "Device has been suspended by operator.", + "api_fieldname": "operator_suspended", + "readOnly": true, + "required": false, + "_key": "operator_suspended" + }, + { + "type": "string", + "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", + "api_fieldname": "serial_number", + "readOnly": false, + "required": false, + "_key": "serial_number" + }, + { + "enum": [ + "unenrolled", + "cloud_enrolling", + "bootstrapped", + "registered", + "deregistered" + ], + "type": "string", + "description": "The current state of the device.\n* Unenrolled: The device has been created, but has not yet bootstrapped or connected to Device Management.\n* 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.\n* Bootstrapped: The device has bootstrapped, and has credentials to connect to Device Management.\n* 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.\n* Deregistered: The device has requested deregistration, or its registration has expired.", + "api_fieldname": "state", + "readOnly": false, + "required": false, + "enum_reference": "device_state_enum", + "_key": "state" + }, + { + "type": "boolean", + "description": "Is the device suspended by the system?", + "api_fieldname": "system_suspended", + "readOnly": true, + "required": false, + "_key": "system_suspended" + }, + { + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "description": "The time this data object was updated.", + "api_fieldname": "updated_at", + "readOnly": true, + "required": false, + "_key": "updated_at" }, { - "description": "Check detailed enrollment info, for example, date of claim or expiration date.\n\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id}\n```", + "type": "string", + "description": "The device vendor ID.", + "example": "00000000-0000-0000-0000-000000000000", + "api_fieldname": "vendor_id", + "readOnly": false, + "required": false, + "_key": "vendor_id" + } + ], + "field_renames": [], + "tags": [ + "Device directory - devices", + "Device security - device certificate renewals", + "Device directory - groups" + ], + "group_id": "Devices", + "_key": "device" + }, + { + "swagger_models": [ + "EnrollmentId", + "EnrollmentIdentities", + "EnrollmentIdentity" + ], + "primary_key_field": "id", + "methods": [ + { + "description": "When the device connects to the bootstrap server and provides the enrollment ID, it is assigned to your account.\n
\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments \\\n-d '{\"enrollment_identity\": \"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\"}'\n```", "field_renames": [], "fields": [ { "type": "string", "description": "Enrollment identity.", - "pattern": "^[A-Za-z0-9]{32}", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "id", - "in": "path", + "pattern": "^A-[A-Za-z0-9:]{95}$", + "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", + "api_fieldname": "enrollment_identity", + "entity_fieldname": "enrollment_identity", + "parameter_fieldname": "enrollment_identity", + "in": "body", "required": true, - "_key": "id" + "_key": "enrollment_identity" } ], - "method": "get", - "mode": "read", + "method": "post", + "mode": "create", "responses": [ { - "description": "OK. Pending enrollment data.", + "description": "Created. The enrollment claim has been created and is waiting for the device to connect.", "schema": { "type": "object", "required": [ @@ -36367,10 +36210,10 @@ "entity": "device_enrollment" } }, - "_key": "200" + "_key": "201" }, { - "description": "Bad request. Invalid enrollment identity.", + "description": "Bad request. The enrollment identity is not valid.", "schema": { "type": "object", "required": [ @@ -36443,7 +36286,7 @@ "_key": "400" }, { - "description": "Not found.", + "description": "The provided access token is not valid.", "schema": { "type": "object", "required": [ @@ -36513,274 +36356,137 @@ } ] }, - "_key": "404" - } - ], - "path": "/v3/device-enrollments/{id}", - "summary": "Get details of an single enrollment by ID.", - "return_type": "device_enrollment", - "return_info": { - "self": true, - "custom": false, - "type": "device_enrollment" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "created_at", - "claimed_at", - "enrollment_identity", - "account_id", - "expires_at", - "enrolled_device_id" - ], - "group_id": "Devices", - "operation_id": "getDeviceEnrollment", - "pagination": false, - "request_content_type": "application/json", - "request_body": "json", - "_key": "read" - } - ], - "fields": [ - { - "type": "string", - "description": "ID", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "account_id", - "readOnly": true, - "required": false, - "_key": "account_id" - }, - { - "type": "string", - "description": "The time the device was claimed.", - "format": "date-time", - "api_fieldname": "claimed_at", - "readOnly": true, - "required": false, - "_key": "claimed_at" - }, - { - "type": "string", - "description": "The time of the enrollment identity creation.", - "format": "date-time", - "api_fieldname": "created_at", - "readOnly": true, - "required": false, - "_key": "created_at" - }, - { - "type": "string", - "description": "The ID of the device in the Device Directory once it is registered.", - "pattern": "^[A-Za-z0-9]{32}", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "enrolled_device_id", - "readOnly": true, - "required": false, - "_key": "enrolled_device_id" - }, - { - "type": "string", - "description": "Enrollment identity.", - "pattern": "^A-[A-Za-z0-9:]{95}$", - "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", - "api_fieldname": "enrollment_identity", - "readOnly": false, - "required": true, - "_key": "enrollment_identity" - }, - { - "type": "string", - "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", - "api_fieldname": "expires_at", - "readOnly": true, - "required": false, - "_key": "expires_at" - }, - { - "type": "string", - "description": "Enrollment identity.", - "pattern": "^[A-Za-z0-9]{32}", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "id", - "readOnly": false, - "required": true, - "_key": "id" - } - ], - "field_renames": [], - "tags": [ - "Public API" - ], - "group_id": "Devices", - "_key": "device_enrollment" - }, - { - "swagger_models": [ - "BulkResponse" - ], - "primary_key_field": "id", - "methods": [ - { - "description": "With bulk upload, you can upload a `CSV` file containing a number of enrollment IDs.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization: Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads\n\n```\n **To ensure your CSV file is valid:**\n 1. The first line of the file (header) is ignored.\n 1. Each line can contain comma-separated values, where the first value is the Enrollment ID. Everything after the first comma is ignored.\n 1. Valid enrollments begin with A followed by a - and 95 characters (examples below).\n 1. One enrollment ID per line. Empty lines are ignored.\n 1. Trailing comma at the end of the line is optional.\n 1. Lines are terminated with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n 1. Leading and trailing whitespace characters (Unicode U+0000 - U+0020) are removed from the identity before validation.\n 1. Empty identities are ignored.\n 1. Valid enrollment identities may be enclosed within quotation marks. Whitespace inside quotation marks is not trimmed and will cause validation to fail. Empty quotation marks are also invalid.\n 1. Use UTF-8 encoding.\n\n\n**A valid enrollment file:**\n```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\",\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\"\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:24:44:71:22:15:43:23:12, This text is ignored.\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12 , Whitespace is trimmed before validation.\n \"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\" , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A file containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\", First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12, Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12, Too-short identity.\n\"\", Empty quotation marks are an invalid identity\n\" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12 \", Whitespace inside quotation marks is not trimmed, causing an error.\n\n```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored\"\n\n,,\n, This is also considered a blank line.\n```", - "field_renames": [], - "fields": [ - { - "in": "stream", - "name": "enrollment_identities", - "type": "file", - "required": true, - "description": "The `CSV` file containing the enrollment IDs. The maximum file size is 10 MB.", - "entity_fieldname": "enrollment_identities", - "api_fieldname": "enrollment_identities", - "external_param": true, - "parameter_fieldname": "enrollment_identities", - "_key": "enrollment_identities" - } - ], - "method": "post", - "mode": "create", - "responses": [ + "_key": "401" + }, { - "description": "Bulk upload data received and asynchronous processing started.", + "description": "Conflict. The requested identity to add already exists on this or another account.", "schema": { "type": "object", "required": [ + "code", + "message", "object", - "id", - "etag", - "created_at", - "account_id", - "status", - "total_count", - "processed_count", - "errors_count", - "completet_at", - "full_report_file", - "errors_report_file" + "request_id", + "type" ], "properties": [ - { - "type": "string", - "description": "ID", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" - }, - { - "type": "string", - "description": "The time the bulk creation task was completed.\nNull when creating bulk upload or delete.", - "format": "date-time", - "api_fieldname": "completed_at", - "entity_fieldname": "completed_at", - "_key": "completed_at" - }, - { - "type": "string", - "description": "The time of receiving the bulk creation task.", - "format": "date-time", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" - }, { "type": "integer", - "example": 0, - "description": "The number of enrollment identities with failed processing.", - "api_fieldname": "errors_count", - "entity_fieldname": "errors_count", - "_key": "errors_count" - }, - { - "type": "string", - "description": "Link to error report file.\nNull when creating bulk upload or delete.", - "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", - "api_fieldname": "errors_report_file", - "entity_fieldname": "errors_report_file", - "_key": "errors_report_file" - }, - { - "type": "string", - "description": "etag", - "example": "1", - "pattern": "[A-Za-z0-9]{0,256}", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" }, { - "type": "string", - "description": "Link to full report file.\nNull when creating bulk upload or delete.", - "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", - "api_fieldname": "full_report_file", - "entity_fieldname": "full_report_file", - "_key": "full_report_file" + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" }, { "type": "string", - "description": "Bulk ID", - "pattern": "^[A-Za-z0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", + "description": "Entity name, always `error`.", "enum": [ - "enrollment-identity-bulk-uploads" + "error" ], - "example": "enrollment-identity-bulk-uploads", - "api_fieldname": "object", - "entity_fieldname": "object", "_key": "object" }, { - "type": "integer", - "example": 0, - "description": "The number of enrollment identities processed until now.", - "api_fieldname": "processed_count", - "entity_fieldname": "processed_count", - "_key": "processed_count" - }, - { - "enum": [ - "new", - "processing", - "completed" - ], - "default": "new", - "example": "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'.", "type": "string", - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" - }, - { - "type": "integer", - "example": 10, - "description": "Total number of enrollment identities found in the input CSV.", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "foreign_key": { - "group": "Devices", - "entity": "device_enrollment_bulk_delete" - } + ] }, - "_key": "201" + "_key": "409" + } + ], + "path": "/v3/device-enrollments", + "summary": "Create a single enrollment.", + "return_type": "device_enrollment", + "return_info": { + "self": true, + "custom": false, + "type": "device_enrollment" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "id", + "created_at", + "claimed_at", + "account_id", + "expires_at", + "enrolled_device_id" + ], + "group_id": "Devices", + "operation_id": "createDeviceEnrollment", + "pagination": false, + "request_content_type": "application/json", + "request_body": "json", + "_key": "create" + }, + { + "description": "To free a device from your account, delete the enrollment claim. To bypass the device ownership, you need to delete the enrollment and factory reset the device. For more information, see [Transferring ownership using First-to-Claim](https://www.pelion.com/docs/device-management/current/connecting/device-ownership-first-to-claim-by-enrollment-list.html).\n
\n**Example:**\n```\ncurl -X DELETE \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id}\n```", + "field_renames": [], + "fields": [ + { + "in": "path", + "name": "id", + "type": "string", + "required": true, + "description": "Enrollment identity.", + "entity_fieldname": "id", + "api_fieldname": "id", + "external_param": false, + "parameter_fieldname": "id", + "_key": "id" + } + ], + "method": "delete", + "mode": "delete", + "responses": [ + { + "description": "No content. The enrollment claim has been deleted.", + "_key": "204" }, { - "description": "Bad request.", + "description": "Bad request. Invalid enrollment identity.", "schema": { "type": "object", "required": [ @@ -36853,7 +36559,7 @@ "_key": "400" }, { - "description": "Invalid access token.", + "description": "Not found.", "schema": { "type": "object", "required": [ @@ -36923,90 +36629,16 @@ } ] }, - "_key": "401" + "_key": "404" } ], - "path": "/v3/device-enrollments-bulk-uploads", - "summary": "Bulk upload.", - "return_type": "device_enrollment_bulk_create", + "path": "/v3/device-enrollments/{id}", + "summary": "Delete an enrollment by ID.", + "return_type": "device_enrollment", "return_info": { "self": true, "custom": false, - "type": "device_enrollment_bulk_create" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter", - "id", - "account_id", - "created_at", - "status", - "total_count", - "processed_count", - "errors_count", - "completed_at", - "full_report_file", - "errors_report_file" - ], - "group_id": "Devices", - "operation_id": "createBulkDeviceEnrollment", - "pagination": false, - "request_content_type": "multipart/form-data", - "request_body": "file", - "_key": "create" - }, - { - "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", - "field_renames": [], - "fields": [], - "method": null, - "mode": "download_errors_report_file", - "responses": [], - "path": null, - "summary": "Download the error report file for the created the bulk enrollment.", - "return_type": "file", - "return_info": { - "self": false, - "custom": true, - "type": "file" - }, - "x_filter": {}, - "x_deprecation": null, - "drop_fields": [ - "object", - "etag", - "type", - "filter" - ], - "group_id": "Devices", - "custom_method": "download_errors_report_file", - "spec": { - "summary": "Download the error report file for the created the bulk enrollment.", - "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", - "return_type": "file" - }, - "request_content_type": "application/json", - "request_body": "json", - "_key": "download_errors_report_file" - }, - { - "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", - "field_renames": [], - "fields": [], - "method": null, - "mode": "download_full_report_file", - "responses": [], - "path": null, - "summary": "Download the full report file for the created of the bulk enrollment.", - "return_type": "file", - "return_info": { - "self": false, - "custom": true, - "type": "file" + "type": "device_enrollment" }, "x_filter": {}, "x_deprecation": null, @@ -37017,169 +36649,320 @@ "filter" ], "group_id": "Devices", - "custom_method": "download_full_report_file", - "spec": { - "summary": "Download the full report file for the created of the bulk enrollment.", - "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", - "return_type": "file" - }, + "operation_id": "deleteDeviceEnrollment", + "pagination": false, "request_content_type": "application/json", "request_body": "json", - "_key": "download_full_report_file" + "_key": "delete" }, { - "description": "Provides information on bulk upload for the given ID, for example, bulk status and number of processed enrollment identities. Provides links to bulk upload reports as well.\n\n**Report file format:**\nThe report files have a header line, and the values are separated by commas. Delimit lines with a line break (CRLF). Make sure the report file is compliant with IETF Informal CSV common format [RFC 4180](https://tools.ietf.org/html/rfc4180).\n\nAn example of a full report file:\n```\n\"entity__id\",\"entity__created_at\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n```\nAn example of an error report file:\n```\n\"entity__id\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n```\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/{id}\n```", + "description": "Provides a list of pending and claimed enrollments.\n\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments\n```\nWith query parameters:\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\n'https://api.us-east-1.mbedcloud.com/v3/device-enrollments?limit=10'\n```", "field_renames": [], "fields": [ { "type": "string", - "description": "Bulk ID", + "description": "Entity ID to fetch after.", + "example": "00005a4e027f0a580a01081c00000000", "pattern": "^[A-Za-z0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "parameter_fieldname": "id", - "in": "path", - "required": true, - "_key": "id" + "api_fieldname": "after", + "entity_fieldname": "after", + "name": "after", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "after", + "_key": "after" + }, + { + "name": "include", + "type": "string", + "in": "query", + "description": "Comma-separated additional data to return. Currently supported: total_count.", + "required": false, + "entity_fieldname": "include", + "api_fieldname": "include", + "external_param": true, + "parameter_fieldname": "include", + "_key": "include" + }, + { + "type": "integer", + "description": "Number of results to return (2-1000).", + "example": 50, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "name": "limit", + "in": "query", + "required": false, + "external_param": true, + "parameter_fieldname": "limit", + "_key": "limit" + }, + { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "example": "ASC", + "api_fieldname": "order", + "entity_fieldname": "order", + "name": "order", + "in": "query", + "description": "ASC or DESC", + "required": false, + "external_param": true, + "parameter_fieldname": "order", + "enum_reference": "device_enrollment_order_enum", + "_key": "order" } ], "method": "get", - "mode": "read", + "mode": "list", "responses": [ { - "description": "Bulk upload entity found.", + "description": "OK.", "schema": { "type": "object", "required": [ "object", - "id", - "etag", - "created_at", - "account_id", - "status", + "limit", + "after", + "order", + "has_more", "total_count", - "processed_count", - "errors_count", - "completet_at", - "full_report_file", - "errors_report_file" + "data" ], "properties": [ { "type": "string", "description": "ID", "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "account_id", - "entity_fieldname": "account_id", - "_key": "account_id" + "pattern": "^[A-Za-z0-9]{32}", + "api_fieldname": "after", + "entity_fieldname": "after", + "_key": "after" }, { - "type": "string", - "description": "The time the bulk creation task was completed.\nNull when creating bulk upload or delete.", - "format": "date-time", - "api_fieldname": "completed_at", - "entity_fieldname": "completed_at", - "_key": "completed_at" + "type": "array", + "items": { + "type": "object", + "required": [ + "object", + "id", + "etag", + "account_id", + "created_at", + "expires_at", + "claimed_at", + "enrollment_identity", + "enrolled_device_id" + ], + "properties": [ + { + "type": "string", + "description": "ID", + "example": "00005a4e027f0a580a01081c00000000", + "_key": "account_id" + }, + { + "type": "string", + "description": "The time the device was claimed.", + "format": "date-time", + "_key": "claimed_at" + }, + { + "type": "string", + "description": "The time of the enrollment identity creation.", + "format": "date-time", + "_key": "created_at" + }, + { + "type": "string", + "description": "The ID of the device in the Device Directory once it is registered.", + "pattern": "^[A-Za-z0-9]{32}", + "example": "00005a4e027f0a580a01081c00000000", + "_key": "enrolled_device_id" + }, + { + "type": "string", + "description": "Enrollment identity.", + "pattern": "^A-[A-Za-z0-9:]{95}$", + "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", + "_key": "enrollment_identity" + }, + { + "type": "string", + "pattern": "[A-Za-z0-9]{1,256}", + "example": "7642xfaxz", + "_key": "etag" + }, + { + "type": "string", + "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", + "_key": "expires_at" + }, + { + "type": "string", + "description": "Enrollment identity.", + "pattern": "^[A-Za-z0-9]{32}", + "example": "00005a4e027f0a580a01081c00000000", + "_key": "id" + }, + { + "type": "string", + "enum": [ + "enrollment" + ], + "example": "enrollment", + "_key": "object" + } + ], + "foreign_key": { + "group": "Devices", + "entity": "device_enrollment" + } + }, + "api_fieldname": "data", + "entity_fieldname": "data", + "_key": "data" }, { - "type": "string", - "description": "The time of receiving the bulk creation task.", - "format": "date-time", - "api_fieldname": "created_at", - "entity_fieldname": "created_at", - "_key": "created_at" + "type": "boolean", + "example": true, + "api_fieldname": "has_more", + "entity_fieldname": "has_more", + "_key": "has_more" }, { "type": "integer", - "example": 0, - "description": "The number of enrollment identities with failed processing.", - "api_fieldname": "errors_count", - "entity_fieldname": "errors_count", - "_key": "errors_count" - }, - { - "type": "string", - "description": "Link to error report file.\nNull when creating bulk upload or delete.", - "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", - "api_fieldname": "errors_report_file", - "entity_fieldname": "errors_report_file", - "_key": "errors_report_file" - }, - { - "type": "string", - "description": "etag", - "example": "1", - "pattern": "[A-Za-z0-9]{0,256}", - "api_fieldname": "etag", - "entity_fieldname": "etag", - "_key": "etag" - }, - { - "type": "string", - "description": "Link to full report file.\nNull when creating bulk upload or delete.", - "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", - "api_fieldname": "full_report_file", - "entity_fieldname": "full_report_file", - "_key": "full_report_file" - }, - { - "type": "string", - "description": "Bulk ID", - "pattern": "^[A-Za-z0-9]{32}", - "api_fieldname": "id", - "entity_fieldname": "id", - "_key": "id" + "description": "Range 2-1000, or default.", + "example": 50, + "minimum": 2, + "maximum": 1000, + "api_fieldname": "limit", + "entity_fieldname": "limit", + "_key": "limit" }, { "type": "string", "enum": [ - "enrollment-identity-bulk-uploads" + "list" ], - "example": "enrollment-identity-bulk-uploads", + "example": "list", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { - "type": "integer", - "example": 0, - "description": "The number of enrollment identities processed until now.", - "api_fieldname": "processed_count", - "entity_fieldname": "processed_count", - "_key": "processed_count" - }, - { + "type": "string", "enum": [ - "new", - "processing", - "completed" + "ASC", + "DESC" ], - "default": "new", - "example": "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'.", - "type": "string", - "api_fieldname": "status", - "entity_fieldname": "status", - "_key": "status" + "default": "ASC", + "example": "ASC", + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" }, { "type": "integer", - "example": 10, - "description": "Total number of enrollment identities found in the input CSV.", + "example": 100, + "format": "int32", + "minimum": 1, "api_fieldname": "total_count", "entity_fieldname": "total_count", "_key": "total_count" } ], + "pagination": true, "foreign_key": { "group": "Devices", - "entity": "device_enrollment_bulk_delete" + "entity": "device_enrollment" } }, "_key": "200" }, { - "description": "Bad request. Invalid bulk identity.", + "description": "Bad request. The access token could not be read.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "The provided access token is not valid.", "schema": { "type": "object", "required": [ @@ -37249,10 +37032,163 @@ } ] }, - "_key": "400" + "_key": "401" + } + ], + "path": "/v3/device-enrollments", + "summary": "Get a list of enrollments per account.", + "return_type": "paginated_response(device_enrollment)", + "return_info": { + "self": true, + "custom": false, + "type": "device_enrollment" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter", + "has_more", + "total_count", + "data" + ], + "foreign_key_priority": "self", + "group_id": "Devices", + "operation_id": "getDeviceEnrollments", + "pagination": true, + "foreign_key": { + "group": "Devices", + "entity": "device_enrollment" + }, + "request_content_type": "application/json", + "request_body": "json", + "_key": "list" + }, + { + "description": "Check detailed enrollment info, for example, date of claim or expiration date.\n\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id}\n```", + "field_renames": [], + "fields": [ + { + "type": "string", + "description": "Enrollment identity.", + "pattern": "^[A-Za-z0-9]{32}", + "example": "00005a4e027f0a580a01081c00000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "id", + "in": "path", + "required": true, + "_key": "id" + } + ], + "method": "get", + "mode": "read", + "responses": [ + { + "description": "OK. Pending enrollment data.", + "schema": { + "type": "object", + "required": [ + "object", + "id", + "etag", + "account_id", + "created_at", + "expires_at", + "claimed_at", + "enrollment_identity", + "enrolled_device_id" + ], + "properties": [ + { + "type": "string", + "description": "ID", + "example": "00005a4e027f0a580a01081c00000000", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" + }, + { + "type": "string", + "description": "The time the device was claimed.", + "format": "date-time", + "api_fieldname": "claimed_at", + "entity_fieldname": "claimed_at", + "_key": "claimed_at" + }, + { + "type": "string", + "description": "The time of the enrollment identity creation.", + "format": "date-time", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" + }, + { + "type": "string", + "description": "The ID of the device in the Device Directory once it is registered.", + "pattern": "^[A-Za-z0-9]{32}", + "example": "00005a4e027f0a580a01081c00000000", + "api_fieldname": "enrolled_device_id", + "entity_fieldname": "enrolled_device_id", + "_key": "enrolled_device_id" + }, + { + "type": "string", + "description": "Enrollment identity.", + "pattern": "^A-[A-Za-z0-9:]{95}$", + "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", + "api_fieldname": "enrollment_identity", + "entity_fieldname": "enrollment_identity", + "_key": "enrollment_identity" + }, + { + "type": "string", + "pattern": "[A-Za-z0-9]{1,256}", + "example": "7642xfaxz", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "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", + "api_fieldname": "expires_at", + "entity_fieldname": "expires_at", + "_key": "expires_at" + }, + { + "type": "string", + "description": "Enrollment identity.", + "pattern": "^[A-Za-z0-9]{32}", + "example": "00005a4e027f0a580a01081c00000000", + "api_fieldname": "id", + "entity_fieldname": "id", + "_key": "id" + }, + { + "type": "string", + "enum": [ + "enrollment" + ], + "example": "enrollment", + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + } + ], + "foreign_key": { + "group": "Devices", + "entity": "device_enrollment" + } + }, + "_key": "200" }, { - "description": "Invalid access token.", + "description": "Bad request. Invalid enrollment identity.", "schema": { "type": "object", "required": [ @@ -37322,7 +37258,7 @@ } ] }, - "_key": "401" + "_key": "400" }, { "description": "Not found.", @@ -37398,13 +37334,13 @@ "_key": "404" } ], - "path": "/v3/device-enrollments-bulk-uploads/{id}", - "summary": "Get bulk upload entity.", - "return_type": "device_enrollment_bulk_create", + "path": "/v3/device-enrollments/{id}", + "summary": "Get details of an single enrollment by ID.", + "return_type": "device_enrollment", "return_info": { "self": true, "custom": false, - "type": "device_enrollment_bulk_create" + "type": "device_enrollment" }, "x_filter": {}, "x_deprecation": null, @@ -37413,18 +37349,15 @@ "etag", "type", "filter", - "account_id", "created_at", - "status", - "total_count", - "processed_count", - "errors_count", - "completed_at", - "full_report_file", - "errors_report_file" + "claimed_at", + "enrollment_identity", + "account_id", + "expires_at", + "enrolled_device_id" ], "group_id": "Devices", - "operation_id": "getBulkDeviceEnrollment", + "operation_id": "getDeviceEnrollment", "pagination": false, "request_content_type": "application/json", "request_body": "json", @@ -37443,16 +37376,16 @@ }, { "type": "string", - "description": "The time the bulk creation task was completed.\nNull when creating bulk upload or delete.", + "description": "The time the device was claimed.", "format": "date-time", - "api_fieldname": "completed_at", + "api_fieldname": "claimed_at", "readOnly": true, "required": false, - "_key": "completed_at" + "_key": "claimed_at" }, { "type": "string", - "description": "The time of receiving the bulk creation task.", + "description": "The time of the enrollment identity creation.", "format": "date-time", "api_fieldname": "created_at", "readOnly": true, @@ -37460,82 +37393,51 @@ "_key": "created_at" }, { - "type": "integer", - "example": 0, - "description": "The number of enrollment identities with failed processing.", - "api_fieldname": "errors_count", + "type": "string", + "description": "The ID of the device in the Device Directory once it is registered.", + "pattern": "^[A-Za-z0-9]{32}", + "example": "00005a4e027f0a580a01081c00000000", + "api_fieldname": "enrolled_device_id", "readOnly": true, "required": false, - "_key": "errors_count" + "_key": "enrolled_device_id" }, { "type": "string", - "description": "Link to error report file.\nNull when creating bulk upload or delete.", - "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", - "api_fieldname": "errors_report_file", - "readOnly": true, - "required": false, - "_key": "errors_report_file" + "description": "Enrollment identity.", + "pattern": "^A-[A-Za-z0-9:]{95}$", + "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", + "api_fieldname": "enrollment_identity", + "readOnly": false, + "required": true, + "_key": "enrollment_identity" }, { "type": "string", - "description": "Link to full report file.\nNull when creating bulk upload or delete.", - "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", - "api_fieldname": "full_report_file", + "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", + "api_fieldname": "expires_at", "readOnly": true, "required": false, - "_key": "full_report_file" + "_key": "expires_at" }, { "type": "string", - "description": "Bulk ID", + "description": "Enrollment identity.", "pattern": "^[A-Za-z0-9]{32}", + "example": "00005a4e027f0a580a01081c00000000", "api_fieldname": "id", "readOnly": false, "required": true, "_key": "id" - }, - { - "type": "integer", - "example": 0, - "description": "The number of enrollment identities processed until now.", - "api_fieldname": "processed_count", - "readOnly": true, - "required": false, - "_key": "processed_count" - }, - { - "enum": [ - "new", - "processing", - "completed" - ], - "default": "new", - "example": "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'.", - "type": "string", - "api_fieldname": "status", - "readOnly": true, - "required": false, - "enum_reference": "device_enrollment_bulk_create_status_enum", - "_key": "status" - }, - { - "type": "integer", - "example": 10, - "description": "Total number of enrollment identities found in the input CSV.", - "api_fieldname": "total_count", - "readOnly": true, - "required": false, - "_key": "total_count" } ], "field_renames": [], "tags": [ - "Public API" + "Device ownership - enrollments" ], "group_id": "Devices", - "_key": "device_enrollment_bulk_create" + "_key": "device_enrollment" }, { "swagger_models": [ @@ -37544,7 +37446,7 @@ "primary_key_field": "id", "methods": [ { - "description": "With bulk delete, you can upload a `CSV` file containing a number of enrollment IDs to delete.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization: Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes\n\n```\n**To ensure your CSV file is valid:**\n1. The first line of the file (header) is ignored.\n1. Each line can contain comma-separated values, where the first value is the Enrollment ID. Everything after the first comma is ignored.\n1. Valid enrollments begin with A followed by a - and 95 characters (examples below).\n1. One enrollment ID per line. Empty lines are ignored.\n1. Trailing comma at the end of the line is optional.\n1. Lines are terminated with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n1. Leading and trailing whitespace characters (Unicode U+0000 - U+0020) are removed from the identity before validation.\n1. Empty identities are ignored.\n1. Valid enrollment identities may be enclosed within quotation marks. Whitespace inside quotation marks is not trimmed and will cause validation to fail. Empty quotation marks are also invalid.\n1. Use UTF-8 encoding.\n\n**A valid enrollment file:**\n```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\",\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\"\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:24:44:71:22:15:43:23:12, This text is ignored,\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12 , Whitespace is trimmed before validation.\n \"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\" , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A file containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\", First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12, Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12, Too-short identity.\n\"\", Empty quotation marks are an invalid identity.\n\" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12 \", Whitespace inside quotation marks is not trimmed, causing an error.\n\n```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored.\"\n\n,,\n, This is also considered to a blank line.\n```", + "description": "With bulk upload, you can upload a `CSV` file containing a number of enrollment IDs.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization: Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads\n\n```\n **To ensure your CSV file is valid:**\n 1. The first line of the file (header) is ignored.\n 1. Each line can contain comma-separated values, where the first value is the Enrollment ID. Everything after the first comma is ignored.\n 1. Valid enrollments begin with A followed by a - and 95 characters (examples below).\n 1. One enrollment ID per line. Empty lines are ignored.\n 1. Trailing comma at the end of the line is optional.\n 1. Lines are terminated with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n 1. Leading and trailing whitespace characters (Unicode U+0000 - U+0020) are removed from the identity before validation.\n 1. Empty identities are ignored.\n 1. Valid enrollment identities may be enclosed within quotation marks. Whitespace inside quotation marks is not trimmed and will cause validation to fail. Empty quotation marks are also invalid.\n 1. Use UTF-8 encoding.\n\n\n**A valid enrollment file:**\n```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\",\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\"\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:24:44:71:22:15:43:23:12, This text is ignored.\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12 , Whitespace is trimmed before validation.\n \"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\" , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A file containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\", First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12, Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12, Too-short identity.\n\"\", Empty quotation marks are an invalid identity\n\" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12 \", Whitespace inside quotation marks is not trimmed, causing an error.\n\n```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored\"\n\n,,\n, This is also considered a blank line.\n```", "field_renames": [], "fields": [ { @@ -37552,7 +37454,7 @@ "name": "enrollment_identities", "type": "file", "required": true, - "description": "The `CSV` file containing the enrollment IDs. The maximum file size is 10MB.", + "description": "The `CSV` file containing the enrollment IDs. The maximum file size is 10 MB.", "entity_fieldname": "enrollment_identities", "api_fieldname": "enrollment_identities", "external_param": true, @@ -37561,10 +37463,10 @@ } ], "method": "post", - "mode": "delete", + "mode": "create", "responses": [ { - "description": "Bulk delete data received and asynchronous processing started.", + "description": "Bulk upload data received and asynchronous processing started.", "schema": { "type": "object", "required": [ @@ -37616,6 +37518,7 @@ }, { "type": "string", + "x-nullable": true, "description": "Link to error report file.\nNull when creating bulk upload or delete.", "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", "api_fieldname": "errors_report_file", @@ -37633,6 +37536,7 @@ }, { "type": "string", + "x-nullable": true, "description": "Link to full report file.\nNull when creating bulk upload or delete.", "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", "api_fieldname": "full_report_file", @@ -37645,9 +37549,6 @@ "pattern": "^[A-Za-z0-9]{32}", "api_fieldname": "id", "entity_fieldname": "id", - "parameter_fieldname": "id", - "in": "path", - "required": true, "_key": "id" }, { @@ -37693,7 +37594,7 @@ ], "foreign_key": { "group": "Devices", - "entity": "device_enrollment_bulk_create" + "entity": "device_enrollment_bulk_delete" } }, "_key": "201" @@ -37845,13 +37746,13 @@ "_key": "401" } ], - "path": "/v3/device-enrollments-bulk-deletes", - "summary": "Bulk delete.", - "return_type": "device_enrollment_bulk_delete", + "path": "/v3/device-enrollments-bulk-uploads", + "summary": "Bulk upload.", + "return_type": "device_enrollment_bulk_create", "return_info": { "self": true, "custom": false, - "type": "device_enrollment_bulk_delete" + "type": "device_enrollment_bulk_create" }, "x_filter": {}, "x_deprecation": null, @@ -37872,11 +37773,11 @@ "errors_report_file" ], "group_id": "Devices", - "operation_id": "deleteBulkDeviceEnrollment", + "operation_id": "createBulkDeviceEnrollment", "pagination": false, "request_content_type": "multipart/form-data", "request_body": "file", - "_key": "delete" + "_key": "create" }, { "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", @@ -37886,7 +37787,7 @@ "mode": "download_errors_report_file", "responses": [], "path": null, - "summary": "Download the error report file for the bulk enrollment deletion.", + "summary": "Download the error report file for the created the bulk enrollment.", "return_type": "file", "return_info": { "self": false, @@ -37904,7 +37805,7 @@ "group_id": "Devices", "custom_method": "download_errors_report_file", "spec": { - "summary": "Download the error report file for the bulk enrollment deletion.", + "summary": "Download the error report file for the created the bulk enrollment.", "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", "return_type": "file" }, @@ -37920,7 +37821,7 @@ "mode": "download_full_report_file", "responses": [], "path": null, - "summary": "Download the full report file for the bulk enrollment deletion.", + "summary": "Download the full report file for the created of the bulk enrollment.", "return_type": "file", "return_info": { "self": false, @@ -37938,7 +37839,7 @@ "group_id": "Devices", "custom_method": "download_full_report_file", "spec": { - "summary": "Download the full report file for the bulk enrollment deletion.", + "summary": "Download the full report file for the created of the bulk enrollment.", "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", "return_type": "file" }, @@ -37947,7 +37848,7 @@ "_key": "download_full_report_file" }, { - "description": "Provides information on bulk delete for the given ID, for example, bulk status and the number of processed enrollment identities. Provides links to bulk delete reports as well.\n\n**Report file format:**\nThe report files have a header line and the value are separated by commas. The lines are delimited by a line break (CRLF). Make sure the report file is compliant with IETF Informal CSV common format [RFC 4180](https://tools.ietf.org/html/rfc4180).\n\nAn example of a full report file:\n```\n\"entity__id\",\"entity__deleted_at\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n```\nAn example of an error report file:\n```\n\"entity__id\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n```\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes/{id}\n```", + "description": "Provides information on bulk upload for the given ID, for example, bulk status and number of processed enrollment identities. Provides links to bulk upload reports as well.\n\n**Report file format:**\nThe report files have a header line, and the values are separated by commas. Delimit lines with a line break (CRLF). Make sure the report file is compliant with IETF Informal CSV common format [RFC 4180](https://tools.ietf.org/html/rfc4180).\n\nAn example of a full report file:\n```\n\"entity__id\",\"entity__created_at\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n```\nAn example of an error report file:\n```\n\"entity__id\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n```\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/{id}\n```", "field_renames": [], "fields": [ { @@ -37966,7 +37867,7 @@ "mode": "read", "responses": [ { - "description": "Bulk delete entity found.", + "description": "Bulk upload entity found.", "schema": { "type": "object", "required": [ @@ -38018,6 +37919,7 @@ }, { "type": "string", + "x-nullable": true, "description": "Link to error report file.\nNull when creating bulk upload or delete.", "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", "api_fieldname": "errors_report_file", @@ -38035,6 +37937,7 @@ }, { "type": "string", + "x-nullable": true, "description": "Link to full report file.\nNull when creating bulk upload or delete.", "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", "api_fieldname": "full_report_file", @@ -38047,9 +37950,6 @@ "pattern": "^[A-Za-z0-9]{32}", "api_fieldname": "id", "entity_fieldname": "id", - "parameter_fieldname": "id", - "in": "path", - "required": true, "_key": "id" }, { @@ -38095,7 +37995,7 @@ ], "foreign_key": { "group": "Devices", - "entity": "device_enrollment_bulk_create" + "entity": "device_enrollment_bulk_delete" } }, "_key": "200" @@ -38320,13 +38220,13 @@ "_key": "404" } ], - "path": "/v3/device-enrollments-bulk-deletes/{id}", - "summary": "Get bulk delete entity.", - "return_type": "device_enrollment_bulk_delete", + "path": "/v3/device-enrollments-bulk-uploads/{id}", + "summary": "Get bulk upload entity.", + "return_type": "device_enrollment_bulk_create", "return_info": { "self": true, "custom": false, - "type": "device_enrollment_bulk_delete" + "type": "device_enrollment_bulk_create" }, "x_filter": {}, "x_deprecation": null, @@ -38346,7 +38246,7 @@ "errors_report_file" ], "group_id": "Devices", - "operation_id": "getBulkDeviceEnrollmentDelete", + "operation_id": "getBulkDeviceEnrollment", "pagination": false, "request_content_type": "application/json", "request_body": "json", @@ -38392,6 +38292,7 @@ }, { "type": "string", + "x-nullable": true, "description": "Link to error report file.\nNull when creating bulk upload or delete.", "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", "api_fieldname": "errors_report_file", @@ -38401,6 +38302,7 @@ }, { "type": "string", + "x-nullable": true, "description": "Link to full report file.\nNull when creating bulk upload or delete.", "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", "api_fieldname": "full_report_file", @@ -38413,10 +38315,8 @@ "description": "Bulk ID", "pattern": "^[A-Za-z0-9]{32}", "api_fieldname": "id", - "parameter_fieldname": "id", - "in": "path", - "required": true, "readOnly": false, + "required": true, "_key": "id" }, { @@ -38441,7 +38341,7 @@ "api_fieldname": "status", "readOnly": true, "required": false, - "enum_reference": "device_enrollment_bulk_delete_status_enum", + "enum_reference": "device_enrollment_bulk_create_status_enum", "_key": "status" }, { @@ -38456,207 +38356,176 @@ ], "field_renames": [], "tags": [ - "Public API" + "Device ownership - enrollments" ], "group_id": "Devices", - "_key": "device_enrollment_bulk_delete" + "_key": "device_enrollment_bulk_create" }, { "swagger_models": [ - "BlackListedDeviceData", - "DenialAttemptsResponse" + "BulkResponse" ], "primary_key_field": "id", "methods": [ { - "description": "This produces a list of failed attempts to bootstrap using a particular certificate which is blacklisted (trusted_certificate).\nReturned list can be filtered by endpoint name. Trusted certificate ID filter is required.\n\n**Example usage:**\n```\ncurl -X GET -H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollment-denials?trusted_certificate_id__eq={cert-id}&endpoint_name__eq={endpoint_name}\n```\n", + "description": "With bulk delete, you can upload a `CSV` file containing a number of enrollment IDs to delete.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization: Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes\n\n```\n**To ensure your CSV file is valid:**\n1. The first line of the file (header) is ignored.\n1. Each line can contain comma-separated values, where the first value is the Enrollment ID. Everything after the first comma is ignored.\n1. Valid enrollments begin with A followed by a - and 95 characters (examples below).\n1. One enrollment ID per line. Empty lines are ignored.\n1. Trailing comma at the end of the line is optional.\n1. Lines are terminated with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n1. Leading and trailing whitespace characters (Unicode U+0000 - U+0020) are removed from the identity before validation.\n1. Empty identities are ignored.\n1. Valid enrollment identities may be enclosed within quotation marks. Whitespace inside quotation marks is not trimmed and will cause validation to fail. Empty quotation marks are also invalid.\n1. Use UTF-8 encoding.\n\n**A valid enrollment file:**\n```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\",\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\"\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:24:44:71:22:15:43:23:12, This text is ignored,\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12 , Whitespace is trimmed before validation.\n \"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\" , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A file containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\", First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12, Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23, Too-short identity.\n\"\", Empty quotation marks are an invalid identity.\n\" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12 \", Whitespace inside quotation marks is not trimmed, causing an error.\n\n```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored.\"\n\n,,\n, This is also considered to a blank line.\n```", "field_renames": [], "fields": [ { - "type": "string", - "description": "Optional parameter for pagination. Denied device ID.", - "api_fieldname": "after", - "entity_fieldname": "after", - "in": "query", - "name": "after", - "external_param": true, - "parameter_fieldname": "after", - "required": false, - "_key": "after" - }, - { - "type": "integer", - "description": "Optional parameter for pagination.", - "example": 50, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "in": "query", - "name": "limit", - "external_param": true, - "parameter_fieldname": "limit", - "required": false, - "_key": "limit" - }, - { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Optional parameter for pagination.", - "example": "DESC", - "api_fieldname": "order", - "entity_fieldname": "order", - "in": "query", - "name": "order", + "in": "stream", + "name": "enrollment_identities", + "type": "file", + "required": true, + "description": "The `CSV` file containing the enrollment IDs. The maximum file size is 10MB.", + "entity_fieldname": "enrollment_identities", + "api_fieldname": "enrollment_identities", "external_param": true, - "parameter_fieldname": "order", - "required": false, - "enum_reference": "device_enrollment_denial_order_enum", - "_key": "order" + "parameter_fieldname": "enrollment_identities", + "_key": "enrollment_identities" } ], - "method": "get", - "mode": "list", + "method": "post", + "mode": "delete", "responses": [ { - "description": "Query Success. Responding with List of Devices.", + "description": "Bulk delete data received and asynchronous processing started.", "schema": { "type": "object", "required": [ "object", - "data" + "id", + "etag", + "created_at", + "account_id", + "status", + "total_count", + "processed_count", + "errors_count", + "completet_at", + "full_report_file", + "errors_report_file" ], "properties": [ { "type": "string", - "description": "An offset token for current page.", - "api_fieldname": "after", - "entity_fieldname": "after", - "_key": "after" + "description": "ID", + "example": "00005a4e027f0a580a01081c00000000", + "api_fieldname": "account_id", + "entity_fieldname": "account_id", + "_key": "account_id" }, { - "items": { - "required": [ - "id", - "account_id", - "endpoint_name", - "trusted_certificate_id", - "created_at", - "object" - ], - "properties": [ - { - "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "account id", - "example": "00005a4e027f0a580a01081c00000000", - "_key": "account_id" - }, - { - "type": "string", - "format": "date-time", - "description": "date on which the failed bootstrap was attempted on", - "example": "2000-01-23T04:56:07.000+00:00", - "_key": "created_at" - }, - { - "type": "string", - "description": "endpoint name", - "example": "Endpoint_1234", - "_key": "endpoint_name" - }, - { - "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "id of the recorded failed bootstrap attempt", - "example": "00005a4e027f0a580a04567c00000000", - "_key": "id" - }, - { - "type": "string", - "enum": [ - "denied_device" - ], - "_key": "object" - }, - { - "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "Trusted certificate id", - "example": "00005a4e027f0a580a01081c00000000", - "_key": "trusted_certificate_id" - } - ], - "foreign_key": { - "group": "Devices", - "entity": "device_enrollment_denial" - } - }, - "type": "array", - "api_fieldname": "data", - "entity_fieldname": "data", - "_key": "data" + "type": "string", + "description": "The time the bulk creation task was completed.\nNull when creating bulk upload or delete.", + "format": "date-time", + "api_fieldname": "completed_at", + "entity_fieldname": "completed_at", + "_key": "completed_at" }, { - "type": "boolean", - "description": "Are there more results available.", - "example": false, - "api_fieldname": "has_more", - "entity_fieldname": "has_more", - "_key": "has_more" + "type": "string", + "description": "The time of receiving the bulk creation task.", + "format": "date-time", + "api_fieldname": "created_at", + "entity_fieldname": "created_at", + "_key": "created_at" }, { "type": "integer", - "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, - "minimum": 2, - "maximum": 1000, - "api_fieldname": "limit", - "entity_fieldname": "limit", - "_key": "limit" + "example": 0, + "description": "The number of enrollment identities with failed processing.", + "api_fieldname": "errors_count", + "entity_fieldname": "errors_count", + "_key": "errors_count" }, { "type": "string", - "description": "The type of this API object is a \"list\".", - "example": "list", + "x-nullable": true, + "description": "Link to error report file.\nNull when creating bulk upload or delete.", + "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", + "api_fieldname": "errors_report_file", + "entity_fieldname": "errors_report_file", + "_key": "errors_report_file" + }, + { + "type": "string", + "description": "etag", + "example": "1", + "pattern": "[A-Za-z0-9]{0,256}", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "x-nullable": true, + "description": "Link to full report file.\nNull when creating bulk upload or delete.", + "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", + "api_fieldname": "full_report_file", + "entity_fieldname": "full_report_file", + "_key": "full_report_file" + }, + { + "type": "string", + "description": "Bulk ID", + "pattern": "^[A-Za-z0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "id", + "in": "path", + "required": true, + "_key": "id" + }, + { + "type": "string", + "enum": [ + "enrollment-identity-bulk-uploads" + ], + "example": "enrollment-identity-bulk-uploads", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { - "type": "string", + "type": "integer", + "example": 0, + "description": "The number of enrollment identities processed until now.", + "api_fieldname": "processed_count", + "entity_fieldname": "processed_count", + "_key": "processed_count" + }, + { "enum": [ - "ASC", - "DESC" + "new", + "processing", + "completed" ], - "description": "The creation time based order of the entries.", - "example": "DESC", - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" + "default": "new", + "example": "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'.", + "type": "string", + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" }, { - "format": "integer", "type": "integer", - "example": 1, + "example": 10, + "description": "Total number of enrollment identities found in the input CSV.", "api_fieldname": "total_count", "entity_fieldname": "total_count", "_key": "total_count" } ], - "pagination": true, "foreign_key": { "group": "Devices", - "entity": "device_enrollment_denial" + "entity": "device_enrollment_bulk_create" } }, - "_key": "200" + "_key": "201" }, { - "description": "JWT validation failed.", + "description": "Bad request.", "schema": { "type": "object", "required": [ @@ -38726,10 +38595,10 @@ } ] }, - "_key": "401" + "_key": "400" }, { - "description": "ID set in pagination parameter `after` not found.", + "description": "Invalid access token.", "schema": { "type": "object", "required": [ @@ -38799,85 +38668,151 @@ } ] }, - "_key": "404" + "_key": "401" } ], - "path": "/v3/device-enrollment-denials", - "summary": "Return list of devices which were denied to bootstrap due to being subjected to blacklisting.", - "return_type": "paginated_response(device_enrollment_denial)", + "path": "/v3/device-enrollments-bulk-deletes", + "summary": "Bulk delete.", + "return_type": "device_enrollment_bulk_delete", "return_info": { "self": true, "custom": false, - "type": "device_enrollment_denial" - }, - "x_filter": { - "trusted_certificate_id": [ - "eq" - ], - "endpoint_name": [ - "eq" - ] + "type": "device_enrollment_bulk_delete" }, + "x_filter": {}, "x_deprecation": null, "drop_fields": [ "object", "etag", "type", "filter", - "has_more", + "id", + "account_id", + "created_at", + "status", "total_count", - "data", - "trusted_certificate_id__eq", - "endpoint_name__eq" + "processed_count", + "errors_count", + "completed_at", + "full_report_file", + "errors_report_file" ], - "foreign_key_priority": "self", "group_id": "Devices", - "operation_id": "listEnrollmentDenialAttempts", - "pagination": true, - "foreign_key": { - "group": "Devices", - "entity": "device_enrollment_denial" + "operation_id": "deleteBulkDeviceEnrollment", + "pagination": false, + "request_content_type": "multipart/form-data", + "request_body": "file", + "_key": "delete" + }, + { + "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", + "field_renames": [], + "fields": [], + "method": null, + "mode": "download_errors_report_file", + "responses": [], + "path": null, + "summary": "Download the error report file for the bulk enrollment deletion.", + "return_type": "file", + "return_info": { + "self": false, + "custom": true, + "type": "file" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter" + ], + "group_id": "Devices", + "custom_method": "download_errors_report_file", + "spec": { + "summary": "Download the error report file for the bulk enrollment deletion.", + "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", + "return_type": "file" }, "request_content_type": "application/json", "request_body": "json", - "_key": "list" + "_key": "download_errors_report_file" + }, + { + "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", + "field_renames": [], + "fields": [], + "method": null, + "mode": "download_full_report_file", + "responses": [], + "path": null, + "summary": "Download the full report file for the bulk enrollment deletion.", + "return_type": "file", + "return_info": { + "self": false, + "custom": true, + "type": "file" + }, + "x_filter": {}, + "x_deprecation": null, + "drop_fields": [ + "object", + "etag", + "type", + "filter" + ], + "group_id": "Devices", + "custom_method": "download_full_report_file", + "spec": { + "summary": "Download the full report file for the bulk enrollment deletion.", + "description": "This method will download the CSV file containing detailed information on status of the bulk enrollment.", + "return_type": "file" + }, + "request_content_type": "application/json", + "request_body": "json", + "_key": "download_full_report_file" }, { - "description": "Query for a single attempt to bootstrap with a blacklisted certificate by ID.\n\n**Example usage:**\n```\ncurl -X GET -H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollment-denials/{device_enrollment_denial_id}\n```\n", + "description": "Provides information on bulk delete for the given ID, for example, bulk status and the number of processed enrollment identities. Provides links to bulk delete reports as well.\n\n**Report file format:**\nThe report files have a header line and the value are separated by commas. The lines are delimited by a line break (CRLF). Make sure the report file is compliant with IETF Informal CSV common format [RFC 4180](https://tools.ietf.org/html/rfc4180).\n\nAn example of a full report file:\n```\n\"entity__id\",\"entity__deleted_at\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"2018-09-07T12:10:58.428Z\",\"\",\"\",\"\",\"\"\n```\nAn example of an error report file:\n```\n\"entity__id\",\"error__code\",\"error__type\",\"error__message\",\"error__fields\"\n\"A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n\"A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72\",\"409\",\"duplicate\",\"Enrollment identity is already claimed in the mbed Cloud.\",\"\"\n```\n**Example:**\n```\ncurl -X GET \\\n-H 'Authorization: Bearer ' \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes/{id}\n```", "field_renames": [], "fields": [ { - "in": "path", - "name": "device_enrollment_denial_id", "type": "string", - "description": "id of the recorded failed bootstrap attempt", + "description": "Bulk ID", + "pattern": "^[A-Za-z0-9]{32}", + "api_fieldname": "id", + "entity_fieldname": "id", + "parameter_fieldname": "id", + "in": "path", "required": true, - "entity_fieldname": "device_enrollment_denial_id", - "api_fieldname": "device_enrollment_denial_id", - "external_param": true, - "parameter_fieldname": "device_enrollment_denial_id", - "_key": "device_enrollment_denial_id" + "_key": "id" } ], "method": "get", "mode": "read", "responses": [ { - "description": "Query Success. Responding with blacklisted device.", + "description": "Bulk delete entity found.", "schema": { + "type": "object", "required": [ + "object", "id", - "account_id", - "endpoint_name", - "trusted_certificate_id", + "etag", "created_at", - "object" + "account_id", + "status", + "total_count", + "processed_count", + "errors_count", + "completet_at", + "full_report_file", + "errors_report_file" ], "properties": [ { "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "account id", + "description": "ID", "example": "00005a4e027f0a580a01081c00000000", "api_fieldname": "account_id", "entity_fieldname": "account_id", @@ -38885,58 +38820,189 @@ }, { "type": "string", + "description": "The time the bulk creation task was completed.\nNull when creating bulk upload or delete.", + "format": "date-time", + "api_fieldname": "completed_at", + "entity_fieldname": "completed_at", + "_key": "completed_at" + }, + { + "type": "string", + "description": "The time of receiving the bulk creation task.", "format": "date-time", - "description": "date on which the failed bootstrap was attempted on", - "example": "2000-01-23T04:56:07.000+00:00", "api_fieldname": "created_at", "entity_fieldname": "created_at", "_key": "created_at" }, + { + "type": "integer", + "example": 0, + "description": "The number of enrollment identities with failed processing.", + "api_fieldname": "errors_count", + "entity_fieldname": "errors_count", + "_key": "errors_count" + }, { "type": "string", - "description": "endpoint name", - "example": "Endpoint_1234", - "api_fieldname": "endpoint_name", - "entity_fieldname": "endpoint_name", - "_key": "endpoint_name" + "x-nullable": true, + "description": "Link to error report file.\nNull when creating bulk upload or delete.", + "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", + "api_fieldname": "errors_report_file", + "entity_fieldname": "errors_report_file", + "_key": "errors_report_file" }, { "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "id of the recorded failed bootstrap attempt", - "example": "00005a4e027f0a580a04567c00000000", + "description": "etag", + "example": "1", + "pattern": "[A-Za-z0-9]{0,256}", + "api_fieldname": "etag", + "entity_fieldname": "etag", + "_key": "etag" + }, + { + "type": "string", + "x-nullable": true, + "description": "Link to full report file.\nNull when creating bulk upload or delete.", + "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", + "api_fieldname": "full_report_file", + "entity_fieldname": "full_report_file", + "_key": "full_report_file" + }, + { + "type": "string", + "description": "Bulk ID", + "pattern": "^[A-Za-z0-9]{32}", "api_fieldname": "id", "entity_fieldname": "id", + "parameter_fieldname": "id", + "in": "path", + "required": true, "_key": "id" }, { "type": "string", "enum": [ - "denied_device" + "enrollment-identity-bulk-uploads" ], + "example": "enrollment-identity-bulk-uploads", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" }, { + "type": "integer", + "example": 0, + "description": "The number of enrollment identities processed until now.", + "api_fieldname": "processed_count", + "entity_fieldname": "processed_count", + "_key": "processed_count" + }, + { + "enum": [ + "new", + "processing", + "completed" + ], + "default": "new", + "example": "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'.", "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "Trusted certificate id", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "trusted_certificate_id", - "entity_fieldname": "trusted_certificate_id", - "_key": "trusted_certificate_id" + "api_fieldname": "status", + "entity_fieldname": "status", + "_key": "status" + }, + { + "type": "integer", + "example": 10, + "description": "Total number of enrollment identities found in the input CSV.", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" } ], "foreign_key": { "group": "Devices", - "entity": "device_enrollment_denial" + "entity": "device_enrollment_bulk_create" } }, "_key": "200" }, { - "description": "JWT validation failed.", + "description": "Bad request. Invalid bulk identity.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Invalid access token.", "schema": { "type": "object", "required": [ @@ -39009,7 +39075,7 @@ "_key": "401" }, { - "description": "ID not found.", + "description": "Not found.", "schema": { "type": "object", "required": [ @@ -39082,13 +39148,13 @@ "_key": "404" } ], - "path": "/v3/device-enrollment-denials/{device_enrollment_denial_id}", - "summary": "Query for a single device by ID", - "return_type": "device_enrollment_denial", + "path": "/v3/device-enrollments-bulk-deletes/{id}", + "summary": "Get bulk delete entity.", + "return_type": "device_enrollment_bulk_delete", "return_info": { "self": true, "custom": false, - "type": "device_enrollment_denial" + "type": "device_enrollment_bulk_delete" }, "x_filter": {}, "x_deprecation": null, @@ -39097,14 +39163,18 @@ "etag", "type", "filter", - "id", "account_id", - "endpoint_name", - "trusted_certificate_id", - "created_at" + "created_at", + "status", + "total_count", + "processed_count", + "errors_count", + "completed_at", + "full_report_file", + "errors_report_file" ], "group_id": "Devices", - "operation_id": "getEnrollmentDenialAttempt", + "operation_id": "getBulkDeviceEnrollmentDelete", "pagination": false, "request_content_type": "application/json", "request_body": "json", @@ -39114,8 +39184,7 @@ "fields": [ { "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "account id", + "description": "ID", "example": "00005a4e027f0a580a01081c00000000", "api_fieldname": "account_id", "readOnly": true, @@ -39124,50 +39193,103 @@ }, { "type": "string", + "description": "The time the bulk creation task was completed.\nNull when creating bulk upload or delete.", + "format": "date-time", + "api_fieldname": "completed_at", + "readOnly": true, + "required": false, + "_key": "completed_at" + }, + { + "type": "string", + "description": "The time of receiving the bulk creation task.", "format": "date-time", - "description": "date on which the failed bootstrap was attempted on", - "example": "2000-01-23T04:56:07.000+00:00", "api_fieldname": "created_at", "readOnly": true, "required": false, "_key": "created_at" }, + { + "type": "integer", + "example": 0, + "description": "The number of enrollment identities with failed processing.", + "api_fieldname": "errors_count", + "readOnly": true, + "required": false, + "_key": "errors_count" + }, { "type": "string", - "description": "endpoint name", - "example": "Endpoint_1234", - "api_fieldname": "endpoint_name", + "x-nullable": true, + "description": "Link to error report file.\nNull when creating bulk upload or delete.", + "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv", + "api_fieldname": "errors_report_file", "readOnly": true, "required": false, - "_key": "endpoint_name" + "_key": "errors_report_file" }, { "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "id of the recorded failed bootstrap attempt", - "example": "00005a4e027f0a580a04567c00000000", - "api_fieldname": "id", + "x-nullable": true, + "description": "Link to full report file.\nNull when creating bulk upload or delete.", + "example": "https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv", + "api_fieldname": "full_report_file", "readOnly": true, "required": false, + "_key": "full_report_file" + }, + { + "type": "string", + "description": "Bulk ID", + "pattern": "^[A-Za-z0-9]{32}", + "api_fieldname": "id", + "parameter_fieldname": "id", + "in": "path", + "required": true, + "readOnly": false, "_key": "id" }, { + "type": "integer", + "example": 0, + "description": "The number of enrollment identities processed until now.", + "api_fieldname": "processed_count", + "readOnly": true, + "required": false, + "_key": "processed_count" + }, + { + "enum": [ + "new", + "processing", + "completed" + ], + "default": "new", + "example": "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'.", "type": "string", - "pattern": "[a-f0-9]{32}", - "description": "Trusted certificate id", - "example": "00005a4e027f0a580a01081c00000000", - "api_fieldname": "trusted_certificate_id", + "api_fieldname": "status", "readOnly": true, "required": false, - "_key": "trusted_certificate_id" + "enum_reference": "device_enrollment_bulk_delete_status_enum", + "_key": "status" + }, + { + "type": "integer", + "example": 10, + "description": "Total number of enrollment identities found in the input CSV.", + "api_fieldname": "total_count", + "readOnly": true, + "required": false, + "_key": "total_count" } ], "field_renames": [], "tags": [ - "EnrollmentDenials" + "Device ownership - enrollments" ], "group_id": "Devices", - "_key": "device_enrollment_denial" + "_key": "device_enrollment_bulk_delete" }, { "swagger_models": [ @@ -39177,7 +39299,7 @@ "primary_key_field": "id", "methods": [ { - "description": "List all device events for an account.\n\n**Example:**\nFollowing example gets device-events limiting returned results to max 5 events\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?limit=5 \\\n-H 'Authorization: Bearer '\n```\nor to get events for certain device filter based on device_id:\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?device_id= \\\n-H 'Authorization: Bearer '\n```", + "description": "List all or a filtered list of device events for the account. Device events are events significant to operation or lifetime, such as creation, firmware update, and suspension.\n\nTo see statistics for device connectivity and usage, use the [Statistics API](https://www.pelion.com/docs/device-management-api/connect-statistics/).\n\n **Example:**\n Following example gets device-events limiting returned results to max 5 events\n ```\n curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?limit=5 \\\n -H 'Authorization: Bearer '\n ```\n or to get events for certain device filter based on device_id:\n ```\n curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?device_id= \\\n -H 'Authorization: Bearer '\n ```", "field_renames": [], "fields": [ { @@ -39314,7 +39436,7 @@ { "type": "string", "example": "FAIL_MANIFEST_REJECTED", - "description": "Category code which groups the event type by a summary category.", + "description": "Category code that groups the event type by a summary category.", "_key": "event_type_category" }, { @@ -39500,7 +39622,7 @@ "_key": "list" }, { - "description": "Retrieve a specific device event.\n\n**Example:**\nTo fetch a specific event you can use the 'id' field form the '/v3/device-events'. Form of '016c03d40a4e000000000001001003b4'\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events/ \\\n-H 'Authorization: Bearer '\n```", + "description": "\"Retrieve a specific device event. See '/v3/device-events/' for information on device events, and how to get the device_event_id.\"\n\n**Example:**\nTo fetch a specific event you can use the 'id' field from '/v3/device-events'. Form of '016c03d40a4e000000000001001003b4'\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events/ \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -39600,7 +39722,7 @@ { "type": "string", "example": "FAIL_MANIFEST_REJECTED", - "description": "Category code which groups the event type by a summary category.", + "description": "Category code that groups the event type by a summary category.", "api_fieldname": "event_type_category", "entity_fieldname": "event_type_category", "_key": "event_type_category" @@ -39775,7 +39897,7 @@ { "type": "string", "example": "FAIL_MANIFEST_REJECTED", - "description": "Category code which groups the event type by a summary category.", + "description": "Category code that groups the event type by a summary category.", "api_fieldname": "event_type_category", "readOnly": true, "required": false, @@ -39823,7 +39945,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Add one device to a group.", + "description": "Add one device to a group. A device can be in multiple groups.", "field_renames": [], "fields": [ { @@ -40135,7 +40257,7 @@ }, { "type": "string", - "maxLength": 2000, + "maxLength": 1024, "description": "The description of the group.", "example": "Devices on the factory floor.", "api_fieldname": "description", @@ -40173,7 +40295,7 @@ { "type": "string", "format": "date-time", - "description": "The time the campaign was created.", + "description": "The time the group was created.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "created_at", "entity_fieldname": "created_at", @@ -40197,7 +40319,7 @@ }, { "type": "string", - "maxLength": 2000, + "maxLength": 1024, "description": "The description of the group.", "example": "Devices on the factory floor.", "api_fieldname": "description", @@ -40248,7 +40370,7 @@ { "type": "string", "format": "date-time", - "description": "The time the object was updated.", + "description": "The time this object was updated.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "updated_at", "entity_fieldname": "updated_at", @@ -40513,7 +40635,7 @@ "_key": "create" }, { - "description": "Delete a group.", + "description": "Delete a group. This deletes the group, but not the devices in the group.", "field_renames": [], "fields": [ { @@ -40710,7 +40832,7 @@ "_key": "delete" }, { - "description": "Get a page of devices.", + "description": "Get a page of devices in a specified group.", "field_renames": [], "fields": [ { @@ -40834,7 +40956,7 @@ }, "operator_suspended": { "type": "boolean", - "description": "Is the device suspended by the operator?" + "description": "Device has been suspended by operator." }, "last_operator_suspended_category": { "type": "string", @@ -40882,7 +41004,7 @@ "enabled", "blocked" ], - "description": "The lifecycle status of the device.", + "description": "The lifecycle status of the device.\n* Enabled: The device is allowed to connect to Pelion Device Management.\n* Blocked: The device is prevented from connecting to Pelion Device Management. Device can be, for example, 'suspended'.", "example": "enabled" }, "account_id": { @@ -40912,6 +41034,18 @@ "description": "The certificate issuer's ID.", "example": "00000000000000000000000000000000" }, + "component_attributes": { + "type": "object", + "maxProperties": 10, + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "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" + } + }, "connector_expiration_date": { "format": "date", "type": "string", @@ -40954,7 +41088,7 @@ "type": "string", "maxLength": 2000, "description": "The description of the device.", - "example": "description" + "example": "Temperature measuring device" }, "device_class": { "type": "string", @@ -40975,7 +41109,7 @@ }, "endpoint_name": { "type": "string", - "description": "The endpoint name given to the device.", + "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 }, @@ -40998,7 +41132,7 @@ }, "host_gateway": { "type": "string", - "description": "The ID of the host gateway, if appropriate.", + "description": "The ID of the host gateway, if appropriate. A device behind Edge has this host_gateway set.", "example": "" }, "manifest": { @@ -41018,19 +41152,26 @@ "direct" ], "type": "string", - "description": "The ID of the channel used to communicate with the device." + "description": "NOT USED: The ID of the channel used to communicate with the device." }, "mechanism_url": { "type": "string", - "description": "The address of the connector to use.", + "description": "NOT USED: The address of the connector to use.", "example": "" }, "name": { "type": "string", "maxLength": 128, - "description": "The name of the device.", + "description": "The name given by the web application for the device. Device itself provides only the endpoint_name.", "example": "00000000-0000-0000-0000-000000000000" }, + "net_id": { + "type": "string", + "default": "", + "maxLength": 40, + "description": "Private network identifier. Used to group nodes connected to a specific border router.", + "example": "0000:0000:0000:0000:0000:0000:0000:0000" + }, "object": { "type": "string", "description": "The API resource entity.", @@ -41038,7 +41179,7 @@ }, "serial_number": { "type": "string", - "description": "The serial number of the device.", + "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" }, "state": { @@ -41050,13 +41191,13 @@ "deregistered" ], "type": "string", - "description": "The current state of the device." + "description": "The current state of the device.\n* Unenrolled: The device has been created, but has not yet bootstrapped or connected to Device Management.\n* 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.\n* Bootstrapped: The device has bootstrapped, and has credentials to connect to Device Management.\n* 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.\n* Deregistered: The device has requested deregistration, or its registration has expired." }, "updated_at": { "format": "date-time", "example": "2017-05-22T12:37:55.576563Z", "type": "string", - "description": "The time the object was updated." + "description": "The time this data object was updated." }, "vendor_id": { "type": "string", @@ -41547,6 +41688,12 @@ "in", "nin" ], + "net_id": [ + "eq", + "neq", + "in", + "nin" + ], "serial_number": [ "eq", "neq", @@ -41699,6 +41846,10 @@ "name__neq", "name__in", "name__nin", + "net_id__eq", + "net_id__neq", + "net_id__in", + "net_id__nin", "serial_number__eq", "serial_number__neq", "serial_number__in", @@ -41811,7 +41962,7 @@ { "type": "string", "format": "date-time", - "description": "The time the campaign was created.", + "description": "The time the group was created.", "example": "2017-05-22T12:37:55.576563Z", "_key": "created_at" }, @@ -41831,7 +41982,7 @@ }, { "type": "string", - "maxLength": 2000, + "maxLength": 1024, "description": "The description of the group.", "example": "Devices on the factory floor.", "_key": "description" @@ -41870,7 +42021,7 @@ { "type": "string", "format": "date-time", - "description": "The time the object was updated.", + "description": "The time this object was updated.", "example": "2017-05-22T12:37:55.576563Z", "_key": "updated_at" } @@ -42173,7 +42324,7 @@ "_key": "list" }, { - "description": "Get a group.", + "description": "Returns [DeviceGroup](https://www.pelion.com/docs/device-management-api/device-directory/) info what contains info of the group, for example, name and updated date. To list the devices in the group, use '/v3/device-groups/{device-group-id}/devices/'.", "field_renames": [], "fields": [ { @@ -42199,7 +42350,7 @@ { "type": "string", "format": "date-time", - "description": "The time the campaign was created.", + "description": "The time the group was created.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "created_at", "entity_fieldname": "created_at", @@ -42223,7 +42374,7 @@ }, { "type": "string", - "maxLength": 2000, + "maxLength": 1024, "description": "The description of the group.", "example": "Devices on the factory floor.", "api_fieldname": "description", @@ -42274,7 +42425,7 @@ { "type": "string", "format": "date-time", - "description": "The time the object was updated.", + "description": "The time this object was updated.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "updated_at", "entity_fieldname": "updated_at", @@ -42827,7 +42978,7 @@ "_key": "remove_device" }, { - "description": "Modify the attributes of a group.", + "description": "Modify the attributes of a group, such as the description.", "field_renames": [], "fields": [ { @@ -42853,7 +43004,7 @@ }, { "type": "string", - "maxLength": 2000, + "maxLength": 1024, "description": "The description of the group.", "example": "Devices on the factory floor.", "api_fieldname": "description", @@ -42902,7 +43053,7 @@ { "type": "string", "format": "date-time", - "description": "The time the campaign was created.", + "description": "The time the group was created.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "created_at", "entity_fieldname": "created_at", @@ -42926,7 +43077,7 @@ }, { "type": "string", - "maxLength": 2000, + "maxLength": 1024, "description": "The description of the group.", "example": "Devices on the factory floor.", "api_fieldname": "description", @@ -42977,7 +43128,7 @@ { "type": "string", "format": "date-time", - "description": "The time the object was updated.", + "description": "The time this object was updated.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "updated_at", "entity_fieldname": "updated_at", @@ -43245,7 +43396,7 @@ { "type": "string", "format": "date-time", - "description": "The time the campaign was created.", + "description": "The time the group was created.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "created_at", "readOnly": true, @@ -43271,7 +43422,7 @@ }, { "type": "string", - "maxLength": 2000, + "maxLength": 1024, "description": "The description of the group.", "example": "Devices on the factory floor.", "api_fieldname": "description", @@ -43310,7 +43461,7 @@ { "type": "string", "format": "date-time", - "description": "The time the object was updated.", + "description": "The time this object was updated.", "example": "2017-05-22T12:37:55.576563Z", "api_fieldname": "updated_at", "readOnly": true, @@ -43333,7 +43484,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Create a firmware image.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-images \\\n-H 'Authorization: ' \\\n-H 'Content-Type: multipart/form-data' \\\n-F 'datafile=@myimage.bin;type=application/octet-stream'\n-F 'description=bla bla' \\\n-F 'name=My Linux Image'\n```\n", + "description": "Create a firmware image.\n
**Note:** Only use this API for images smaller than 100 MB. For larger images, [upload in chunks](https://www.pelion.com/docs/device-management/current/updating-firmware/uploading-a-large-firmware-image.html).\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-images \\\n-H 'Authorization: Bearer ' \\\n-H 'Content-Type: multipart/form-data' \\\n-F 'datafile=@myimage.bin;type=application/octet-stream'\n-F 'description=bla bla' \\\n-F 'name=My Linux Image'\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -43344,6 +43495,7 @@ { "description": "The description of the object.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "a description", "api_fieldname": "description", @@ -43354,11 +43506,12 @@ "_key": "description" }, { - "description": "The firmware image file to upload.", + "description": "The firmware image file to upload. File name must not exceed 166 characters.", "in": "stream", "name": "datafile", "required": true, "type": "file", + "maxLength": 166, "entity_fieldname": "firmware_image_file", "api_fieldname": "datafile", "external_param": true, @@ -43368,6 +43521,7 @@ { "description": "The firmware image name.", "type": "string", + "format": "free text", "maxLength": 128, "api_fieldname": "name", "entity_fieldname": "name", @@ -43415,71 +43569,351 @@ "object": { "description": "Entity name: always 'firmware-image'.", "type": "string", + "example": "firmware-image", "api_fieldname": "object", "entity_fieldname": "object" }, "datafile": { - "description": "The firmware image file URL", + "description": "The firmware image file URL.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000", + "example": "http://bucket.com/myimage.elf", "api_fieldname": "datafile", "entity_fieldname": "datafile_url" }, - "datafile_checksum": { - "description": "The checksum (sha256) generated for the datafile.", + "datafile_checksum": { + "description": "The checksum (sha256) generated for the datafile.", + "type": "string", + "example": "e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e", + "api_fieldname": "datafile_checksum", + "entity_fieldname": "datafile_checksum" + }, + "datafile_size": { + "description": "The size of the datafile in bytes.", + "format": "int64", + "type": "integer", + "api_fieldname": "datafile_size", + "entity_fieldname": "datafile_size" + }, + "description": { + "description": "The description of the object.", + "type": "string", + "format": "free text", + "maxLength": 2000, + "example": "a description", + "api_fieldname": "description", + "entity_fieldname": "description" + }, + "id": { + "description": "The firmware image ID.", + "type": "string", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e652be671000000000001001001e5", + "api_fieldname": "id", + "entity_fieldname": "id" + }, + "name": { + "description": "The firmware image name.", + "type": "string", + "format": "free text", + "maxLength": 128, + "api_fieldname": "name", + "entity_fieldname": "name" + }, + "_key": "properties" + } + ], + "_key": "201" + }, + { + "description": "Cannot validate the data used to create the firmware image.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "403" + }, + { + "description": "Firmware image too large.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { "type": "string", - "example": "0000000000000000000000000000000000000000000000000000000000000000", - "api_fieldname": "datafile_checksum", - "entity_fieldname": "datafile_checksum" - }, - "datafile_size": { - "description": "The size of the datafile in bytes.", - "format": "int64", - "type": "integer", - "api_fieldname": "datafile_size", - "entity_fieldname": "datafile_size" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, - "description": { - "description": "The description of the object.", + { "type": "string", - "maxLength": 2000, - "example": "a description", - "api_fieldname": "description", - "entity_fieldname": "description" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, - "id": { - "description": "The firmware image ID.", + { "type": "string", - "example": "00000000000000000000000000000000", - "api_fieldname": "id", - "entity_fieldname": "id" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "name": { - "description": "The firmware image name.", + { "type": "string", - "maxLength": 128, - "api_fieldname": "name", - "entity_fieldname": "name" - }, - "_key": "properties" - } - ], - "_key": "201" - }, - { - "description": "Cannot validate the data used to create the firmware image.", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Forbidden.", - "_key": "403" - }, - { - "description": "Firmware image too large.", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "413" } ], @@ -43519,7 +43953,7 @@ "_key": "create" }, { - "description": "Delete a firmware image.\n
\n**Usage example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-images/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", + "description": "Delete a firmware image.\n
\n**Usage example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-images/11234567f9012ab56790120000789012 \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -43533,8 +43967,7 @@ "name": "image_id", "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, + "pattern": "[A-Fa-f0-9]{32}", "entity_fieldname": "id", "api_fieldname": "image_id", "external_param": false, @@ -43551,14 +43984,221 @@ }, { "description": "Bad Request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Firmware image not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" } ], @@ -43589,7 +44229,7 @@ "_key": "delete" }, { - "description": "List all firmware images.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images \\\n-H 'Authorization: '\n```\n", + "description": "List all firmware images.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -43704,17 +44344,18 @@ }, "object": { "description": "Entity name: always 'firmware-image'.", - "type": "string" + "type": "string", + "example": "firmware-image" }, "datafile": { - "description": "The firmware image file URL", + "description": "The firmware image file URL.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000" + "example": "http://bucket.com/myimage.elf" }, "datafile_checksum": { "description": "The checksum (sha256) generated for the datafile.", "type": "string", - "example": "0000000000000000000000000000000000000000000000000000000000000000" + "example": "e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e" }, "datafile_size": { "description": "The size of the datafile in bytes.", @@ -43724,17 +44365,20 @@ "description": { "description": "The description of the object.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "a description" }, "id": { "description": "The firmware image ID.", "type": "string", - "example": "00000000000000000000000000000000" + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e652be671000000000001001001e5" }, "name": { "description": "The firmware image name.", "type": "string", + "format": "free text", "maxLength": 128 }, "_key": "properties" @@ -43758,50 +44402,258 @@ "_key": "limit" }, { - "description": "Entity name: always 'list'.", + "description": "Entity name: always 'list'.", + "type": "string", + "example": "list", + "api_fieldname": "object", + "entity_fieldname": "object", + "_key": "object" + }, + { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The order of the records based on creation time, `ASC` or `DESC`; by default `ASC`.", + "example": "ASC", + "api_fieldname": "order", + "entity_fieldname": "order", + "_key": "order" + }, + { + "format": "int32", + "type": "integer", + "api_fieldname": "total_count", + "entity_fieldname": "total_count", + "_key": "total_count" + } + ], + "pagination": true, + "foreign_key": { + "group": "Device_Update", + "entity": "firmware_image" + } + }, + "_key": "200" + }, + { + "description": "Bad Request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Unable to find content.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { "type": "string", - "api_fieldname": "object", - "entity_fieldname": "object", - "_key": "object" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, { "type": "string", + "description": "Entity name, always `error`.", "enum": [ - "ASC", - "DESC" + "error" ], - "description": "The order of the records based on creation time, `ASC` or `DESC`; by default `ASC`.", - "example": "ASC", - "api_fieldname": "order", - "entity_fieldname": "order", - "_key": "order" + "_key": "object" }, { - "format": "int32", - "type": "integer", - "api_fieldname": "total_count", - "entity_fieldname": "total_count", - "_key": "total_count" + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" } - ], - "pagination": true, - "foreign_key": { - "group": "Device_Update", - "entity": "firmware_image" - } + ] }, - "_key": "200" - }, - { - "description": "Bad Request.", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Unable to find content.", "_key": "404" } ], @@ -43921,7 +44773,7 @@ "_key": "list" }, { - "description": "Retrieve a firmware image.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", + "description": "Retrieve a firmware image.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/1123456f9012ab567890120000789012 \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -43932,7 +44784,8 @@ { "description": "The firmware image ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e652be671000000000001001001e5", "api_fieldname": "id", "entity_fieldname": "id", "parameter_fieldname": "image_id", @@ -43979,20 +44832,21 @@ "object": { "description": "Entity name: always 'firmware-image'.", "type": "string", + "example": "firmware-image", "api_fieldname": "object", "entity_fieldname": "object" }, "datafile": { - "description": "The firmware image file URL", + "description": "The firmware image file URL.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000", + "example": "http://bucket.com/myimage.elf", "api_fieldname": "datafile", "entity_fieldname": "datafile_url" }, "datafile_checksum": { "description": "The checksum (sha256) generated for the datafile.", "type": "string", - "example": "0000000000000000000000000000000000000000000000000000000000000000", + "example": "e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e", "api_fieldname": "datafile_checksum", "entity_fieldname": "datafile_checksum" }, @@ -44006,6 +44860,7 @@ "description": { "description": "The description of the object.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "a description", "api_fieldname": "description", @@ -44014,13 +44869,15 @@ "id": { "description": "The firmware image ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e652be671000000000001001001e5", "api_fieldname": "id", "entity_fieldname": "id" }, "name": { "description": "The firmware image name.", "type": "string", + "format": "free text", "maxLength": 128, "api_fieldname": "name", "entity_fieldname": "name" @@ -44032,14 +44889,221 @@ }, { "description": "Bad Request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Firmware image can't be found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" } ], @@ -44091,7 +45155,7 @@ { "description": "The checksum (sha256) generated for the datafile.", "type": "string", - "example": "0000000000000000000000000000000000000000000000000000000000000000", + "example": "e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e", "api_fieldname": "datafile_checksum", "readOnly": true, "required": false, @@ -44107,9 +45171,9 @@ "_key": "datafile_size" }, { - "description": "The firmware image file URL", + "description": "The firmware image file URL.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000", + "example": "http://bucket.com/myimage.elf", "api_fieldname": "datafile", "readOnly": true, "required": false, @@ -44118,6 +45182,7 @@ { "description": "The description of the object.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "a description", "api_fieldname": "description", @@ -44128,7 +45193,8 @@ { "description": "The firmware image ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e652be671000000000001001001e5", "api_fieldname": "id", "readOnly": false, "required": true, @@ -44137,6 +45203,7 @@ { "description": "The firmware image name.", "type": "string", + "format": "free text", "maxLength": 128, "api_fieldname": "name", "readOnly": false, @@ -44174,7 +45241,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Upload a firmware manifest. The API enforces a maximum manifest size of 2KB.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \\\n-H 'Authorization: ' \\\n-H 'Content-Type: multipart/form-data' \\\n-F 'datafile=@myimage.bin;type=application/octet-stream' \\\n-F 'description=bla bla' \\\n-F 'key_table=@myKeyTable.proto;type=' \\\n-F 'name=My Manifest'\n```\n", + "description": "Upload a firmware manifest. The API enforces a maximum manifest size of 2KB.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \\\n-H 'Authorization: Bearer ' \\\n-H 'Content-Type: multipart/form-data' \\\n-F 'datafile=@myimage.bin;type=application/octet-stream' \\\n-F 'description=bla bla' \\\n-F 'key_table=@myKeyTable.proto;type=' \\\n-F 'name=My Manifest'\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -44189,6 +45256,7 @@ { "description": "The description of the firmware manifest.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "", "api_fieldname": "description", @@ -44199,7 +45267,7 @@ "_key": "description" }, { - "description": "The manifest file to create. The API gateway enforces the account-specific file size.", + "description": "The manifest file to create. The API gateway enforces the account-specific file size. File name must not exceed 100 characters.", "in": "stream", "name": "datafile", "required": true, @@ -44211,7 +45279,7 @@ "_key": "firmware_manifest_file" }, { - "description": "The key table of pre-shared keys for devices. The table is generated by the manifest tool.", + "description": "The key table of pre-shared keys for devices. The table is generated by the manifest tool. File name must not exceed 100 characters.", "in": "stream", "name": "key_table", "required": false, @@ -44223,15 +45291,16 @@ "_key": "key_table_file" }, { - "description": "The name of the object.", + "description": "The name of the manifest.", "type": "string", + "format": "free text", "maxLength": 128, - "example": "default_object_name", + "example": "manifest_name", "api_fieldname": "name", "entity_fieldname": "name", "parameter_fieldname": "name", "in": "stream", - "required": false, + "required": true, "_key": "name" } ], @@ -44273,84 +45342,368 @@ "object": { "description": "Entity name: always 'firmware-manifest'.", "type": "string", + "example": "firmware-manifest", "api_fieldname": "object", "entity_fieldname": "object" }, + "manifest_schema_version": { + "description": "Version of the manifest schema (1 or 3).", + "type": "string", + "enum": [ + "1", + "3" + ], + "api_fieldname": "manifest_schema_version", + "entity_fieldname": "manifest_schema_version" + }, "datafile": { - "description": "The URL of the firmware manifest binary", + "description": "The URL of the ASN.1 DER-encoded firmware manifest binary.", "type": "string", - "example": "http://example.com/12345678901234567890123456789012", + "format": "uri", + "example": "http://bucket.com/mymanifest.manifest", "api_fieldname": "datafile", "entity_fieldname": "datafile_url" }, "datafile_size": { - "description": "The size of the datafile in bytes", - "format": "int64", + "description": "The size of the firmware manifest in bytes.", "type": "integer", + "format": "int64", "api_fieldname": "datafile_size", "entity_fieldname": "datafile_size" }, + "delivered_payload_url": { + "description": "The URL of the payload to deliver to the device.", + "type": "string", + "format": "uri", + "example": "http://bucket.com/myimage.elf", + "api_fieldname": "delivered_payload_url", + "entity_fieldname": "delivered_payload_url" + }, + "delivered_payload_size": { + "description": "The size in bytes of the payload to deliver to the device.", + "type": "integer", + "format": "int64", + "api_fieldname": "delivered_payload_size", + "entity_fieldname": "delivered_payload_size" + }, + "delivered_payload_digest": { + "description": "Digest (SHA256, hex-encoded) of the payload to deliver to the device.", + "type": "string", + "format": "hex", + "example": "c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc", + "api_fieldname": "delivered_payload_digest", + "entity_fieldname": "delivered_payload_digest" + }, + "delivered_payload_type": { + "description": "Type of the payload to deliver to the device (full or delta image).", + "type": "string", + "enum": [ + "full", + "delta" + ], + "api_fieldname": "delivered_payload_type", + "entity_fieldname": "delivered_payload_type" + }, + "precursor_payload_digest": { + "description": "Digest (SHA256, hex-encoded) of the currently installed payload.", + "type": "string", + "example": "54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f", + "api_fieldname": "precursor_payload_digest", + "entity_fieldname": "precursor_payload_digest" + }, "description": { "description": "The description of the firmware manifest.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "", "api_fieldname": "description", "entity_fieldname": "description" }, "device_class": { - "description": "The class of the device.", + "description": "The device class ID.", "type": "string", - "example": "00000000-0000-0000-0000-000000000000", + "format": "uuid", + "example": "42c4d8de-704d-546e-b9d3-1ce1eb316167", "api_fieldname": "device_class", "entity_fieldname": "device_class" }, - "key_table": { - "description": "The key table of pre-shared keys for devices.", + "device_vendor": { + "description": "The device vendor ID.", + "type": "string", + "format": "uuid", + "example": "5d645eae-c231-5a89-9764-2e655cd94fa8", + "api_fieldname": "device_vendor", + "entity_fieldname": "device_vendor" + }, + "update_priority": { + "description": "Update priority, passed to the application callback when an update is performed. Allows the application to make application-specific decisions.", + "type": "integer", + "format": "int64", + "api_fieldname": "update_priority", + "entity_fieldname": "update_priority" + }, + "key_table": { + "description": "The key table of pre-shared keys for devices.", + "type": "string", + "format": "uri", + "example": "http://example.com/key-table", + "api_fieldname": "key_table", + "entity_fieldname": "key_table_url" + }, + "id": { + "description": "The firmware manifest ID.", + "type": "string", + "pattern": "[A-Fa-f0-9]{32}", + "example": "12345678901234567890123456789012", + "api_fieldname": "id", + "entity_fieldname": "id" + }, + "name": { + "description": "The name of the manifest.", + "type": "string", + "format": "free text", + "maxLength": 128, + "example": "manifest_name", + "api_fieldname": "name", + "entity_fieldname": "name" + }, + "timestamp": { + "description": "The firmware manifest version as a timestamp.", + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "type": "string", + "api_fieldname": "timestamp", + "entity_fieldname": "timestamp" + }, + "parsed_raw_manifest": { + "description": "Raw manifest in JSON format, parsed from ASN.1 DER encoding.\nFields may change. Backwards compatibility is not guaranteed.\nRecommended for debugging only.\n", + "type": "object", + "api_fieldname": "parsed_raw_manifest", + "entity_fieldname": "parsed_raw_manifest" + }, + "_key": "properties" + } + ], + "_key": "201" + }, + { + "description": "Validation error. The data used to create the firmware manifest did not validate and/or the manifest uploaded exceeded 2 KB in size.\n", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Forbidden.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { "type": "string", - "format": "uri", - "example": "http://example.com", - "api_fieldname": "key_table", - "entity_fieldname": "key_table_url" + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" }, - "id": { - "description": "The firmware manifest ID.", + { "type": "string", - "example": "12345678901234567890123456789012", - "api_fieldname": "id", - "entity_fieldname": "id" + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" }, - "name": { - "description": "The name of the object.", + { "type": "string", - "maxLength": 128, - "example": "default_object_name", - "api_fieldname": "name", - "entity_fieldname": "name" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "timestamp": { - "description": "The firmware manifest version as a timestamp.", - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", + { "type": "string", - "api_fieldname": "timestamp", - "entity_fieldname": "timestamp" - }, - "_key": "properties" - } - ], - "_key": "201" - }, - { - "description": "Validation error. The data used to create the firmware manifest did not validate and/or the manifest uploaded exceeded 2 KB in size.\n", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Forbidden.", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "403" } ], @@ -44371,10 +45724,19 @@ "filter", "created_at", "updated_at", + "manifest_schema_version", "datafile_size", + "delivered_payload_url", + "delivered_payload_size", + "delivered_payload_digest", + "delivered_payload_type", + "precursor_payload_digest", "device_class", + "device_vendor", + "update_priority", "id", "timestamp", + "parsed_raw_manifest", "datafile_url", "key_table_url" ], @@ -44393,7 +45755,7 @@ "_key": "create" }, { - "description": "Delete a firmware manifest.\n
\n**Usage example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", + "description": "Delete a firmware manifest.\n
\n**Usage example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/11234567f9012ab56780120000789012 \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -44411,8 +45773,7 @@ "name": "manifest_id", "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, + "pattern": "[A-Fa-f0-9]{32}", "entity_fieldname": "id", "api_fieldname": "manifest_id", "external_param": false, @@ -44429,14 +45790,221 @@ }, { "description": "Bad Request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Firmware manifest not found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" } ], @@ -44467,7 +46035,7 @@ "_key": "delete" }, { - "description": "List all firmware manifests.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \\\n-H 'Authorization: '\n```\n", + "description": "List all firmware manifests.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -44586,45 +46154,100 @@ }, "object": { "description": "Entity name: always 'firmware-manifest'.", - "type": "string" + "type": "string", + "example": "firmware-manifest" + }, + "manifest_schema_version": { + "description": "Version of the manifest schema (1 or 3).", + "type": "string", + "enum": [ + "1", + "3" + ] }, "datafile": { - "description": "The URL of the firmware manifest binary", + "description": "The URL of the ASN.1 DER-encoded firmware manifest binary.", "type": "string", - "example": "http://example.com/12345678901234567890123456789012" + "format": "uri", + "example": "http://bucket.com/mymanifest.manifest" }, "datafile_size": { - "description": "The size of the datafile in bytes", - "format": "int64", - "type": "integer" + "description": "The size of the firmware manifest in bytes.", + "type": "integer", + "format": "int64" + }, + "delivered_payload_url": { + "description": "The URL of the payload to deliver to the device.", + "type": "string", + "format": "uri", + "example": "http://bucket.com/myimage.elf" + }, + "delivered_payload_size": { + "description": "The size in bytes of the payload to deliver to the device.", + "type": "integer", + "format": "int64" + }, + "delivered_payload_digest": { + "description": "Digest (SHA256, hex-encoded) of the payload to deliver to the device.", + "type": "string", + "format": "hex", + "example": "c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc" + }, + "delivered_payload_type": { + "description": "Type of the payload to deliver to the device (full or delta image).", + "type": "string", + "enum": [ + "full", + "delta" + ] + }, + "precursor_payload_digest": { + "description": "Digest (SHA256, hex-encoded) of the currently installed payload.", + "type": "string", + "example": "54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f" }, "description": { "description": "The description of the firmware manifest.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "" }, "device_class": { - "description": "The class of the device.", + "description": "The device class ID.", "type": "string", - "example": "00000000-0000-0000-0000-000000000000" + "format": "uuid", + "example": "42c4d8de-704d-546e-b9d3-1ce1eb316167" + }, + "device_vendor": { + "description": "The device vendor ID.", + "type": "string", + "format": "uuid", + "example": "5d645eae-c231-5a89-9764-2e655cd94fa8" + }, + "update_priority": { + "description": "Update priority, passed to the application callback when an update is performed. Allows the application to make application-specific decisions.", + "type": "integer", + "format": "int64" }, "key_table": { "description": "The key table of pre-shared keys for devices.", "type": "string", "format": "uri", - "example": "http://example.com" + "example": "http://example.com/key-table" }, "id": { "description": "The firmware manifest ID.", "type": "string", + "pattern": "[A-Fa-f0-9]{32}", "example": "12345678901234567890123456789012" }, "name": { - "description": "The name of the object.", + "description": "The name of the manifest.", "type": "string", + "format": "free text", "maxLength": 128, - "example": "default_object_name" + "example": "manifest_name" }, "timestamp": { "description": "The firmware manifest version as a timestamp.", @@ -44632,6 +46255,10 @@ "example": "2017-05-22T12:37:55.576563Z", "type": "string" }, + "parsed_raw_manifest": { + "description": "Raw manifest in JSON format, parsed from ASN.1 DER encoding.\nFields may change. Backwards compatibility is not guaranteed.\nRecommended for debugging only.\n", + "type": "object" + }, "_key": "properties" } ], @@ -44655,6 +46282,7 @@ { "description": "Entity name: always 'list'.", "type": "string", + "example": "list", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" @@ -44689,14 +46317,221 @@ }, { "description": "Bad Request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Unable to find content.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" } ], @@ -44826,7 +46661,7 @@ "_key": "list" }, { - "description": "Retrieve a firmware manifest.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", + "description": "Retrieve a firmware manifest.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/1123467f9012ab567890120000789012 \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [ { "api_fieldname": "datafile", @@ -44841,6 +46676,7 @@ { "description": "The firmware manifest ID.", "type": "string", + "pattern": "[A-Fa-f0-9]{32}", "example": "12345678901234567890123456789012", "api_fieldname": "id", "entity_fieldname": "id", @@ -44888,58 +46724,129 @@ "object": { "description": "Entity name: always 'firmware-manifest'.", "type": "string", + "example": "firmware-manifest", "api_fieldname": "object", "entity_fieldname": "object" }, + "manifest_schema_version": { + "description": "Version of the manifest schema (1 or 3).", + "type": "string", + "enum": [ + "1", + "3" + ], + "api_fieldname": "manifest_schema_version", + "entity_fieldname": "manifest_schema_version" + }, "datafile": { - "description": "The URL of the firmware manifest binary", + "description": "The URL of the ASN.1 DER-encoded firmware manifest binary.", "type": "string", - "example": "http://example.com/12345678901234567890123456789012", + "format": "uri", + "example": "http://bucket.com/mymanifest.manifest", "api_fieldname": "datafile", "entity_fieldname": "datafile_url" }, "datafile_size": { - "description": "The size of the datafile in bytes", - "format": "int64", + "description": "The size of the firmware manifest in bytes.", "type": "integer", + "format": "int64", "api_fieldname": "datafile_size", "entity_fieldname": "datafile_size" }, + "delivered_payload_url": { + "description": "The URL of the payload to deliver to the device.", + "type": "string", + "format": "uri", + "example": "http://bucket.com/myimage.elf", + "api_fieldname": "delivered_payload_url", + "entity_fieldname": "delivered_payload_url" + }, + "delivered_payload_size": { + "description": "The size in bytes of the payload to deliver to the device.", + "type": "integer", + "format": "int64", + "api_fieldname": "delivered_payload_size", + "entity_fieldname": "delivered_payload_size" + }, + "delivered_payload_digest": { + "description": "Digest (SHA256, hex-encoded) of the payload to deliver to the device.", + "type": "string", + "format": "hex", + "example": "c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc", + "api_fieldname": "delivered_payload_digest", + "entity_fieldname": "delivered_payload_digest" + }, + "delivered_payload_type": { + "description": "Type of the payload to deliver to the device (full or delta image).", + "type": "string", + "enum": [ + "full", + "delta" + ], + "api_fieldname": "delivered_payload_type", + "entity_fieldname": "delivered_payload_type" + }, + "precursor_payload_digest": { + "description": "Digest (SHA256, hex-encoded) of the currently installed payload.", + "type": "string", + "example": "54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f", + "api_fieldname": "precursor_payload_digest", + "entity_fieldname": "precursor_payload_digest" + }, "description": { "description": "The description of the firmware manifest.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "", "api_fieldname": "description", "entity_fieldname": "description" }, "device_class": { - "description": "The class of the device.", + "description": "The device class ID.", "type": "string", - "example": "00000000-0000-0000-0000-000000000000", + "format": "uuid", + "example": "42c4d8de-704d-546e-b9d3-1ce1eb316167", "api_fieldname": "device_class", "entity_fieldname": "device_class" }, + "device_vendor": { + "description": "The device vendor ID.", + "type": "string", + "format": "uuid", + "example": "5d645eae-c231-5a89-9764-2e655cd94fa8", + "api_fieldname": "device_vendor", + "entity_fieldname": "device_vendor" + }, + "update_priority": { + "description": "Update priority, passed to the application callback when an update is performed. Allows the application to make application-specific decisions.", + "type": "integer", + "format": "int64", + "api_fieldname": "update_priority", + "entity_fieldname": "update_priority" + }, "key_table": { "description": "The key table of pre-shared keys for devices.", "type": "string", "format": "uri", - "example": "http://example.com", + "example": "http://example.com/key-table", "api_fieldname": "key_table", "entity_fieldname": "key_table_url" }, "id": { "description": "The firmware manifest ID.", "type": "string", + "pattern": "[A-Fa-f0-9]{32}", "example": "12345678901234567890123456789012", "api_fieldname": "id", "entity_fieldname": "id" }, "name": { - "description": "The name of the object.", + "description": "The name of the manifest.", "type": "string", + "format": "free text", "maxLength": 128, - "example": "default_object_name", + "example": "manifest_name", "api_fieldname": "name", "entity_fieldname": "name" }, @@ -44951,6 +46858,12 @@ "api_fieldname": "timestamp", "entity_fieldname": "timestamp" }, + "parsed_raw_manifest": { + "description": "Raw manifest in JSON format, parsed from ASN.1 DER encoding.\nFields may change. Backwards compatibility is not guaranteed.\nRecommended for debugging only.\n", + "type": "object", + "api_fieldname": "parsed_raw_manifest", + "entity_fieldname": "parsed_raw_manifest" + }, "_key": "properties" } ], @@ -44958,14 +46871,221 @@ }, { "description": "Bad request.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Firmware manifest can't be found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" } ], @@ -44986,11 +47106,20 @@ "filter", "created_at", "updated_at", + "manifest_schema_version", "datafile_size", + "delivered_payload_url", + "delivered_payload_size", + "delivered_payload_digest", + "delivered_payload_type", + "precursor_payload_digest", "description", "device_class", + "device_vendor", + "update_priority", "name", "timestamp", + "parsed_raw_manifest", "datafile_url", "key_table_url" ], @@ -45017,26 +47146,70 @@ "_key": "created_at" }, { - "description": "The size of the datafile in bytes", - "format": "int64", + "description": "The size of the firmware manifest in bytes.", "type": "integer", + "format": "int64", "api_fieldname": "datafile_size", "readOnly": true, "required": false, "_key": "datafile_size" }, { - "description": "The URL of the firmware manifest binary", + "description": "The URL of the ASN.1 DER-encoded firmware manifest binary.", "type": "string", - "example": "http://example.com/12345678901234567890123456789012", + "format": "uri", + "example": "http://bucket.com/mymanifest.manifest", "api_fieldname": "datafile", "readOnly": true, "required": false, "_key": "datafile_url" }, + { + "description": "Digest (SHA256, hex-encoded) of the payload to deliver to the device.", + "type": "string", + "format": "hex", + "example": "c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc", + "api_fieldname": "delivered_payload_digest", + "readOnly": true, + "required": false, + "_key": "delivered_payload_digest" + }, + { + "description": "The size in bytes of the payload to deliver to the device.", + "type": "integer", + "format": "int64", + "api_fieldname": "delivered_payload_size", + "readOnly": true, + "required": false, + "_key": "delivered_payload_size" + }, + { + "description": "Type of the payload to deliver to the device (full or delta image).", + "type": "string", + "enum": [ + "full", + "delta" + ], + "api_fieldname": "delivered_payload_type", + "readOnly": true, + "required": false, + "enum_reference": "firmware_manifest_delivered_payload_type_enum", + "_key": "delivered_payload_type" + }, + { + "description": "The URL of the payload to deliver to the device.", + "type": "string", + "format": "uri", + "example": "http://bucket.com/myimage.elf", + "api_fieldname": "delivered_payload_url", + "readOnly": true, + "required": false, + "_key": "delivered_payload_url" + }, { "description": "The description of the firmware manifest.", "type": "string", + "format": "free text", "maxLength": 2000, "example": "", "api_fieldname": "description", @@ -45045,17 +47218,29 @@ "_key": "description" }, { - "description": "The class of the device.", + "description": "The device class ID.", "type": "string", - "example": "00000000-0000-0000-0000-000000000000", + "format": "uuid", + "example": "42c4d8de-704d-546e-b9d3-1ce1eb316167", "api_fieldname": "device_class", "readOnly": true, "required": false, "_key": "device_class" }, + { + "description": "The device vendor ID.", + "type": "string", + "format": "uuid", + "example": "5d645eae-c231-5a89-9764-2e655cd94fa8", + "api_fieldname": "device_vendor", + "readOnly": true, + "required": false, + "_key": "device_vendor" + }, { "description": "The firmware manifest ID.", "type": "string", + "pattern": "[A-Fa-f0-9]{32}", "example": "12345678901234567890123456789012", "api_fieldname": "id", "readOnly": false, @@ -45066,22 +47251,53 @@ "description": "The key table of pre-shared keys for devices.", "type": "string", "format": "uri", - "example": "http://example.com", + "example": "http://example.com/key-table", "api_fieldname": "key_table", "readOnly": true, "required": false, "_key": "key_table_url" }, { - "description": "The name of the object.", + "description": "Version of the manifest schema (1 or 3).", + "type": "string", + "enum": [ + "1", + "3" + ], + "api_fieldname": "manifest_schema_version", + "readOnly": true, + "required": false, + "enum_reference": "firmware_manifest_schema_version_enum", + "_key": "manifest_schema_version" + }, + { + "description": "The name of the manifest.", "type": "string", + "format": "free text", "maxLength": 128, - "example": "default_object_name", + "example": "manifest_name", "api_fieldname": "name", "readOnly": false, - "required": false, + "required": true, "_key": "name" }, + { + "description": "Raw manifest in JSON format, parsed from ASN.1 DER encoding.\nFields may change. Backwards compatibility is not guaranteed.\nRecommended for debugging only.\n", + "type": "object", + "api_fieldname": "parsed_raw_manifest", + "readOnly": true, + "required": false, + "_key": "parsed_raw_manifest" + }, + { + "description": "Digest (SHA256, hex-encoded) of the currently installed payload.", + "type": "string", + "example": "54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f", + "api_fieldname": "precursor_payload_digest", + "readOnly": true, + "required": false, + "_key": "precursor_payload_digest" + }, { "description": "The firmware manifest version as a timestamp.", "format": "date-time", @@ -45092,6 +47308,15 @@ "required": false, "_key": "timestamp" }, + { + "description": "Update priority, passed to the application callback when an update is performed. Allows the application to make application-specific decisions.", + "type": "integer", + "format": "int64", + "api_fieldname": "update_priority", + "readOnly": true, + "required": false, + "_key": "update_priority" + }, { "type": "string", "format": "date-time", @@ -45130,7 +47355,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Create a new identity provider.", + "description": "Create a new identity provider.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -45220,42 +47445,49 @@ { "type": "string", "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", "x-nullable": true, "_key": "email_verified" }, { "type": "string", "description": "Custom claim name for 'family_name'.", + "example": "family_name", "x-nullable": true, "_key": "family_name" }, { "type": "string", "description": "Custom claim name for 'given_name'.", + "example": "given_name", "x-nullable": true, "_key": "given_name" }, { "type": "string", "description": "Custom claim name for 'name'.", + "example": "name", "x-nullable": true, "_key": "name" }, { "type": "string", "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", "x-nullable": true, "_key": "phone_number" }, { "type": "string", "description": "Custom claim name for 'sub'.", + "example": "sub", "x-nullable": true, "_key": "sub" }, { "type": "string", "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", "x-nullable": true, "_key": "updated_at" }, @@ -45381,13 +47613,10 @@ "group": "Accounts", "entity": "oidc_request" }, - "name": "oidc_attributes", - "in": "body", - "schema_param": true, - "entity_fieldname": "oidc_attributes", "api_fieldname": "oidc_attributes", - "external_param": true, + "entity_fieldname": "oidc_attributes", "parameter_fieldname": "oidc_attributes", + "in": "body", "_key": "oidc_attributes" }, { @@ -45560,6 +47789,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -45908,7 +48341,7 @@ "_key": "create" }, { - "description": "Delete an identity provider by ID.", + "description": "Delete an identity provider by ID.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -46083,7 +48516,7 @@ "_key": "403" }, { - "description": "Identity provider not found.", + "description": "An identity provider not found.", "schema": { "type": "object", "required": [ @@ -46183,7 +48616,7 @@ "_key": "delete" }, { - "description": "Delete a service provider certificate.", + "description": "Delete a service provider certificate.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -46295,6 +48728,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -46538,7 +49175,7 @@ "_key": "403" }, { - "description": "Identity provider not found.", + "description": "An identity provider not found.", "schema": { "type": "object", "required": [ @@ -46632,6 +49269,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "account_id", "is_default", "identity_provider_type" @@ -46647,7 +49285,7 @@ "_key": "delete_service_provider_certificate" }, { - "description": "Generate a new service provider certificate.", + "description": "Generate a new service provider certificate.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -46799,6 +49437,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -47115,7 +49957,7 @@ "_key": "403" }, { - "description": "Identity provider not found.", + "description": "An identity provider not found.", "schema": { "type": "object", "required": [ @@ -47209,6 +50051,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "account_id", "is_default", "identity_provider_type" @@ -47224,7 +50067,7 @@ "_key": "generate_service_provider_certificate" }, { - "description": "Retrieve identity providers in an array.", + "description": "Retrieve an array of identity providers.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -47235,7 +50078,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -47275,7 +50118,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -47310,7 +50153,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -47382,6 +50225,208 @@ ], "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -47710,7 +50755,7 @@ "_key": "list" }, { - "description": "Retrieve by ID.", + "description": "Retrieve an identity provider.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -47815,6 +50860,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -48058,7 +51307,7 @@ "_key": "403" }, { - "description": "Identity provider not found.", + "description": "An identity provider not found.", "schema": { "type": "object", "required": [ @@ -48132,7 +51381,7 @@ } ], "path": "/v3/identity-providers/{identity_provider_id}", - "summary": "Get identity provider by ID.", + "summary": "Get identity provider.", "return_type": "identity_provider", "return_info": { "self": true, @@ -48152,6 +51401,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "account_id", "is_default", "identity_provider_type" @@ -48167,7 +51417,7 @@ "_key": "read" }, { - "description": "Refreshes an OIDC IdP's signing keys.", + "description": "Refreshes an OIDC IdP's signing keys.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -48279,6 +51529,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -48595,7 +52049,7 @@ "_key": "403" }, { - "description": "Identity provider not found.", + "description": "An identity provider not found.", "schema": { "type": "object", "required": [ @@ -48689,6 +52143,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "account_id", "is_default", "identity_provider_type" @@ -48704,7 +52159,7 @@ "_key": "refresh_tokens" }, { - "description": "Update an existing identity provider.", + "description": "Update an existing identity provider.\nNote: This endpoint is restricted to administrators.", "field_renames": [ { "api_fieldname": "type", @@ -48806,42 +52261,49 @@ { "type": "string", "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", "x-nullable": true, "_key": "email_verified" }, { "type": "string", "description": "Custom claim name for 'family_name'.", + "example": "family_name", "x-nullable": true, "_key": "family_name" }, { "type": "string", "description": "Custom claim name for 'given_name'.", + "example": "given_name", "x-nullable": true, "_key": "given_name" }, { "type": "string", "description": "Custom claim name for 'name'.", + "example": "name", "x-nullable": true, "_key": "name" }, { "type": "string", "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", "x-nullable": true, "_key": "phone_number" }, { "type": "string", "description": "Custom claim name for 'sub'.", + "example": "sub", "x-nullable": true, "_key": "sub" }, { "type": "string", "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", "x-nullable": true, "_key": "updated_at" }, @@ -48967,13 +52429,10 @@ "group": "Accounts", "entity": "oidc_request" }, - "name": "oidc_attributes", - "in": "body", - "schema_param": true, - "entity_fieldname": "oidc_attributes", "api_fieldname": "oidc_attributes", - "external_param": true, + "entity_fieldname": "oidc_attributes", "parameter_fieldname": "oidc_attributes", + "in": "body", "_key": "oidc_attributes" }, { @@ -49134,6 +52593,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -49450,7 +53113,7 @@ "_key": "403" }, { - "description": "Identity provider not found.", + "description": "An identity provider not found.", "schema": { "type": "object", "required": [ @@ -49626,6 +53289,208 @@ "required": true, "_key": "name" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "readOnly": false, + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -49755,7 +53620,7 @@ "primary_key_field": "reference", "methods": [ { - "description": "Resets the branding color to its light theme default.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Resets the branding color to its light theme default.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -50044,7 +53909,7 @@ "_key": "delete" }, { - "description": "Retrieve the light theme branding colors.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the light theme branding colors.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -50074,7 +53939,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -50383,7 +54248,7 @@ "_key": "list" }, { - "description": "Retrieve the requested light theme branding color.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the requested light theme branding color.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -50753,7 +54618,7 @@ "_key": "read" }, { - "description": "Update light theme branding color.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"purple\" }'\n```", + "description": "Update light theme branding color.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"purple\" }'\n```", "field_renames": [], "fields": [ { @@ -51297,7 +55162,7 @@ "primary_key_field": "reference", "methods": [ { - "description": "Revert an account branding image to light theme default.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", + "description": "Revert an account branding image to light theme default.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -51604,7 +55469,7 @@ "_key": "delete" }, { - "description": "Retrieve the metadata of all light theme branding images.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the metadata of all light theme branding images.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -51634,7 +55499,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -51965,7 +55830,7 @@ "_key": "list" }, { - "description": "Retrieve metadata for one account light theme branding image.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve metadata for one account light theme branding image.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -52366,7 +56231,7 @@ "_key": "read" }, { - "description": "Upload a new account branding image as form data in the light theme in PNG or JPEG format.", + "description": "Upload a new account branding image as form data in the light theme in PNG or JPEG format.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -53010,6 +56875,16 @@ "fields": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "required": false, + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -53020,6 +56895,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -53034,6 +56910,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -53091,42 +56968,49 @@ { "type": "string", "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", "x-nullable": true, "_key": "email_verified" }, { "type": "string", "description": "Custom claim name for 'family_name'.", + "example": "family_name", "x-nullable": true, "_key": "family_name" }, { "type": "string", "description": "Custom claim name for 'given_name'.", + "example": "given_name", "x-nullable": true, "_key": "given_name" }, { "type": "string", "description": "Custom claim name for 'name'.", + "example": "name", "x-nullable": true, "_key": "name" }, { "type": "string", "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", "x-nullable": true, "_key": "phone_number" }, { "type": "string", "description": "Custom claim name for 'sub'.", + "example": "sub", "x-nullable": true, "_key": "sub" }, { "type": "string", "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", "x-nullable": true, "_key": "updated_at" }, @@ -53315,6 +57199,7 @@ { "type": "string", "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", "x-nullable": true, "api_fieldname": "email_verified", "readOnly": true, @@ -53324,6 +57209,7 @@ { "type": "string", "description": "Custom claim name for 'family_name'.", + "example": "family_name", "x-nullable": true, "api_fieldname": "family_name", "readOnly": true, @@ -53333,6 +57219,7 @@ { "type": "string", "description": "Custom claim name for 'given_name'.", + "example": "given_name", "x-nullable": true, "api_fieldname": "given_name", "readOnly": true, @@ -53342,6 +57229,7 @@ { "type": "string", "description": "Custom claim name for 'name'.", + "example": "name", "x-nullable": true, "api_fieldname": "name", "readOnly": true, @@ -53351,6 +57239,7 @@ { "type": "string", "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", "x-nullable": true, "api_fieldname": "phone_number", "readOnly": true, @@ -53360,6 +57249,7 @@ { "type": "string", "description": "Custom claim name for 'sub'.", + "example": "sub", "x-nullable": true, "api_fieldname": "sub", "readOnly": true, @@ -53369,6 +57259,7 @@ { "type": "string", "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", "x-nullable": true, "api_fieldname": "updated_at", "readOnly": true, @@ -53553,13 +57444,13 @@ "primary_key_field": "id", "methods": [ { - "description": "Manage policy groups.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of API keys associated with a policy group.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -53611,7 +57502,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -53646,7 +57537,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -53810,7 +57701,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -54065,7 +57956,7 @@ } ], "path": "/v3/policy-groups/{group_id}/api-keys", - "summary": "Get the API keys of a group.", + "summary": "Get the API keys of a policy group.", "return_type": "paginated_response(api_key)", "return_info": { "self": false, @@ -54073,7 +57964,12 @@ "type": "api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated, GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/applications", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -54097,7 +57993,7 @@ "_key": "api_keys" }, { - "description": "Create a new group.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' -d '{\"name\": \"MyGroup1\"}'\n```", + "description": "Create a new group.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' -d '{\"name\": \"MyGroup1\"}'\n```", "field_renames": [], "fields": [ { @@ -54109,8 +58005,22 @@ "items": { "type": "string" }, + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This field is deprecated, use 'applications'", + "links": [] + }, "_key": "apikeys" }, + { + "type": "array", + "description": "An array of applicationIDs.", + "items": { + "type": "string" + }, + "_key": "applications" + }, { "type": "array", "description": "An array of user IDs.", @@ -54175,10 +58085,25 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "entity_fieldname": "apikey_count", "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "entity_fieldname": "application_count", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -54564,6 +58489,7 @@ "updated_at", "account_id", "user_count", + "application_count", "apikey_count" ], "group_id": "Accounts", @@ -54577,7 +58503,7 @@ "_key": "create" }, { - "description": "Delete a group.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete a group.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -54847,13 +58773,13 @@ "_key": "delete" }, { - "description": "Retrieve all group information.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of policy groups.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -54893,7 +58819,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -54928,7 +58854,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -54966,8 +58892,21 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -55063,7 +59002,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -55245,7 +59184,7 @@ } ], "path": "/v3/policy-groups", - "summary": "Get all group information.", + "summary": "Get policy groups.", "return_type": "paginated_response(policy_group)", "return_info": { "self": true, @@ -55284,7 +59223,7 @@ "_key": "list" }, { - "description": "Retrieve general information about a group.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve a policy group.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -55331,10 +59270,25 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "entity_fieldname": "apikey_count", "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "entity_fieldname": "application_count", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -55628,7 +59582,7 @@ } ], "path": "/v3/policy-groups/{group_id}", - "summary": "Get group information.", + "summary": "Get a policy group.", "return_type": "policy_group", "return_info": { "self": true, @@ -55647,6 +59601,7 @@ "account_id", "name", "user_count", + "application_count", "apikey_count" ], "group_id": "Accounts", @@ -55660,7 +59615,7 @@ "_key": "read" }, { - "description": "Update a group name.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestGroup2\"}'\n```", + "description": "Update a group name.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestGroup2\"}'\n```", "field_renames": [], "fields": [ { @@ -55719,10 +59674,25 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "entity_fieldname": "apikey_count", "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "entity_fieldname": "application_count", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -56107,6 +60077,7 @@ "updated_at", "account_id", "user_count", + "application_count", "apikey_count" ], "group_id": "Accounts", @@ -56120,13 +60091,13 @@ "_key": "update" }, { - "description": "Retrieve users of a group with details.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of users associated with a policy group.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -56178,7 +60149,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -56213,7 +60184,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -56493,6 +60464,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -56502,6 +60483,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -56512,6 +60494,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -56645,7 +60628,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -56900,7 +60883,7 @@ } ], "path": "/v3/policy-groups/{group_id}/users", - "summary": "Get users of a group.", + "summary": "Get users of a policy group.", "return_type": "paginated_response(user)", "return_info": { "self": false, @@ -56957,11 +60940,27 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "readOnly": true, "required": false, "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "readOnly": true, + "required": false, + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -57029,7 +61028,7 @@ "primary_key_field": "id", "methods": [ { - "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```\ncurl -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```", + "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```\ncurl -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```", "field_renames": [], "fields": [ { @@ -57130,7 +61129,7 @@ "_key": "create" }, { - "description": "Remove a PSK.\n\n**Example:**\n\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \\\n-H \"Authorization: Bearer \"\n```", + "description": "Remove a PSK.\n\n**Example:**\n\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \\\n-H \"Authorization: Bearer \"\n```", "field_renames": [], "fields": [ { @@ -57203,7 +61202,7 @@ "_key": "delete" }, { - "description": "Retrieve pre-shared keys (PSKs) with pagination. Default page size of 50 entries.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \\\n-H \"Authorization: Bearer \"\n```", + "description": "Retrieve pre-shared keys (PSKs) with pagination. Default page size of 50 entries.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \\\n-H \"Authorization: Bearer \"\n```", "field_renames": [], "fields": [ { @@ -57241,13 +61240,16 @@ }, { "type": "integer", - "description": "The number of entries per page.", + "description": "The number of objects to retrieve on a page (2-1000). Values outside the range are set to the closest limit.", "example": 50, "api_fieldname": "limit", "entity_fieldname": "limit", "name": "limit", "in": "query", "required": false, + "default": 50, + "minimum": 2, + "maximum": 1000, "external_param": true, "parameter_fieldname": "limit", "_key": "limit" @@ -57404,7 +61406,7 @@ "_key": "list" }, { - "description": "Check if a PSK for an endpoint exists or not. The response does not contain the secret itself.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \\\n-H \"Authorization: Bearer \"\n```", + "description": "Check if a PSK for an endpoint exists or not. The response does not contain the secret itself.\n\n**Example:**\n\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \\\n-H \"Authorization: Bearer \"\n```", "field_renames": [], "fields": [ { @@ -57557,7 +61559,7 @@ ], "field_renames": [], "tags": [ - "PreSharedKeys" + "Security and identity - pre-shared keys" ], "group_id": "Security", "_key": "pre_shared_key" @@ -57635,7 +61637,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Return bootstrap server credentials for client to connect to bootstrap server.\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/bootstrap \\\n-H \"Authorization: Bearer \"\n```", + "description": "Return bootstrap server credentials for client to connect to bootstrap server.\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/bootstrap \\\n-H \"Authorization: Bearer \"\n```", "field_renames": [], "fields": [], "method": "get", @@ -57899,7 +61901,7 @@ "_key": "get_bootstrap" }, { - "description": "Return LwM2M server credentials for client to connect to LwM2M server.\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/lwm2m \\\n-H \"Authorization: Bearer \"\n```", + "description": "Return LwM2M server credentials for client to connect to LwM2M server.\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/lwm2m \\\n-H \"Authorization: Bearer \"\n```", "field_renames": [], "fields": [], "method": "get", @@ -58200,7 +62202,7 @@ ], "field_renames": [], "tags": [ - "Service security - server credentials" + "Security and identity - server credentials" ], "group_id": "Security", "_key": "server_credentials" @@ -58215,7 +62217,7 @@ "primary_key_field": "id", "methods": [ { - "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.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"MyKey1\"}'\n```", + "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.\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}/api-keys \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"MyKey1\"}'\n```", "field_renames": [], "fields": [ { @@ -58252,7 +62254,7 @@ "entity_fieldname": "name", "parameter_fieldname": "name", "in": "body", - "required": true, + "required": false, "_key": "name" }, { @@ -58385,7 +62387,7 @@ "entity_fieldname": "name", "parameter_fieldname": "name", "in": "body", - "required": true, + "required": false, "_key": "name" }, { @@ -58445,7 +62447,7 @@ "_key": "201" }, { - "description": "Error in input data, for example, missing display name.", + "description": "Error in input data, for example, missing API key name.", "schema": { "type": "object", "required": [ @@ -58746,7 +62748,12 @@ "type": "subtenant_api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/access-keys", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -58770,7 +62777,7 @@ "_key": "create" }, { - "description": "Delete an API key.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete an API key.\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}/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -59034,7 +63041,12 @@ "type": "subtenant_api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "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}", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -59052,7 +63064,7 @@ "_key": "delete" }, { - "description": "Retrieve groups associated with the API key.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of policy groups associated with 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}/groups \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -59070,7 +63082,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -59122,7 +63134,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -59157,7 +63169,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -59195,8 +63207,21 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -59292,7 +63317,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -59547,7 +63572,7 @@ } ], "path": "/v3/accounts/{account_id}/api-keys/{apikey_id}/groups", - "summary": "Get groups associated with the API key.", + "summary": "Get policy groups of an API key.", "return_type": "paginated_response(subtenant_policy_group)", "return_info": { "self": false, @@ -59555,7 +63580,12 @@ "type": "subtenant_policy_group" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/applications/{application_id}/groups", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -59579,7 +63609,7 @@ "_key": "policy_groups" }, { - "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```", + "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```", "field_renames": [], "fields": [ { @@ -59708,7 +63738,7 @@ "entity_fieldname": "name", "parameter_fieldname": "name", "in": "body", - "required": true, + "required": false, "_key": "name" }, { @@ -59996,7 +64026,12 @@ "type": "subtenant_api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "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}", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -60023,7 +64058,7 @@ "_key": "read" }, { - "description": "Update API key details.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestApiKey25\"}'\n```", + "description": "Update API key details.\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}/api-keys/{apikey_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestApiKey25\"}'\n```", "field_renames": [], "fields": [ { @@ -60072,7 +64107,7 @@ "entity_fieldname": "name", "parameter_fieldname": "name", "in": "body", - "required": true, + "required": false, "_key": "name" }, { @@ -60205,7 +64240,7 @@ "entity_fieldname": "name", "parameter_fieldname": "name", "in": "body", - "required": true, + "required": false, "_key": "name" }, { @@ -60265,7 +64300,7 @@ "_key": "200" }, { - "description": "Error in input data, for example, missing display name.", + "description": "Error in input data, for example, invalid API key name.", "schema": { "type": "object", "required": [ @@ -60566,7 +64601,12 @@ "type": "subtenant_api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "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}", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -60729,7 +64769,7 @@ "primary_key_field": "reference", "methods": [ { - "description": "Resets the branding color of a tenant account to its dark theme default.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Resets the branding color to its dark theme default.\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}/branding-colors/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -61030,7 +65070,7 @@ "_key": "delete" }, { - "description": "Retrieve the requested dark theme branding color.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the requested dark theme branding color.\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}/branding-colors/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -61412,7 +65452,7 @@ "_key": "read" }, { - "description": "Update a dark theme branding color 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/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"#f3f93e\" }'\n```", + "description": "Update a dark theme branding color.\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/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"#f3f93e\" }'\n```", "field_renames": [], "fields": [ { @@ -61967,7 +66007,7 @@ "primary_key_field": "reference", "methods": [ { - "description": "Revert an account branding image to dark theme default.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", + "description": "Revert an account branding image to dark theme default.\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}/branding-images/dark/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -62286,7 +66326,7 @@ "_key": "delete" }, { - "description": "Retrieve metadata of one account dark theme branding image.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve metadata of one account dark theme branding image.\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}/branding-images/dark/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -62699,7 +66739,7 @@ "_key": "read" }, { - "description": "Upload a new account dark theme branding image as form data in PNG or JPEG format.", + "description": "Upload a new account dark theme branding image as form data in PNG or JPEG format.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -63307,7 +67347,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Create a new identity provider.", + "description": "Create a new identity provider.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -63387,42 +67427,49 @@ { "type": "string", "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", "x-nullable": true, "_key": "email_verified" }, { "type": "string", "description": "Custom claim name for 'family_name'.", + "example": "family_name", "x-nullable": true, "_key": "family_name" }, { "type": "string", "description": "Custom claim name for 'given_name'.", + "example": "given_name", "x-nullable": true, "_key": "given_name" }, { "type": "string", "description": "Custom claim name for 'name'.", + "example": "name", "x-nullable": true, "_key": "name" }, { "type": "string", "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", "x-nullable": true, "_key": "phone_number" }, { "type": "string", "description": "Custom claim name for 'sub'.", + "example": "sub", "x-nullable": true, "_key": "sub" }, { "type": "string", "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", "x-nullable": true, "_key": "updated_at" }, @@ -63548,13 +67595,10 @@ "group": "Accounts", "entity": "oidc_request" }, - "name": "oidc_attributes", - "in": "body", - "schema_param": true, - "entity_fieldname": "oidc_attributes", "api_fieldname": "oidc_attributes", - "external_param": true, + "entity_fieldname": "oidc_attributes", "parameter_fieldname": "oidc_attributes", + "in": "body", "_key": "oidc_attributes" }, { @@ -63736,6 +67780,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "parameter_fieldname": "oidc_attributes", + "in": "body", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -64167,7 +68415,7 @@ "_key": "create" }, { - "description": "Delete an identity provider by ID.", + "description": "Delete an identity provider by ID.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -64349,7 +68597,7 @@ "_key": "403" }, { - "description": "Account or identity provider not found.", + "description": "An account or identity provider not found.", "schema": { "type": "object", "required": [ @@ -64449,7 +68697,7 @@ "_key": "delete" }, { - "description": "Delete a service provider certificate.", + "description": "Delete a service provider certificate.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -64577,6 +68825,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "parameter_fieldname": "oidc_attributes", + "in": "body", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -64831,7 +69283,7 @@ "_key": "403" }, { - "description": "Account or identity provider not found.", + "description": "An account or identity provider not found.", "schema": { "type": "object", "required": [ @@ -64925,6 +69377,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "is_default" ], "group_id": "Accounts", @@ -64938,7 +69391,7 @@ "_key": "delete_service_provider_certificate" }, { - "description": "Generate a new service provider certificate.", + "description": "Generate a new service provider certificate.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -65106,6 +69559,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "parameter_fieldname": "oidc_attributes", + "in": "body", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -65433,7 +70090,7 @@ "_key": "403" }, { - "description": "Account or identity provider not found.", + "description": "An account or identity provider not found.", "schema": { "type": "object", "required": [ @@ -65527,6 +70184,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "is_default" ], "group_id": "Accounts", @@ -65540,7 +70198,7 @@ "_key": "generate_service_provider_certificate" }, { - "description": "Retrieve identity providers in an array.", + "description": "Retrieve an array of identity providers.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -65558,7 +70216,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -65598,7 +70256,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -65633,7 +70291,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -65710,6 +70368,208 @@ ], "_key": "object" }, + { + "type": "object", + "required": [ + "issuer" + ], + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -65835,7 +70695,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -66124,7 +70984,7 @@ "_key": "list" }, { - "description": "Manage identity providers of a tenant account.", + "description": "Retrieve an identity provider.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -66245,6 +71105,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "parameter_fieldname": "oidc_attributes", + "in": "body", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -66499,7 +71563,7 @@ "_key": "403" }, { - "description": "Account or identity provider not found.", + "description": "An account or identity provider not found.", "schema": { "type": "object", "required": [ @@ -66573,7 +71637,7 @@ } ], "path": "/v3/accounts/{account_id}/identity-providers/{identity_provider_id}", - "summary": "Retrieve identity provider by ID.", + "summary": "Get an identity provider.", "return_type": "subtenant_identity_provider", "return_info": { "self": true, @@ -66593,6 +71657,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "is_default" ], "group_id": "Accounts", @@ -66606,7 +71671,7 @@ "_key": "read" }, { - "description": "Refreshes an OIDC IdP's signing keys.", + "description": "Refresh an OIDC IdP's signing keys.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -66734,6 +71799,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "parameter_fieldname": "oidc_attributes", + "in": "body", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -67061,7 +72330,7 @@ "_key": "403" }, { - "description": "Account or identity provider not found.", + "description": "An account or identity provider not found.", "schema": { "type": "object", "required": [ @@ -67135,7 +72404,7 @@ } ], "path": "/v3/accounts/{account_id}/identity-providers/{identity_provider_id}/refresh-jwks", - "summary": "Refreshes the OIDC signing keys.", + "summary": "Refresh the OIDC signing keys.", "return_type": "subtenant_identity_provider", "return_info": { "self": true, @@ -67155,6 +72424,7 @@ "description", "status", "saml2_attributes", + "oidc_attributes", "is_default" ], "group_id": "Accounts", @@ -67168,7 +72438,7 @@ "_key": "refresh_tokens" }, { - "description": "Update an existing identity provider.", + "description": "Update an existing identity provider.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -67260,42 +72530,49 @@ { "type": "string", "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", "x-nullable": true, "_key": "email_verified" }, { "type": "string", "description": "Custom claim name for 'family_name'.", + "example": "family_name", "x-nullable": true, "_key": "family_name" }, { "type": "string", "description": "Custom claim name for 'given_name'.", + "example": "given_name", "x-nullable": true, "_key": "given_name" }, { "type": "string", "description": "Custom claim name for 'name'.", + "example": "name", "x-nullable": true, "_key": "name" }, { "type": "string", "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", "x-nullable": true, "_key": "phone_number" }, { "type": "string", "description": "Custom claim name for 'sub'.", + "example": "sub", "x-nullable": true, "_key": "sub" }, { "type": "string", "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", "x-nullable": true, "_key": "updated_at" }, @@ -67421,13 +72698,10 @@ "group": "Accounts", "entity": "oidc_request" }, - "name": "oidc_attributes", - "in": "body", - "schema_param": true, - "entity_fieldname": "oidc_attributes", "api_fieldname": "oidc_attributes", - "external_param": true, + "entity_fieldname": "oidc_attributes", "parameter_fieldname": "oidc_attributes", + "in": "body", "_key": "oidc_attributes" }, { @@ -67597,6 +72871,210 @@ "entity_fieldname": "object", "_key": "object" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "entity_fieldname": "oidc_attributes", + "parameter_fieldname": "oidc_attributes", + "in": "body", + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -67924,7 +73402,7 @@ "_key": "403" }, { - "description": "Account or identity provider not found.", + "description": "An account or identity provider not found.", "schema": { "type": "object", "required": [ @@ -68090,6 +73568,210 @@ "readOnly": false, "_key": "name" }, + { + "type": "object", + "required": false, + "properties": [ + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "authorization_endpoint" + }, + { + "type": "boolean", + "description": "For future use.", + "x-nullable": true, + "_key": "auto_enrollment" + }, + { + "description": "Mapping for non-standard OIDC claim names.", + "type": "object", + "properties": [ + { + "type": "string", + "description": "Custom claim name for 'email'.", + "example": "email_address", + "x-nullable": true, + "_key": "email" + }, + { + "type": "string", + "description": "Custom claim name for 'email_verified'.", + "example": "email_verified", + "x-nullable": true, + "_key": "email_verified" + }, + { + "type": "string", + "description": "Custom claim name for 'family_name'.", + "example": "family_name", + "x-nullable": true, + "_key": "family_name" + }, + { + "type": "string", + "description": "Custom claim name for 'given_name'.", + "example": "given_name", + "x-nullable": true, + "_key": "given_name" + }, + { + "type": "string", + "description": "Custom claim name for 'name'.", + "example": "name", + "x-nullable": true, + "_key": "name" + }, + { + "type": "string", + "description": "Custom claim name for 'phone_number'.", + "example": "phone_number", + "x-nullable": true, + "_key": "phone_number" + }, + { + "type": "string", + "description": "Custom claim name for 'sub'.", + "example": "sub", + "x-nullable": true, + "_key": "sub" + }, + { + "type": "string", + "description": "Custom claim name for 'updated_at'.", + "example": "updated_at", + "x-nullable": true, + "_key": "updated_at" + }, + { + "type": "string", + "description": "Custom pattern for claim 'updated_at' as defined by the Java SimpleDateFormat class.", + "example": "yyyy-MM-dd'T'HH:mm:ssXXX", + "x-nullable": true, + "_key": "updated_at_pattern" + } + ], + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request_claim_mapping" + }, + "x-nullable": true, + "_key": "claim_mapping" + }, + { + "type": "string", + "description": "Client ID needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_id" + }, + { + "type": "string", + "description": "Client secret needed to authenticate and gain access to identity provider's API.", + "x-nullable": true, + "_key": "client_secret" + }, + { + "type": "string", + "description": "URL of the provider's end session endpoint.", + "x-nullable": true, + "_key": "end_session_endpoint" + }, + { + "type": "string", + "description": "Issuer of the identity provider.", + "_key": "issuer" + }, + { + "type": "string", + "description": "URL of the provider's JSON web key set document.", + "x-nullable": true, + "_key": "jwks_uri" + }, + { + "type": "array", + "description": "Provider's public keys and key IDs used to sign ID tokens. PEM-encoded.", + "items": { + "type": "object", + "properties": [ + { + "type": "string", + "description": "The public key.", + "_key": "key" + }, + { + "type": "string", + "description": "The public key ID.", + "_key": "kid" + } + ], + "description": "Represents provider's public key and key ID used to sign ID tokens. PEM-encoded.", + "foreign_key": { + "group": "Accounts", + "entity": "identity_provider_public_key" + } + }, + "x-nullable": true, + "_key": "keys" + }, + { + "type": "string", + "description": "The URI needed to authenticate and gain access to identity provider's API. Leave this empty to use the default redirect URI.", + "x-nullable": true, + "_key": "redirect_uri" + }, + { + "type": "string", + "description": "URL of the provider's token revocation endpoint.", + "x-nullable": true, + "_key": "revocation_endpoint" + }, + { + "type": "string", + "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", + "_key": "scopes" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 authorization endpoint.", + "x-nullable": true, + "_key": "token_endpoint" + }, + { + "type": "string", + "enum": [ + "POST", + "GET" + ], + "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.", + "_key": "token_request_mode" + }, + { + "type": "string", + "description": "Path to the standard data in the token response. Levels in the JSON structure must be separated by '.' (dot) characters.", + "example": "oidc.data", + "_key": "token_response_path" + }, + { + "type": "string", + "description": "URL of the OAuth 2.0 UserInfo endpoint.", + "x-nullable": true, + "_key": "userinfo_endpoint" + } + ], + "description": "Represents OIDC specific attributes.", + "foreign_key": { + "group": "Accounts", + "entity": "oidc_request" + }, + "api_fieldname": "oidc_attributes", + "parameter_fieldname": "oidc_attributes", + "in": "body", + "readOnly": false, + "_key": "oidc_attributes" + }, { "type": "object", "properties": [ @@ -68188,7 +73870,7 @@ "primary_key_field": "reference", "methods": [ { - "description": "Resets the branding color of a tenant account to its light theme default.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Resets the branding color to its light theme default.\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}/branding-colors/light/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -68489,7 +74171,7 @@ "_key": "delete" }, { - "description": "Retrieve the requested light theme branding color.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference}\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the requested light theme branding color.\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}/branding-colors/light/{reference}\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -68871,7 +74553,7 @@ "_key": "read" }, { - "description": "Update a light theme branding color 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/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"purple\" }'\n```", + "description": "Update a light theme branding color.\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/primary \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{ \"color\": \"purple\" }'\n```", "field_renames": [], "fields": [ { @@ -69426,7 +75108,7 @@ "primary_key_field": "reference", "methods": [ { - "description": "Revert an account branding image to light theme default.\n\n**Example:**\n```curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", + "description": "Revert an account branding image to light theme default.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference}/clear \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -69745,7 +75427,7 @@ "_key": "delete" }, { - "description": "Retrieve metadata for one account light theme branding image.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve metadata for one account light theme branding image.\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}/branding-images/light/{reference} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -70158,7 +75840,7 @@ "_key": "read" }, { - "description": "Upload a new account branding image as form data in PNG or JPEG format.", + "description": "Upload a new account branding image as form data in PNG or JPEG format.\nNote: This endpoint is restricted to administrators.", "field_renames": [], "fields": [ { @@ -70767,7 +76449,7 @@ "primary_key_field": "id", "methods": [ { - "description": "List the API keys of the group with details.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of API keys associated with a policy group.\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}/policy-groups/{group_id}/api-keys \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -70785,7 +76467,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -70837,7 +76519,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -70872,7 +76554,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -71036,7 +76718,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -71291,7 +76973,7 @@ } ], "path": "/v3/accounts/{account_id}/policy-groups/{group_id}/api-keys", - "summary": "Get API keys of a group.", + "summary": "Get API keys in a group.", "return_type": "paginated_response(subtenant_api_key)", "return_info": { "self": false, @@ -71299,7 +76981,12 @@ "type": "subtenant_api_key" }, "x_filter": {}, - "x_deprecation": null, + "x_deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This endpoint is deprecated. Use GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/applications", + "links": [] + }, "drop_fields": [ "object", "etag", @@ -71323,7 +77010,7 @@ "_key": "api_keys" }, { - "description": "Create a new group.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"MyGroup1\"}'\n```", + "description": "Create a new group.\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 \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"MyGroup1\"}'\n```", "field_renames": [], "fields": [ { @@ -71347,8 +77034,22 @@ "items": { "type": "string" }, + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This field is deprecated, use 'applications'", + "links": [] + }, "_key": "apikeys" }, + { + "type": "array", + "description": "An array of applicationIDs.", + "items": { + "type": "string" + }, + "_key": "applications" + }, { "type": "array", "description": "An array of user IDs.", @@ -71413,10 +77114,25 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "entity_fieldname": "apikey_count", "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "entity_fieldname": "application_count", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -71880,6 +77596,7 @@ "created_at", "updated_at", "user_count", + "application_count", "apikey_count" ], "group_id": "Accounts", @@ -71893,7 +77610,7 @@ "_key": "create" }, { - "description": "Delete a group.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete a group.\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} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -72175,7 +77892,7 @@ "_key": "delete" }, { - "description": "Retrieve all group information.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of policy groups.\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}/policy-groups \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -72193,7 +77910,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -72233,7 +77950,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -72268,7 +77985,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -72306,8 +78023,21 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -72403,7 +78133,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -72658,7 +78388,7 @@ } ], "path": "/v3/accounts/{account_id}/policy-groups", - "summary": "Get all group information.", + "summary": "Get policy groups.", "return_type": "paginated_response(subtenant_policy_group)", "return_info": { "self": true, @@ -72697,7 +78427,7 @@ "_key": "list" }, { - "description": "Retrieve general information about the group.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve policy group details.\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}/policy-groups/{group_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -72756,10 +78486,25 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "entity_fieldname": "apikey_count", "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "entity_fieldname": "application_count", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -73059,7 +78804,7 @@ } ], "path": "/v3/accounts/{account_id}/policy-groups/{group_id}", - "summary": "Get group information.", + "summary": "Get policy group.", "return_type": "subtenant_policy_group", "return_info": { "self": true, @@ -73077,6 +78822,7 @@ "updated_at", "name", "user_count", + "application_count", "apikey_count" ], "group_id": "Accounts", @@ -73090,7 +78836,7 @@ "_key": "read" }, { - "description": "Update a group name.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestGroup2\"}'\n```", + "description": "Update a group name.\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}/policy-groups/{group_id}/ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"name\": \"TestGroup2\"}'\n```", "field_renames": [], "fields": [ { @@ -73161,10 +78907,25 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "entity_fieldname": "apikey_count", "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "entity_fieldname": "application_count", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -73554,6 +79315,7 @@ "created_at", "updated_at", "user_count", + "application_count", "apikey_count" ], "group_id": "Accounts", @@ -73567,7 +79329,7 @@ "_key": "update" }, { - "description": "List a group's users, with details.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id}/users \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of users associated with a policy group.\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}/policy-groups/{group_id}/users \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -73585,7 +79347,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -73637,7 +79399,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -73672,7 +79434,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -73952,6 +79714,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -73961,6 +79733,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -73971,6 +79744,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -74104,7 +79878,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -74359,7 +80133,7 @@ } ], "path": "/v3/accounts/{account_id}/policy-groups/{group_id}/users", - "summary": "Get users of a group.", + "summary": "Get users in a policy group.", "return_type": "paginated_response(subtenant_user)", "return_info": { "self": false, @@ -74416,11 +80190,27 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "api_fieldname": "apikey_count", "readOnly": true, "required": false, "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "api_fieldname": "application_count", + "readOnly": true, + "required": false, + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -74493,7 +80283,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Upload new trusted certificates.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"name\": \"myCert1\", \"description\": \"very important cert\", \"certificate\": \"certificate_data\", \"service\": \"lwm2m\"}\n```", + "description": "Upload new trusted certificate.\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}/trusted-certificates \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"name\": \"myCert1\", \"description\": \"very important cert\", \"certificate\": \"certificate_data\", \"service\": \"lwm2m\"}\n```", "field_renames": [], "fields": [ { @@ -74535,7 +80325,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", @@ -74681,7 +80477,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", @@ -74971,7 +80773,7 @@ "_key": "401" }, { - "description": "Forbidden, only available for admins of commercial accounts.", + "description": "Forbidden, only available for administrators of commercial accounts.", "schema": { "type": "object", "required": [ @@ -75153,7 +80955,7 @@ "_key": "create" }, { - "description": "Delete the trusted certificate.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete a trusted certificate.\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}/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -75273,7 +81075,7 @@ "_key": "401" }, { - "description": "Forbidden, only available for admins of commercial accounts.", + "description": "Forbidden, only available for administrators of commercial accounts.", "schema": { "type": "object", "required": [ @@ -75346,7 +81148,7 @@ "_key": "403" }, { - "description": "Account or certificate with the given ID not found.", + "description": "An account or certificate with the given ID not found.", "schema": { "type": "object", "required": [ @@ -75420,7 +81222,7 @@ } ], "path": "/v3/accounts/{account_id}/trusted-certificates/{cert_id}", - "summary": "Delete trusted certificate by ID.", + "summary": "Delete a trusted certificate by ID.", "return_type": "subtenant_trusted_certificate", "return_info": { "self": true, @@ -75447,7 +81249,7 @@ "_key": "delete" }, { - "description": "Return an existing developer certificate (a certificate that can be flashed to multiple devices to connect to bootstrap server).\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \\\n-H \"Authorization: Bearer \"\n```", + "description": "Return an existing developer certificate (a certificate that can be flashed to multiple devices to connect to bootstrap server).\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \\\n-H \"Authorization: Bearer \"\n```", "field_renames": [], "fields": [ { @@ -75855,7 +81657,7 @@ "_key": "get_developer_certificate_info" }, { - "description": "Retrieve a trusted certificate by ID.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve a trusted certificate.\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}/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -75977,7 +81779,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", @@ -76194,7 +82002,7 @@ "_key": "401" }, { - "description": "Forbidden, only available for admins of commercial accounts.", + "description": "Forbidden, only available for administrators of commercial accounts.", "schema": { "type": "object", "required": [ @@ -76267,7 +82075,7 @@ "_key": "403" }, { - "description": "Account or certificate with the given ID not found.", + "description": "An account or certificate with the given ID not found.", "schema": { "type": "object", "required": [ @@ -76341,7 +82149,7 @@ } ], "path": "/v3/accounts/{account_id}/trusted-certificates/{cert_id}", - "summary": "Get trusted certificate by ID.", + "summary": "Get a trusted certificate.", "return_type": "subtenant_trusted_certificate", "return_info": { "self": true, @@ -76383,7 +82191,7 @@ "_key": "read" }, { - "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 ```", + "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 ```", "field_renames": [], "fields": [ { @@ -76425,7 +82233,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", @@ -76583,7 +82397,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", @@ -76873,7 +82693,7 @@ "_key": "401" }, { - "description": "Forbidden, only available for admins of commercial accounts.", + "description": "Forbidden, only available for administrators of commercial accounts.", "schema": { "type": "object", "required": [ @@ -77124,7 +82944,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", "in": "body", @@ -77259,8 +83085,8 @@ ], "field_renames": [], "tags": [ - "Tenant device security - certificates", - "Device security - developer class certificates" + "Tenant security and identity - certificates", + "Security and identity - developer class certificates" ], "group_id": "Security", "_key": "subtenant_trusted_certificate" @@ -77275,7 +83101,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Create or invite a new user to the account. Only email address is used; other attributes are set in the second step.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", + "description": "Create or invite a new user to the account. Only email address is used; other attributes are set in the second step.\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}/users \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", "field_renames": [], "fields": [ { @@ -77387,6 +83213,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -77396,6 +83232,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -77406,6 +83243,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -77799,6 +83637,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -77808,6 +83656,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -77818,6 +83667,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -78353,7 +84203,7 @@ "_key": "create" }, { - "description": "Delete a user.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete a user.\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}/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -78708,7 +84558,7 @@ "_key": "delete" }, { - "description": "Retrieve user's groups.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of policy groups associated with a user.\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}/users/{user_id}/groups \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -78726,7 +84576,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -78778,7 +84628,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -78813,7 +84663,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -78851,8 +84701,21 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -78948,7 +84811,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -79203,7 +85066,7 @@ } ], "path": "/v3/accounts/{account_id}/users/{user_id}/groups", - "summary": "Get user's groups.", + "summary": "Get policy groups for a user.", "return_type": "paginated_response(subtenant_policy_group)", "return_info": { "self": false, @@ -79235,7 +85098,7 @@ "_key": "policy_groups" }, { - "description": "Retrieve user details.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve user details.\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}/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -79592,6 +85455,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -79601,6 +85474,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -79611,6 +85485,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -80009,7 +85884,7 @@ "_key": "read" }, { - "description": "Update user details.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"username\": \"myusername\"}'\n```", + "description": "Update user details.\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}/users/{user_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"username\": \"myusername\"}'\n```", "field_renames": [], "fields": [ { @@ -80119,6 +85994,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -80128,6 +86013,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -80138,6 +86024,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -80519,6 +86406,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -80528,6 +86425,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -80538,6 +86436,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -81074,7 +86973,7 @@ "_key": "update" }, { - "description": "Validate user email.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/validate-email \\\n-H 'Authorization: Bearer '\n```", + "description": "Validate user email.\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}/users/{user_id}/validate-email \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -81670,6 +87569,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -81679,6 +87588,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -81689,6 +87599,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -81819,7 +87730,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Invite a new or existing user.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accouns/{account_id}/user-invitations \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", + "description": "Invite a new or existing user.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/accouns/{account_id}/user-invitations \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", "field_renames": [], "fields": [ { @@ -81871,6 +87782,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -81880,6 +87801,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -81890,6 +87812,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -82033,6 +87956,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -82042,6 +87975,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -82052,6 +87986,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -82366,7 +88301,7 @@ "_key": "create" }, { - "description": "Delete an active user invitation sent to a new or existing user.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete an active user invitation sent to a new or existing user.\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}/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -82648,7 +88583,7 @@ "_key": "delete" }, { - "description": "Retrieve details of an active user invitation sent for a new or existing user.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve details of an active user invitation sent for a new or existing user.\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}/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -82776,6 +88711,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -82785,6 +88730,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -82795,6 +88741,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -83191,6 +89138,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -83200,6 +89157,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -83210,6 +89168,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -83274,7 +89233,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Upload new trusted certificates.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"name\": \"myCert1\", \"description\": \"very important cert\", \"certificate\": \"certificate_data\", \"service\": \"lwm2m\"}\n```", + "description": "Upload new trusted certificates.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"name\": \"myCert1\", \"description\": \"very important cert\", \"certificate\": \"certificate_data\", \"service\": \"lwm2m\"}\n```", "field_renames": [], "fields": [ { @@ -83304,7 +89263,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", @@ -83444,7 +89409,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "_key": "enrollment_mode" @@ -83717,7 +89688,7 @@ "_key": "401" }, { - "description": "Forbidden, only available for admins of commercial accounts.", + "description": "Forbidden, only available for administrators of commercial accounts.", "schema": { "type": "object", "required": [ @@ -83900,7 +89871,7 @@ "_key": "create" }, { - "description": "Delete a trusted certificate.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete a trusted certificate.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -84081,7 +90052,7 @@ "_key": "403" }, { - "description": "Certificate not found.", + "description": "A certificate not found.", "schema": { "type": "object", "required": [ @@ -84182,7 +90153,7 @@ "_key": "delete" }, { - "description": "Return an existing developer certificate (a certificate that can be flashed to multiple devices to connect to bootstrap server).\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \\\n-H \"Authorization: Bearer \"\n```", + "description": "Return an existing developer certificate (a certificate that can be flashed to multiple devices to connect to bootstrap server).\n\n**Example:**\n```\ncurl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \\\n-H \"Authorization: Bearer \"\n```", "field_renames": [], "fields": [ { @@ -84590,13 +90561,13 @@ "_key": "get_developer_certificate_info" }, { - "description": "Retrieve trusted certificates in an array.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of trusted certificates.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -84647,7 +90618,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -84682,7 +90653,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -84751,7 +90722,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "_key": "enrollment_mode" }, { @@ -85093,6 +91070,9 @@ "subject": [ "like" ], + "certificate_fingerprint": [ + "eq" + ], "valid": [ "eq" ] @@ -85117,6 +91097,7 @@ "status__eq", "issuer__like", "subject__like", + "certificate_fingerprint__eq", "valid__eq" ], "foreign_key_priority": "self", @@ -85132,7 +91113,7 @@ "_key": "list" }, { - "description": "Retrieve a trusted certificate by ID.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve a trusted certificate.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -85236,7 +91217,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "_key": "enrollment_mode" @@ -85509,7 +91496,7 @@ "_key": "403" }, { - "description": "Certificate not found.", + "description": "A certificate not found.", "schema": { "type": "object", "required": [ @@ -85583,7 +91570,7 @@ } ], "path": "/v3/trusted-certificates/{cert_id}", - "summary": "Get trusted certificate by ID.", + "summary": "Get a trusted certificate.", "return_type": "trusted_certificate", "return_info": { "self": true, @@ -85626,7 +91613,7 @@ "_key": "read" }, { - "description": "Update existing trusted certificates.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"description\": \"very important cert\"}\n```", + "description": "Update existing trusted certificates.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"description\": \"very important cert\"}\n```", "field_renames": [], "fields": [ { @@ -85656,7 +91643,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "parameter_fieldname": "enrollment_mode", @@ -85808,7 +91801,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "entity_fieldname": "enrollment_mode", "_key": "enrollment_mode" @@ -86154,7 +92153,7 @@ "_key": "403" }, { - "description": "Certificate not found.", + "description": "A certificate not found.", "schema": { "type": "object", "required": [ @@ -86402,7 +92401,13 @@ { "type": "boolean", "example": false, - "description": "If true, signature is not required. Default value false.", + "description": "DEPRECATED: Certificate is used in enrollment mode. Default value is false.", + "x-deprecation": { + "issued_at": "2020-11-01T00:00:00+00:00", + "end_of_life_at": "2021-11-01T00:00:00+00:00", + "comment": "This field is deprecated, do not use it anymore.", + "links": [] + }, "api_fieldname": "enrollment_mode", "readOnly": false, "required": false, @@ -86527,8 +92532,8 @@ ], "field_renames": [], "tags": [ - "Device security - certificates", - "Device security - developer class certificates" + "Security and identity - certificates", + "Security and identity - developer class certificates" ], "group_id": "Security", "_key": "trusted_certificate" @@ -86544,7 +92549,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Archive a campaign.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/archive \\\n-H 'Authorization: '\n```\n", + "description": "Archive a campaign.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/016e83ddc649000000000001001000b8/archive \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { @@ -86565,8 +92570,7 @@ "name": "campaign_id", "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, + "pattern": "[A-Fa-f0-9]{32}", "entity_fieldname": "id", "api_fieldname": "campaign_id", "external_param": false, @@ -86583,18 +92587,294 @@ }, { "description": "Unable to change the phase of the campaign.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Cannot find the campaign.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" }, { "description": "Cannot archive the campaign while in the current phase.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "409" } ], @@ -86626,7 +92906,7 @@ "_key": "archive" }, { - "description": "Create an update campaign.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns \\\n-H 'Authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n-d '{\n \"campaign_strategy\": \"one-shot\",\n \"description\": \"Campaign is for ...\",\n \"device_filter\": \"id__eq=123400000000000000000000000ae45\",\n \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\",\n}'\n```\n", + "description": "Create an update campaign.\n\nTo include a filter for targeted devices, refer to the filter using `` in the message body.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\n-d '{\n \"campaign_strategy\": \"one-shot\",\n \"description\": \"Campaign is for ...\",\n \"device_filter\": \"\",\n \"name\": \"campaign\",\n \"root_manifest_id\": \"56780000000000a5b70000000000bd98\"\n}'\n```\n", "field_renames": [], "fields": [ { @@ -86692,9 +92972,9 @@ "_key": "description" }, { - "description": "The filter for the devices the campaign is targeting at.", + "description": "The filter for the devices the campaign targets. Refer to this using the filter ID.", "type": "string", - "example": "id__eq=00000000000000000000000000000000", + "example": "state__eq=registered", "api_fieldname": "device_filter", "entity_fieldname": "device_filter", "parameter_fieldname": "device_filter", @@ -86729,13 +93009,26 @@ { "description": "The ID of the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "00000000000000000000000000000000", + "example": "016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_id", "entity_fieldname": "root_manifest_id", "parameter_fieldname": "root_manifest_id", "in": "body", "required": false, "_key": "root_manifest_id" + }, + { + "description": "The scheduled start time for the campaign. The campaign will start within 1 minute when then start time has elapsed.", + "type": "string", + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "x-nullable": true, + "api_fieldname": "when", + "entity_fieldname": "when", + "parameter_fieldname": "when", + "in": "body", + "required": false, + "_key": "when" } ], "method": "post", @@ -86787,6 +93080,7 @@ "object": { "description": "Entity name: always 'update-campaign'.", "type": "string", + "example": "update-campaign", "api_fieldname": "object", "entity_fieldname": "object" }, @@ -86844,9 +93138,9 @@ "entity_fieldname": "description" }, "device_filter": { - "description": "The filter for the devices the campaign is targeting at.", + "description": "The filter for the devices the campaign targets. Refer to this using the filter ID.", "type": "string", - "example": "id__eq=00000000000000000000000000000000", + "example": "state__eq=registered", "api_fieldname": "device_filter", "entity_fieldname": "device_filter" }, @@ -86861,7 +93155,8 @@ "id": { "description": "The campaign ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e83ddc648000000000001001000f5", "api_fieldname": "id", "entity_fieldname": "id" }, @@ -86876,14 +93171,14 @@ "root_manifest_id": { "description": "The ID of the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "00000000000000000000000000000000", + "example": "016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_id", "entity_fieldname": "root_manifest_id" }, "root_manifest_url": { "description": "The URL for the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000", + "example": "https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_url", "entity_fieldname": "root_manifest_url" }, @@ -86936,60 +93231,271 @@ "api_fieldname": "phase", "entity_fieldname": "phase" }, - "state": { - "description": "The state of the campaign.", + "state": { + "description": "The state of the campaign.", + "type": "string", + "enum": [ + "draft", + "scheduled", + "allocatingquota", + "allocatedquota", + "quotaallocationfailed", + "checkingmanifest", + "checkedmanifest", + "devicefetch", + "devicecopy", + "devicecheck", + "publishing", + "deploying", + "deployed", + "manifestremoved", + "expired", + "stopping", + "autostopped", + "userstopped", + "conflict" + ], + "x-deprecation": { + "issued_at": "2019-03-18T14:55:20+00:00", + "end_of_life_at": "2020-03-18T14:55:20+00:00", + "comment": "Use phase instead", + "links": [] + }, + "api_fieldname": "state", + "entity_fieldname": "state" + }, + "when": { + "description": "The scheduled start time for the campaign. The campaign will start within 1 minute when then start time has elapsed.", + "type": "string", + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "x-nullable": true, + "api_fieldname": "when", + "entity_fieldname": "when" + }, + "_key": "properties" + } + ], + "_key": "201" + }, + { + "description": "Validation error: The data used to create the campaign did not validate.\n", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Conflict, a campaign with the same name already exists", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { "type": "string", + "description": "Entity name, always `error`.", "enum": [ - "draft", - "scheduled", - "allocatingquota", - "allocatedquota", - "quotaallocationfailed", - "checkingmanifest", - "checkedmanifest", - "devicefetch", - "devicecopy", - "devicecheck", - "publishing", - "deploying", - "deployed", - "manifestremoved", - "expired", - "stopping", - "autostopped", - "userstopped", - "conflict" + "error" ], - "x-deprecation": { - "issued_at": "2019-03-18T14:55:20+00:00", - "end_of_life_at": "2020-03-18T14:55:20+00:00", - "comment": "Use phase instead", - "links": [] - }, - "api_fieldname": "state", - "entity_fieldname": "state" + "_key": "object" }, - "when": { - "description": "The scheduled start time for the campaign. The campaign will start within 1 minute when then start time has elapsed.", + { "type": "string", - "format": "date-time", - "example": "2017-05-22T12:37:55.576563Z", - "x-nullable": true, - "api_fieldname": "when", - "entity_fieldname": "when" + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" }, - "_key": "properties" - } - ], - "_key": "201" - }, - { - "description": "Validation error: The data used to create the campaign did not validate.\n", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "409" } ], "path": "/v3/update-campaigns", @@ -87020,8 +93526,7 @@ "started_at", "stopping_at", "stopped_at", - "phase", - "when" + "phase" ], "group_id": "Device_Update", "parameter_map": { @@ -87034,7 +93539,7 @@ "_key": "create" }, { - "description": "Delete an update campaign.\n
\n**Usage example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", + "description": "Delete an update campaign.\n
\n**Usage example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/update-campaigns/1123457f9012ab567890120000789012 \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { @@ -87055,8 +93560,7 @@ "name": "campaign_id", "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, + "pattern": "[A-Fa-f0-9]{32}", "entity_fieldname": "id", "api_fieldname": "campaign_id", "external_param": false, @@ -87073,14 +93577,221 @@ }, { "description": "Validation error: The data used to update the campaign did not validate.\n", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Update campaign can't be found.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" }, { @@ -87185,7 +93896,7 @@ "_key": "delete" }, { - "description": "Get metadata for all devices in a campaign.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/campaign-device-metadata \\\n-H 'Authorization: '\n```\n", + "description": "Get metadata for all devices in a campaign.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56790120000789012/campaign-device-metadata \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { @@ -87219,8 +93930,7 @@ "name": "campaign_id", "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, + "pattern": "[A-Fa-f0-9]{32}", "entity_fieldname": "id", "api_fieldname": "campaign_id", "external_param": false, @@ -87358,6 +94068,7 @@ { "type": "string", "description": "The metadata record ID.", + "pattern": "[A-Fa-f0-9]{32}", "example": "015c3029f6f7000000000001001000c3", "api_fieldname": "id", "entity_fieldname": "id", @@ -87393,6 +94104,7 @@ { "type": "string", "description": "The entity name: always 'update-campaign-device-metadata'.", + "example": "update-campaign-device-metadata", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" @@ -87437,6 +94149,7 @@ { "type": "string", "description": "The entity name: always 'list'.", + "example": "list", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" @@ -87510,7 +94223,7 @@ "_key": "device_metadata" }, { - "description": "Get update campaigns for devices specified by a filter.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns \\\n-H 'Authorization: '\n```\n", + "description": "Get update campaigns for devices specified by a filter.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { @@ -87640,7 +94353,8 @@ }, "object": { "description": "Entity name: always 'update-campaign'.", - "type": "string" + "type": "string", + "example": "update-campaign" }, "active_at": { "description": "The time the campaign entered the active state.", @@ -87682,9 +94396,9 @@ "example": "This campaign updates Class XX devices to version 1.34" }, "device_filter": { - "description": "The filter for the devices the campaign is targeting at.", + "description": "The filter for the devices the campaign targets. Refer to this using the filter ID.", "type": "string", - "example": "id__eq=00000000000000000000000000000000" + "example": "state__eq=registered" }, "finished": { "description": "The time the campaign finished.", @@ -87695,7 +94409,8 @@ "id": { "description": "The campaign ID.", "type": "string", - "example": "00000000000000000000000000000000" + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e83ddc648000000000001001000f5" }, "name": { "description": "The campaign name.", @@ -87706,12 +94421,12 @@ "root_manifest_id": { "description": "The ID of the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "00000000000000000000000000000000" + "example": "016e83dce36a00000000000100100102" }, "root_manifest_url": { "description": "The URL for the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000" + "example": "https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102" }, "starting_at": { "description": "The time the campaign will be started.", @@ -87812,6 +94527,7 @@ { "description": "Entity name: always 'list'.", "type": "string", + "example": "list", "api_fieldname": "object", "entity_fieldname": "object", "_key": "object" @@ -87834,25 +94550,232 @@ "entity_fieldname": "total_count", "_key": "total_count" } - ], - "pagination": true, - "foreign_key": { - "group": "Device_Update", - "entity": "update_campaign" - } + ], + "pagination": true, + "foreign_key": { + "group": "Device_Update", + "entity": "update_campaign" + } + }, + "_key": "200" + }, + { + "description": "Validation error: The data used to update the campaign did not validate.\n", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "400" + }, + { + "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, + "_key": "401" + }, + { + "description": "Unable to find content.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] }, - "_key": "200" - }, - { - "description": "Validation error: The data used to update the campaign did not validate.\n", - "_key": "400" - }, - { - "description": "Not authenticated.", - "_key": "401" - }, - { - "description": "Unable to find content.", "_key": "404" } ], @@ -88003,7 +94926,7 @@ "_key": "list" }, { - "description": "Get an update campaign.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012 \\\n-H 'Authorization: '\n```\n", + "description": "Get an update campaign.\n
\n**Usage example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56890120000789012 \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { @@ -88021,7 +94944,8 @@ { "description": "The campaign ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e83ddc648000000000001001000f5", "api_fieldname": "id", "entity_fieldname": "id", "parameter_fieldname": "campaign_id", @@ -88079,6 +95003,7 @@ "object": { "description": "Entity name: always 'update-campaign'.", "type": "string", + "example": "update-campaign", "api_fieldname": "object", "entity_fieldname": "object" }, @@ -88136,9 +95061,9 @@ "entity_fieldname": "description" }, "device_filter": { - "description": "The filter for the devices the campaign is targeting at.", + "description": "The filter for the devices the campaign targets. Refer to this using the filter ID.", "type": "string", - "example": "id__eq=00000000000000000000000000000000", + "example": "state__eq=registered", "api_fieldname": "device_filter", "entity_fieldname": "device_filter" }, @@ -88153,7 +95078,8 @@ "id": { "description": "The campaign ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e83ddc648000000000001001000f5", "api_fieldname": "id", "entity_fieldname": "id" }, @@ -88168,14 +95094,14 @@ "root_manifest_id": { "description": "The ID of the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "00000000000000000000000000000000", + "example": "016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_id", "entity_fieldname": "root_manifest_id" }, "root_manifest_url": { "description": "The URL for the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000", + "example": "https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_url", "entity_fieldname": "root_manifest_url" }, @@ -88277,14 +95203,221 @@ }, { "description": "Validation error: The data used to update the campaign did not validate.\n", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Unable to find campaign.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" } ], @@ -88337,7 +95470,7 @@ "_key": "read" }, { - "description": "Start a campaign.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/start \\\n-H 'Authorization: '\n```\n", + "description": "Start a campaign.\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/5d645eaec2315a8900002e655cd94fa8/start \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { @@ -88358,8 +95491,7 @@ "name": "campaign_id", "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, + "pattern": "[A-Fa-f0-9]{32}", "entity_fieldname": "id", "api_fieldname": "campaign_id", "external_param": false, @@ -88376,18 +95508,294 @@ }, { "description": "Unable to change the phase of the campaign.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Cannot find the campaign.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" }, { "description": "Cannot start the campaign while in the current phase.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "409" } ], @@ -88419,7 +95827,7 @@ "_key": "start" }, { - "description": "Stop a campaign. Stopping is a process that requires the campaign go through several [phases](../updating-firmware/running-update-campaigns.html#stopping).\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/stop \\\n-H 'Authorization: '\n```\n", + "description": "Stop a campaign. Stopping is a process that requires the campaign go through several [phases](https://www.pelion.com/docs/device-management/current/updating-firmware/device-management-update-using-the-apis.html).\n
\n**Usage example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/016e83ddc645000000000001001000b5/stop \\\n-H 'Authorization: Bearer '\n```\n", "field_renames": [], "fields": [ { @@ -88440,8 +95848,7 @@ "name": "campaign_id", "required": true, "type": "string", - "minLength": 32, - "maxLength": 32, + "pattern": "[A-Fa-f0-9]{32}", "entity_fieldname": "id", "api_fieldname": "campaign_id", "external_param": false, @@ -88458,18 +95865,294 @@ }, { "description": "Unable to change the phase of the campaign.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "400" }, { "description": "Not authenticated.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "401" }, { "description": "Cannot find the campaign.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "404" }, { "description": "Cannot stop the campaign while in the current phase.", + "schema": { + "type": "object", + "required": [ + "code", + "message", + "object", + "request_id", + "type" + ], + "properties": [ + { + "type": "integer", + "format": "int32", + "description": "HTTP response code", + "example": 400, + "_key": "code" + }, + { + "type": "array", + "description": "Request fields which failed validation.", + "items": { + "type": "object", + "required": [ + "name", + "message" + ], + "properties": [ + { + "type": "string", + "description": "Message describing the error condition.", + "_key": "message" + }, + { + "type": "string", + "description": "Name of the field which caused the error.", + "_key": "name" + } + ] + }, + "_key": "fields" + }, + { + "type": "string", + "description": "A human readable informative explanation", + "example": "Validation error", + "_key": "message" + }, + { + "type": "string", + "description": "Entity name, always `error`.", + "enum": [ + "error" + ], + "_key": "object" + }, + { + "type": "string", + "description": "ID of the request.", + "example": "0161991d63150242ac12000600000000", + "_key": "request_id" + }, + { + "type": "string", + "description": "Error type used to categorise the error.", + "example": "validation_error", + "_key": "type" + } + ] + }, "_key": "409" } ], @@ -88501,7 +96184,7 @@ "_key": "stop" }, { - "description": "Modify an update campaign.\n
\n**Usage example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012 \\\n-H 'Authorization: ' \\\nd '{\n \"description\": \"Campaign is for ...\",\n \"device_filter\": \"id__eq=123400000000000000000000000ae45\",\n \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\",\n}'\n```\n", + "description": "Modify an update campaign.\n
\n**Usage example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/update-campaigns/1123007f9012ab567890120000789012 \\\n-H 'Authorization: Bearer ' \\\nd '{\n \"description\": \"Campaign is for ...\",\n \"device_filter\": \"123400000000000000000000000ae45\",\n \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\",\n}'\n```\n", "field_renames": [], "fields": [ { @@ -88551,9 +96234,9 @@ "_key": "description" }, { - "description": "The filter for the devices the campaign is targeting at.", + "description": "The filter for the devices the campaign targets. Refer to this using the filter ID.", "type": "string", - "example": "id__eq=00000000000000000000000000000000", + "example": "state__eq=registered", "api_fieldname": "device_filter", "entity_fieldname": "device_filter", "parameter_fieldname": "device_filter", @@ -88576,7 +96259,8 @@ { "description": "The campaign ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e83ddc648000000000001001000f5", "api_fieldname": "id", "entity_fieldname": "id", "parameter_fieldname": "campaign_id", @@ -88599,13 +96283,26 @@ { "description": "The ID of the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "00000000000000000000000000000000", + "example": "016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_id", "entity_fieldname": "root_manifest_id", "parameter_fieldname": "root_manifest_id", "in": "body", "required": false, "_key": "root_manifest_id" + }, + { + "description": "The scheduled start time for the campaign. The campaign will start within 1 minute when then start time has elapsed.", + "type": "string", + "format": "date-time", + "example": "2017-05-22T12:37:55.576563Z", + "x-nullable": true, + "api_fieldname": "when", + "entity_fieldname": "when", + "parameter_fieldname": "when", + "in": "body", + "required": false, + "_key": "when" } ], "method": "put", @@ -88657,6 +96354,7 @@ "object": { "description": "Entity name: always 'update-campaign'.", "type": "string", + "example": "update-campaign", "api_fieldname": "object", "entity_fieldname": "object" }, @@ -88714,9 +96412,9 @@ "entity_fieldname": "description" }, "device_filter": { - "description": "The filter for the devices the campaign is targeting at.", + "description": "The filter for the devices the campaign targets. Refer to this using the filter ID.", "type": "string", - "example": "id__eq=00000000000000000000000000000000", + "example": "state__eq=registered", "api_fieldname": "device_filter", "entity_fieldname": "device_filter" }, @@ -88731,7 +96429,8 @@ "id": { "description": "The campaign ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e83ddc648000000000001001000f5", "api_fieldname": "id", "entity_fieldname": "id" }, @@ -88746,14 +96445,14 @@ "root_manifest_id": { "description": "The ID of the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "00000000000000000000000000000000", + "example": "016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_id", "entity_fieldname": "root_manifest_id" }, "root_manifest_url": { "description": "The URL for the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000", + "example": "https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_url", "entity_fieldname": "root_manifest_url" }, @@ -88898,8 +96597,7 @@ "started_at", "stopping_at", "stopped_at", - "phase", - "when" + "phase" ], "group_id": "Device_Update", "parameter_map": { @@ -89005,9 +96703,9 @@ "_key": "description" }, { - "description": "The filter for the devices the campaign is targeting at.", + "description": "The filter for the devices the campaign targets. Refer to this using the filter ID.", "type": "string", - "example": "id__eq=00000000000000000000000000000000", + "example": "state__eq=registered", "api_fieldname": "device_filter", "readOnly": false, "required": true, @@ -89039,7 +96737,8 @@ { "description": "The campaign ID.", "type": "string", - "example": "00000000000000000000000000000000", + "pattern": "[A-Fa-f0-9]{32}", + "example": "016e83ddc648000000000001001000f5", "api_fieldname": "id", "readOnly": false, "required": true, @@ -89078,7 +96777,7 @@ { "description": "The ID of the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "00000000000000000000000000000000", + "example": "016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_id", "readOnly": false, "required": false, @@ -89087,7 +96786,7 @@ { "description": "The URL for the manifest that will be sent to the device as part of the campaign.", "type": "string", - "example": "http://example.com/00000000000000000000000000000000", + "example": "https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102", "api_fieldname": "root_manifest_url", "readOnly": true, "required": false, @@ -89150,7 +96849,7 @@ "example": "2017-05-22T12:37:55.576563Z", "x-nullable": true, "api_fieldname": "when", - "readOnly": true, + "readOnly": false, "required": false, "_key": "when" } @@ -89173,7 +96872,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Create or invite a new user to the account. Only email address is used; other attributes are set in the second step.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/users?action=invite \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", + "description": "Create or invite a new user to the account. The invited user has to accept the invitation by clicking the link in the invitation email.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/users?action=invite \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", "field_renames": [], "fields": [ { @@ -89273,6 +96972,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -89282,6 +96991,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -89292,6 +97002,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -89661,6 +97372,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -89670,6 +97391,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -89680,6 +97402,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -90128,7 +97851,7 @@ "_key": "create" }, { - "description": "Delete a user.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete a user.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -90471,13 +98194,13 @@ "_key": "delete" }, { - "description": "Retrieve the details of all users.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/users \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of users.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/users \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -90517,7 +98240,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -90552,7 +98275,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -90827,6 +98550,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -90836,6 +98569,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -90846,6 +98580,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -91148,7 +98883,7 @@ } ], "path": "/v3/users", - "summary": "Get the details of all users.", + "summary": "Get users.", "return_type": "paginated_response(user)", "return_info": { "self": true, @@ -91199,13 +98934,13 @@ "_key": "list" }, { - "description": "Retrieve groups of the user.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of policy groups associated with a user.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -91257,7 +98992,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -91292,7 +99027,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -91325,8 +99060,21 @@ "format": "int32", "example": 0, "description": "The number of API keys in this group.", + "x-deprecation": { + "issued_at": "2020-08-01T00:00:00+00:00", + "end_of_life_at": "2021-08-01T00:00:00+00:00", + "comment": "This property is deprecated. See 'application_count' property.", + "links": [] + }, "_key": "apikey_count" }, + { + "type": "integer", + "format": "int32", + "example": 0, + "description": "The number of applications in this group.", + "_key": "application_count" + }, { "type": "string", "format": "date-time", @@ -91664,7 +99412,7 @@ } ], "path": "/v3/users/{user_id}/groups", - "summary": "Get groups of the user.", + "summary": "Get policy groups for a user.", "return_type": "paginated_response(policy_group)", "return_info": { "self": false, @@ -91696,7 +99444,7 @@ "_key": "policy_groups" }, { - "description": "Retrieve the details of a user.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the details of a user.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -92017,6 +99765,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -92026,6 +99784,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -92036,6 +99795,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -92420,7 +100180,7 @@ "_key": "read" }, { - "description": "Update user details\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"username\": \"myusername\"}'\n```", + "description": "Update user details.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X PUT https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d '{\"username\": \"myusername\"}'\n```", "field_renames": [], "fields": [ { @@ -92518,6 +100278,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -92527,6 +100297,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -92537,6 +100308,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -92894,6 +100666,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -92903,6 +100685,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -92913,6 +100696,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -93733,6 +101517,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -93742,6 +101536,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -93752,6 +101547,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -93873,7 +101669,7 @@ "primary_key_field": "id", "methods": [ { - "description": "Invite a new or existing user.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/user-invitations \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", + "description": "Invite a new or existing user.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/user-invitations \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json' \\\n-d {\"email\": \"myemail@company.com\"}\n```", "field_renames": [], "fields": [ { @@ -93913,6 +101709,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -93922,6 +101728,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -93932,6 +101739,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -94066,6 +101874,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -94075,6 +101893,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -94085,6 +101904,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -94397,7 +102217,7 @@ "_key": "create" }, { - "description": "Delete an active user invitation sent to a new or existing user.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Delete an active user invitation sent to a new or existing user.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X DELETE https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -94667,13 +102487,13 @@ "_key": "delete" }, { - "description": "Retrieve details for all the active user invitations.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve an array of active user invitations sent by email.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -94701,7 +102521,7 @@ }, { "type": "string", - "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.", "enum": [ "ASC", "DESC" @@ -94736,7 +102556,7 @@ { "type": "string", "example": "01619571f3c00242ac12000600000000", - "description": "The entity ID to fetch after the given one.", + "description": "The entity ID to retrieve after the given one.", "pattern": "[a-f0-9]{32}", "api_fieldname": "after", "entity_fieldname": "after", @@ -94817,6 +102637,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -94826,6 +102656,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -94836,6 +102667,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -95093,7 +102925,7 @@ } ], "path": "/v3/user-invitations", - "summary": "Get the details of all user invitations.", + "summary": "Get user invitations.", "return_type": "paginated_response(user_invitation)", "return_info": { "self": true, @@ -95132,7 +102964,7 @@ "_key": "list" }, { - "description": "Retrieve the details of an active user invitation.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", + "description": "Retrieve the details of an active user invitation.\nNote: This endpoint is restricted to administrators.\n\n**Example:**\n```\ncurl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \\\n-H 'Authorization: Bearer '\n```", "field_renames": [], "fields": [ { @@ -95239,6 +103071,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -95248,6 +103090,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -95258,6 +103101,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -95646,6 +103490,16 @@ "properties": [ { "type": "string", + "example": "fed/user_007", + "description": "The ID of the user in the identity provider's service.", + "readOnly": true, + "api_fieldname": "foreign_id", + "entity_fieldname": "foreign_id", + "_key": "foreign_id" + }, + { + "type": "string", + "example": "01619571f3c00242ac12000600000000", "description": "ID of the identity provider.", "readOnly": false, "_override": true, @@ -95655,6 +103509,7 @@ }, { "type": "string", + "example": "Pelion", "readOnly": false, "description": "Name of the identity provider.", "_override": true, @@ -95665,6 +103520,7 @@ { "type": "string", "description": "Identity provider type.", + "example": "NATIVE", "readOnly": true, "enum": [ "NATIVE", @@ -95725,8 +103581,8 @@ "fields": [ { "type": "string", - "description": "Provides details in case of failure.\n", - "example": "message describing the verification failure", + "description": "Provides details in case of failure.", + "example": "Message describing the verification failure", "api_fieldname": "message", "readOnly": true, "required": false, @@ -95734,7 +103590,7 @@ }, { "type": "boolean", - "description": "Indicates whether the certificate issuer was verified successfully.\n", + "description": "Indicates whether the certificate issuer was verified successfully.", "example": false, "api_fieldname": "successful", "readOnly": true, diff --git a/config/pelion/sdk_foundation_definition.yaml b/config/pelion/sdk_foundation_definition.yaml index 011ca67f5..5cd6e776c 100644 --- a/config/pelion/sdk_foundation_definition.yaml +++ b/config/pelion/sdk_foundation_definition.yaml @@ -58,6 +58,11 @@ entities: readOnly: true required: false 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 - _key: admin_name api_fieldname: admin_name @@ -80,7 +85,8 @@ entities: x-nullable: true - _key: aliases api_fieldname: 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 @@ -134,7 +140,7 @@ entities: x-nullable: true - _key: company api_fieldname: company - description: The name of the company. + description: The name of the company used in billing. example: ARM Holdings Plc maxLength: 100 readOnly: false @@ -194,7 +200,7 @@ entities: x-nullable: true - _key: display_name api_fieldname: display_name - description: The display name for the account. + description: The display name for the tenant account. example: ARM maxLength: 100 readOnly: false @@ -340,13 +346,12 @@ entities: additionalProperties: type: string api_fieldname: limits - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' readOnly: true required: false type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -592,6 +597,25 @@ entities: readOnly: true required: false type: string + - _key: tier_history + api_fieldname: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + readOnly: true + required: false + type: array - _key: updated_at api_fieldname: updated_at description: Last update UTC time RFC3339. @@ -611,7 +635,9 @@ entities: group_id: Accounts methods: - _key: api_keys - description: 'Retrieve API keys in an array, optionally filtered by the owner. + description: 'Retrieve an array of API keys, optionally filtered by the owner. + + Note: This endpoint is restricted to administrators. **Example:** @@ -621,7 +647,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -639,7 +665,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -686,7 +712,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -723,7 +749,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -846,8 +872,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -1023,7 +1049,11 @@ entities: type: subtenant_api_key return_type: paginated_response(subtenant_api_key) summary: Get all API keys. - x_deprecation: null + 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 @@ -1032,6 +1062,8 @@ entities: - _key: create description: 'Create a new account. + Note: This endpoint is restricted to administrators. + **Example:** @@ -1039,14 +1071,14 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ - -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"}'' + -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"}'' ```' drop_fields: @@ -1081,6 +1113,7 @@ entities: - limitations - password_recovery_expiration - business_model_history + - tier_history field_renames: [] fields: - _key: action @@ -1176,7 +1209,8 @@ entities: x-nullable: true - _key: aliases api_fieldname: aliases - description: An array of aliases. + description: An array of aliases for the tenant account ID. The aliases must + be globally unique. entity_fieldname: aliases in: body items: @@ -1191,7 +1225,7 @@ entities: default: active_device_business_model description: Business model for this account. Manageable by the root admin only. entity_fieldname: business_model - enum: &id001 + enum: - active_device_business_model - api_calls_1_business_model enum_reference: account_business_model_enum @@ -1213,7 +1247,7 @@ entities: x-nullable: true - _key: company api_fieldname: company - description: The name of the company. + description: The name of the company used in billing. entity_fieldname: company example: ARM Holdings Plc in: body @@ -1266,7 +1300,7 @@ entities: x-nullable: true - _key: display_name api_fieldname: display_name - description: The display name for the account. + description: The display name for the tenant account. entity_fieldname: display_name example: ARM in: body @@ -1293,7 +1327,7 @@ entities: example: IT in: body parameter_fieldname: end_market - required: false + required: true type: string - _key: phone_number api_fieldname: phone_number @@ -1343,6 +1377,9 @@ entities: description: Successful operation. schema: description: Represents an account in requests and responses. + foreign_key: + entity: account + group: Accounts properties: - _key: address_line1 api_fieldname: address_line1 @@ -1395,6 +1432,11 @@ entities: 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 - _key: admin_name api_fieldname: admin_name @@ -1415,7 +1457,8 @@ entities: x-nullable: true - _key: aliases api_fieldname: aliases - description: An array of aliases. + description: An array of aliases for the tenant account ID. The aliases + must be globally unique. entity_fieldname: aliases items: pattern: '[\w\-._]{8,100}' @@ -1465,7 +1508,7 @@ entities: x-nullable: true - _key: company api_fieldname: company - description: The name of the company. + description: The name of the company used in billing. entity_fieldname: company example: ARM Holdings Plc maxLength: 100 @@ -1518,7 +1561,7 @@ entities: x-nullable: true - _key: display_name api_fieldname: display_name - description: The display name for the account. + description: The display name for the tenant account. entity_fieldname: display_name example: ARM maxLength: 100 @@ -1662,12 +1705,11 @@ entities: additionalProperties: type: string api_fieldname: limits - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' entity_fieldname: limits type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -1910,49 +1952,9 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - description: The full name of the admin user created for this account. - Present only in the response for account creation. - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - 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 - x-nullable: true - - _key: admin_key - description: The admin API key created for this account. Present only - in the response for account creation. - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - description: The username of the admin user created for this account. - Present only in the response for account creation. - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - description: The password of the admin user created for this account. - Present only in the response for account creation. - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: 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 @@ -1994,7 +1996,7 @@ entities: type: string x-nullable: true - _key: company - description: The name of the company. + description: The name of the company used in billing. example: ARM Holdings Plc maxLength: 100 type: string @@ -2033,7 +2035,7 @@ entities: type: string x-nullable: true - _key: display_name - description: The display name for the account. + description: The display name for the tenant account. example: ARM maxLength: 100 type: string @@ -2160,11 +2162,10 @@ entities: - _key: limits additionalProperties: type: string - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -2361,466 +2362,1020 @@ entities: type: string - _key: sub_accounts description: List of sub accounts. Not available for developer users. - items: [] - type: array - x-nullable: true - - _key: template_id - description: Account template ID. - example: 01619571e7160242ac12000600000000 - pattern: '[a-f0-9]{32}' - type: string - x-nullable: true - - _key: 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 - - _key: updated_at - description: Last update UTC time RFC3339. - example: '2018-02-14T15:24:14Z' - format: date-time - type: string - - _key: upgraded_at - description: Time when upgraded to commercial account in UTC format - RFC3339. - example: '2018-02-14T15:24:14Z' - format: date-time - type: string - required: - - end_market - - etag - - id - - object - - status - - tier - type: object - type: array - x-nullable: true - - _key: template_id - api_fieldname: template_id - description: Account template ID. - entity_fieldname: template_id - example: 01619571e7160242ac12000600000000 - pattern: '[a-f0-9]{32}' - type: string - x-nullable: true - - _key: tier - api_fieldname: tier - description: 'The tier level of the account; `0`: free tier, `1`: commercial - account, `2`: partner tier. Other values are reserved for the future.' - entity_fieldname: tier - example: '1' - type: string - - _key: updated_at - api_fieldname: updated_at - description: Last update UTC time RFC3339. - entity_fieldname: updated_at - example: '2018-02-14T15:24:14Z' - format: date-time - type: string - - _key: upgraded_at - api_fieldname: upgraded_at - description: Time when upgraded to commercial account in UTC format RFC3339. - entity_fieldname: upgraded_at - example: '2018-02-14T15:24:14Z' - format: date-time - type: string - required: - - end_market - - etag - - id - - object - - status - - tier - type: object - - _key: '400' - description: Error in input data, for example, invalid username. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '401' - description: Authentication failure. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '403' - description: Forbidden. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - return_info: - custom: false - self: true - type: account - return_type: account - summary: Create a new account. - x_deprecation: null - x_filter: {} - - _key: dark_theme_branding_colors - description: 'Retrieve dark theme branding colors for an account. - - - **Example:** - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark - \ - - -H ''Authorization: Bearer '' - - ```' - drop_fields: - - object - - etag - - type - - filter - - sub_accounts - - limit - - after - - order - - total_count - - has_more - - data - field_renames: [] - fields: - - _key: id - api_fieldname: account_id - description: The ID of the account. - entity_fieldname: id - external_param: false - in: path - name: account_id - parameter_fieldname: account_id - required: true - type: string - foreign_key: - entity: subtenant_dark_theme_color - group_id: Accounts - method: get - mode: dark_theme_branding_colors - notes: This lists the dark theme banding colors of the subtenant account. - operation_id: getAccountDarkColors - pagination: true - parameter_map: - account_id: id - path: /v3/accounts/{account_id}/branding-colors/dark - request_body: json - request_content_type: application/json - responses: - - _key: '200' - description: Successful operation. - schema: - foreign_key: - entity: dark_theme_color - group: Branding - pagination: true - properties: - - _key: after - api_fieldname: after - description: The entity ID to fetch after the given one. - entity_fieldname: after - example: 01619571f3c00242ac12000600000000 - pattern: '[a-f0-9]{32}' - type: string - - _key: data - api_fieldname: data - description: A list of entities. - entity_fieldname: data - items: - foreign_key: - entity: dark_theme_color - group: Branding - properties: - - _key: color - description: The color given as name (purple) or as a hex code. - example: '#f3f93e' - type: string - x-nullable: true - - _key: object - description: 'Entity name: always ''branding_color''' - enum: - - branding_color - readOnly: true - type: string - - _key: reference - _override: true - description: Color name. - enum: - - 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 - is_primary_key: true - type: string - - _key: updated_at - description: Last update time in UTC. - example: '2018-02-14T15:24:14Z' - format: date-time - readOnly: true - type: string - type: object - type: array - - _key: has_more - api_fieldname: has_more - description: Flag indicating whether there are more results. - entity_fieldname: has_more - example: false - type: boolean - - _key: limit - api_fieldname: limit - description: The number of results to return, or equal to `total_count`. - entity_fieldname: limit - example: 50 - format: int32 - type: integer - - _key: object - api_fieldname: object - description: 'Entity name: always `list`.' - entity_fieldname: object - enum: - - list - type: string - - _key: order - api_fieldname: order - description: 'The order of the records to return based on creation time. - Available values: ASC, DESC; by default ASC.' - entity_fieldname: order - enum: - - ASC - - DESC - type: string - - _key: total_count - api_fieldname: total_count - description: The total number of records, if requested. - entity_fieldname: total_count - example: 20 - format: int32 - type: integer - required: - - data - - has_more - - limit - - object - - total_count - type: object - - _key: '401' - description: Authentication failure. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '403' - description: Forbidden. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string + items: + description: Represents an account in requests and responses. + properties: + - _key: address_line1 + description: Postal address line 1. + example: 110 Fulbourn Rd + maxLength: 100 + type: string + x-nullable: true + - _key: address_line2 + description: Postal address line 2. + example: ' ' + maxLength: 100 + type: string + x-nullable: true + - _key: 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 + - _key: business_model + 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 + - _key: business_model_history + description: Business model history for this account. + items: + properties: + - _key: business_model + 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 + - _key: updated_at + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array + - _key: city + description: The city part of the postal address. + example: Cambridge + maxLength: 100 + type: string + x-nullable: true + - _key: company + description: The name of the company used in billing. + example: ARM Holdings Plc + maxLength: 100 + type: string + x-nullable: true + - _key: contact + description: The name of the contact person for this account. + example: J. Doe + maxLength: 100 + type: string + x-nullable: true + - _key: contract_number + description: Contract number of the customer. + example: 1NX25_0001 + type: string + x-nullable: true + - _key: country + description: The country part of the postal address. + example: United Kingdom + maxLength: 100 + type: string + x-nullable: true + - _key: created_at + description: Creation UTC time RFC3339. + example: '2018-02-13T09:35:20Z' + format: date-time + type: string + - _key: custom_fields + additionalProperties: + type: string + description: Account's custom properties as key-value pairs. + type: object + x-nullable: true + - _key: customer_number + description: Customer number of the customer. + example: 1NC25_0001 + type: string + x-nullable: true + - _key: display_name + description: The display name for the tenant account. + example: ARM + maxLength: 100 + type: string + x-nullable: true + - _key: email + description: The company email address for this account. + example: info@arm.com + pattern: ^(?=.{3,254}$).+\@.+ + type: string + x-nullable: true + - _key: end_market + description: Account end market. + example: IT + type: string + - _key: etag + description: API resource entity version. + example: '1' + type: string + - _key: expiration + description: Expiration time of the account, as UTC time RFC3339. + format: date-time + type: string + x-nullable: true + - _key: expiration_warning_threshold + 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 + - _key: id + description: Account ID. + example: 01619571e2e90242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + - _key: idle_timeout + description: The reference token expiration time, in minutes, for + this account. + example: '30' + maximum: 120 + minimum: 1 + type: integer + x-nullable: true + - _key: limitations + description: List of account limitation objects. + items: + description: This object represents an account limitation. + properties: + - _key: billing_period + description: Billing period of the account limitation. + format: int32 + type: integer + - _key: created_at + description: Creation UTC time RFC3339. + example: '2018-02-13T09:35:20Z' + format: date-time + type: string + - _key: description + description: Description of the account limitation. + readOnly: true + type: string + - _key: etag + description: API resource entity version. + example: '1' + type: string + - _key: id + description: Entity ID. + example: 01619571d01d0242ac12000600000000 + type: string + - _key: inherited + description: Flag indicating whether this limitation is inherited. + readOnly: true + type: boolean + - _key: inherited_from + description: Indicates where this limit is inherited from. + readOnly: true + type: string + - _key: inherited_type + description: Indicates the type of the entity where the limitation + is inherited from. + readOnly: true + type: string + - _key: limit + description: The value of the limit. + format: int32 + type: integer + - _key: name + description: Name of the account limitation. + type: string + - _key: object + 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 + - _key: quota + description: Quota of the account limitation. + format: int32 + type: integer + - _key: updated_at + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array + - _key: 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 + - _key: mfa_status + description: The enforcement status of multi-factor authentication, + either `enforced` or `optional`. + enum: + - enforced + - optional + type: string + x-nullable: true + - _key: notification_emails + description: A list of notification email addresses. + items: + pattern: ^(?=.{3,254}$).+\@.+ + type: string + type: array + x-nullable: true + - _key: object + description: 'Entity name: always `account`.' + enum: + - account + type: string + - _key: parent_account + description: Represents parent account contact details in responses. + foreign_key: + entity: parent_account + group: Accounts + properties: + - _key: admin_email + api_fieldname: admin_email + description: The email address of the admin user who is the contact + person of the parent account. + entity_fieldname: admin_email + example: info@arm.com + pattern: ^(?=.{3,254}$).+\@.+ + type: string + - _key: admin_name + api_fieldname: admin_name + description: The name of the admin user who is the contact person + of the parent account. + entity_fieldname: admin_name + example: J. Doe + maxLength: 100 + type: string + - _key: id + api_fieldname: id + description: The ID of the parent account. + entity_fieldname: id + example: 01619571dad80242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + type: object + x-nullable: true + - _key: parent_id + description: The ID of the parent account, if any. + example: 01619571dad80242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + x-nullable: true + - _key: password_policy + description: The password policy for this account. + foreign_key: + entity: password_policy + group: Accounts + properties: + - _key: minimum_length + api_fieldname: minimum_length + description: Minimum length for the password. + entity_fieldname: minimum_length + example: '8' + maximum: 512 + minimum: 8 + type: integer + required: + - minimum_length + type: object + x-nullable: true + - _key: password_recovery_expiration + description: Indicates for how many minutes a password recovery + email is valid. + format: int32 + maximum: 45 + minimum: 1 + type: integer + - _key: phone_number + description: The phone number of a company representative. + example: +44 (1223) 400 400 + maxLength: 100 + type: string + x-nullable: true + - _key: policies + description: List of policies if requested. + items: + description: Represents a feature policy. Either the feature or + the resource must be specified. + foreign_key: + entity: policy + group: Accounts + properties: + - _key: action + api_fieldname: action + description: Comma-separated list of actions, empty string represents + all actions. + entity_fieldname: action + example: GET + type: string + - _key: allow + api_fieldname: allow + description: True or false controlling whether an action is + allowed or not. + entity_fieldname: allow + example: true + type: boolean + - _key: feature + api_fieldname: feature + description: Feature name corresponding to this policy. + entity_fieldname: feature + example: update-campaigns + type: string + - _key: inherited + api_fieldname: inherited + description: Flag indicating whether this feature is inherited + or overwritten specifically. + entity_fieldname: inherited + example: false + readOnly: true + type: boolean + - _key: inherited_from + api_fieldname: inherited_from + description: An ID indicating where this policy is inherited + from. + entity_fieldname: inherited_from + example: 016ada3ec2d46665bf66e32e00000000 + pattern: '[a-f0-9]{32}' + readOnly: true + type: string + - _key: inherited_type + api_fieldname: inherited_type + description: Indicates the type of entity this policy is inherited + from. + entity_fieldname: inherited_type + enum: + - account + - template + - tier_template + example: account + readOnly: true + type: string + - _key: resource + api_fieldname: resource + description: Resource that is protected by this policy. + entity_fieldname: resource + example: /v3/update-campaign + type: string + type: object + type: array + x-nullable: true + - _key: postal_code + description: The postal code part of the postal address. + example: CB1 9NJ + maxLength: 100 + type: string + x-nullable: true + - _key: reason + description: A note with the reason for account status update. + example: Subscription paid. + type: string + x-nullable: true + - _key: reference_note + description: A reference note for updating the status of the account. + example: ARM-INT-0001 + type: string + x-nullable: true + - _key: sales_contact + description: Email address of the sales contact. + example: sales@arm.com + pattern: ^(?=.{3,254}$).+\@.+ + type: string + x-nullable: true + - _key: state + description: The state part of the postal address. + example: ' ' + maxLength: 100 + type: string + x-nullable: true + - _key: status + description: The status of the account. + enum: + - ENROLLING + - ACTIVE + - RESTRICTED + - SUSPENDED + example: ACTIVE + type: string + - _key: sub_accounts + description: List of sub accounts. Not available for developer users. + items: [] + type: array + x-nullable: true + - _key: template_id + description: Account template ID. + example: 01619571e7160242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + x-nullable: true + - _key: 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 + - _key: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array + - _key: updated_at + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + - _key: upgraded_at + description: Time when upgraded to commercial account in UTC format + RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + required: + - end_market + - etag + - id + - object + - status + - tier + type: object + type: array + x-nullable: true + - _key: template_id + description: Account template ID. + example: 01619571e7160242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + x-nullable: true + - _key: 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 + - _key: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array + - _key: updated_at + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + - _key: upgraded_at + description: Time when upgraded to commercial account in UTC format + RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + required: + - end_market + - etag + - id + - object + - status + - tier + type: object + type: array + x-nullable: true + - _key: template_id + api_fieldname: template_id + description: Account template ID. + entity_fieldname: template_id + example: 01619571e7160242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + x-nullable: true + - _key: tier + api_fieldname: tier + description: 'The tier level of the account; `0`: free tier, `1`: commercial + account, `2`: partner tier. Other values are reserved for the future.' + entity_fieldname: tier + example: '1' + type: string + - _key: tier_history + api_fieldname: tier_history + description: Tier history for this account. + entity_fieldname: tier_history + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array + - _key: updated_at + api_fieldname: updated_at + description: Last update UTC time RFC3339. + entity_fieldname: updated_at + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + - _key: upgraded_at + api_fieldname: upgraded_at + description: Time when upgraded to commercial account in UTC format RFC3339. + entity_fieldname: upgraded_at + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + - _key: '400' + description: Error in input data, for example, invalid username. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '401' + description: Authentication failure. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '403' + description: Forbidden. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '409' + description: Account with the specified alias exists already. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + return_info: + custom: false + self: true + type: account + return_type: account + summary: Create a new account. + x_deprecation: null + x_filter: {} + - _key: dark_theme_branding_colors + description: 'Retrieve dark theme branding colors for an account. + + 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 + \ + + -H ''Authorization: Bearer '' + + ```' + drop_fields: + - object + - etag + - type + - filter + - sub_accounts + - limit + - after + - order + - total_count + - has_more + - data + field_renames: [] + fields: + - _key: id + api_fieldname: account_id + description: The ID of the account. + entity_fieldname: id + external_param: false + in: path + name: account_id + parameter_fieldname: account_id + required: true + type: string + foreign_key: + entity: subtenant_dark_theme_color + group_id: Accounts + method: get + mode: dark_theme_branding_colors + notes: This lists the dark theme banding colors of the subtenant account. + operation_id: getAccountDarkColors + pagination: true + parameter_map: + account_id: id + path: /v3/accounts/{account_id}/branding-colors/dark + request_body: json + request_content_type: application/json + responses: + - _key: '200' + description: Successful operation. + schema: + foreign_key: + entity: dark_theme_color + group: Branding + pagination: true + properties: + - _key: after + api_fieldname: after + description: The entity ID to retrieve after the given one. + entity_fieldname: after + example: 01619571f3c00242ac12000600000000 + pattern: '[a-f0-9]{32}' + type: string + - _key: data + api_fieldname: data + description: A list of entities. + entity_fieldname: data + items: + foreign_key: + entity: dark_theme_color + group: Branding + properties: + - _key: color + description: The color given as name (purple) or as a hex code. + example: '#f3f93e' + type: string + x-nullable: true + - _key: object + description: 'Entity name: always ''branding_color''' + enum: + - branding_color + readOnly: true + type: string + - _key: reference + _override: true + description: Color name. + enum: + - 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 + is_primary_key: true + type: string + - _key: updated_at + description: Last update time in UTC. + example: '2018-02-14T15:24:14Z' + format: date-time + readOnly: true + type: string + type: object + type: array + - _key: has_more + api_fieldname: has_more + description: Flag indicating whether there are more results. + entity_fieldname: has_more + example: false + type: boolean + - _key: limit + api_fieldname: limit + description: The number of results to return, or equal to `total_count`. + entity_fieldname: limit + example: 50 + format: int32 + type: integer + - _key: object + api_fieldname: object + description: 'Entity name: always `list`.' + entity_fieldname: object + enum: + - list + type: string + - _key: order + api_fieldname: order + description: 'The order of the records to return based on creation time. + Available values: ASC, DESC; by default ASC.' + entity_fieldname: order + enum: + - ASC + - DESC + type: string + - _key: total_count + api_fieldname: total_count + description: The total number of records, if requested. + entity_fieldname: total_count + example: 20 + format: int32 + type: integer + required: + - data + - has_more + - limit + - object + - total_count + type: object + - _key: '401' + description: Authentication failure. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '403' + description: Forbidden. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string - _key: object description: Entity name, always `error`. enum: @@ -2900,6 +3455,8 @@ entities: - _key: dark_theme_branding_images description: 'Retrieve the metadata of all dark theme branding images. + Note: This endpoint is restricted to administrators. + **Example:** @@ -2908,7 +3465,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -2959,7 +3516,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -3234,6 +3791,8 @@ entities: - _key: light_theme_branding_colors description: 'Retrieve light theme branding colors for an account. + Note: This endpoint is restricted to administrators. + **Example:** @@ -3242,7 +3801,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -3293,7 +3852,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -3546,6 +4105,8 @@ entities: - _key: light_theme_branding_images description: 'Retrieve the metadata of all light theme branding images. + Note: This endpoint is restricted to administrators. + **Example:** @@ -3554,7 +4115,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -3605,7 +4166,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -3878,9 +4439,11 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'Returns an array of account objects, optionally filtered by status + description: 'Retrieve an array of tenant accounts, optionally filtered by status and tier level. + Note: This endpoint is restricted to administrators. + **Example:** @@ -3888,7 +4451,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -3911,7 +4474,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -4005,7 +4568,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -4029,49 +4592,9 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - description: The full name of the admin user created for this account. - Present only in the response for account creation. - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - 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 - x-nullable: true - - _key: admin_key - description: The admin API key created for this account. Present only - in the response for account creation. - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - description: The username of the admin user created for this account. - Present only in the response for account creation. - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - description: The password of the admin user created for this account. - Present only in the response for account creation. - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: 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 @@ -4113,7 +4636,7 @@ entities: type: string x-nullable: true - _key: company - description: The name of the company. + description: The name of the company used in billing. example: ARM Holdings Plc maxLength: 100 type: string @@ -4152,7 +4675,7 @@ entities: type: string x-nullable: true - _key: display_name - description: The display name for the account. + description: The display name for the tenant account. example: ARM maxLength: 100 type: string @@ -4279,11 +4802,10 @@ entities: - _key: limits additionalProperties: type: string - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -4495,49 +5017,9 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - description: The email address of the admin user created for this - account. Present only in the response for account creation. - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - description: The full name of the admin user created for this account. - Present only in the response for account creation. - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - 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 - x-nullable: true - - _key: admin_key - description: The admin API key created for this account. Present - only in the response for account creation. - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - description: The username of the admin user created for this account. - Present only in the response for account creation. - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - description: The password of the admin user created for this account. - Present only in the response for account creation. - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: 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 @@ -4579,7 +5061,7 @@ entities: type: string x-nullable: true - _key: company - description: The name of the company. + description: The name of the company used in billing. example: ARM Holdings Plc maxLength: 100 type: string @@ -4618,7 +5100,7 @@ entities: type: string x-nullable: true - _key: display_name - description: The display name for the account. + description: The display name for the tenant account. example: ARM maxLength: 100 type: string @@ -4745,11 +5227,10 @@ entities: - _key: limits additionalProperties: type: string - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -4962,6 +5443,23 @@ entities: for the future.' example: '1' type: string + - _key: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at description: Last update UTC time RFC3339. example: '2018-02-14T15:24:14Z' @@ -4994,6 +5492,23 @@ entities: account, `2`: partner tier. Other values are reserved for the future.' example: '1' type: string + - _key: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at description: Last update UTC time RFC3339. example: '2018-02-14T15:24:14Z' @@ -5174,7 +5689,7 @@ entities: tier: - eq - _key: me - description: 'Retrieve detailed information about the account. + description: 'Retrieve information about the account. **Example:** @@ -5184,7 +5699,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/me?include=policies \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -5229,16 +5744,11 @@ entities: - customer_number - parent_account - expiration - - admin_id - - admin_name - - admin_email - - admin_key - - admin_password - - admin_full_name - limitations - password_recovery_expiration - business_model - business_model_history + - tier_history field_renames: [] fields: - _key: include @@ -5296,62 +5806,10 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - api_fieldname: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - entity_fieldname: admin_email - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - api_fieldname: admin_full_name - description: The full name of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_full_name - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - api_fieldname: admin_id - description: The ID of the admin user created for this account. Present - only in the response for the account creation. - entity_fieldname: admin_id - example: 01619571e2e89242ac12000600000000 - pattern: '[a-f0-9]{32}' - type: string - x-nullable: true - - _key: admin_key - api_fieldname: admin_key - description: The admin API key created for this account. Present only in - the response for account creation. - entity_fieldname: admin_key - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - api_fieldname: admin_name - description: The username of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_name - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - api_fieldname: admin_password - description: The password of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_password - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: aliases api_fieldname: aliases - description: An array of aliases. + description: An array of aliases for the tenant account ID. The aliases + must be globally unique. entity_fieldname: aliases items: pattern: '[\w\-._]{8,100}' @@ -5401,7 +5859,7 @@ entities: x-nullable: true - _key: company api_fieldname: company - description: The name of the company. + description: The name of the company used in billing. entity_fieldname: company example: ARM Holdings Plc maxLength: 100 @@ -5454,7 +5912,7 @@ entities: x-nullable: true - _key: display_name api_fieldname: display_name - description: The display name for the account. + description: The display name for the tenant account. entity_fieldname: display_name example: ARM maxLength: 100 @@ -5598,12 +6056,11 @@ entities: additionalProperties: type: string api_fieldname: limits - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' entity_fieldname: limits type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -5846,49 +6303,9 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - description: The full name of the admin user created for this account. - Present only in the response for account creation. - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - 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 - x-nullable: true - - _key: admin_key - description: The admin API key created for this account. Present only - in the response for account creation. - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - description: The username of the admin user created for this account. - Present only in the response for account creation. - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - description: The password of the admin user created for this account. - Present only in the response for account creation. - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: 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 @@ -5930,7 +6347,7 @@ entities: type: string x-nullable: true - _key: company - description: The name of the company. + description: The name of the company used in billing. example: ARM Holdings Plc maxLength: 100 type: string @@ -5969,7 +6386,7 @@ entities: type: string x-nullable: true - _key: display_name - description: The display name for the account. + description: The display name for the tenant account. example: ARM maxLength: 100 type: string @@ -6096,11 +6513,10 @@ entities: - _key: limits additionalProperties: type: string - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -6311,6 +6727,23 @@ entities: account, `2`: partner tier. Other values are reserved for the future.' example: '1' type: string + - _key: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at description: Last update UTC time RFC3339. example: '2018-02-14T15:24:14Z' @@ -6347,6 +6780,24 @@ entities: entity_fieldname: tier example: '1' type: string + - _key: tier_history + api_fieldname: tier_history + description: Tier history for this account. + entity_fieldname: tier_history + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at api_fieldname: updated_at description: Last update UTC time RFC3339. @@ -6470,12 +6921,14 @@ entities: self: true type: account return_type: account - summary: Get account info. + summary: Get account information. x_deprecation: null x_filter: {} - _key: read description: 'Retrieve detailed information about an account. + Note: This endpoint is restricted to administrators. + **Example:** @@ -6484,7 +6937,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -6528,16 +6981,11 @@ entities: - customer_number - parent_account - expiration - - admin_id - - admin_name - - admin_email - - admin_key - - admin_password - - admin_full_name - limitations - password_recovery_expiration - business_model - business_model_history + - tier_history field_renames: [] fields: - _key: id @@ -6603,62 +7051,10 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - api_fieldname: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - entity_fieldname: admin_email - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - api_fieldname: admin_full_name - description: The full name of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_full_name - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - api_fieldname: admin_id - description: The ID of the admin user created for this account. Present - only in the response for the account creation. - entity_fieldname: admin_id - example: 01619571e2e89242ac12000600000000 - pattern: '[a-f0-9]{32}' - type: string - x-nullable: true - - _key: admin_key - api_fieldname: admin_key - description: The admin API key created for this account. Present only in - the response for account creation. - entity_fieldname: admin_key - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - api_fieldname: admin_name - description: The username of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_name - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - api_fieldname: admin_password - description: The password of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_password - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: aliases api_fieldname: aliases - description: An array of aliases. + description: An array of aliases for the tenant account ID. The aliases + must be globally unique. entity_fieldname: aliases items: pattern: '[\w\-._]{8,100}' @@ -6708,7 +7104,7 @@ entities: x-nullable: true - _key: company api_fieldname: company - description: The name of the company. + description: The name of the company used in billing. entity_fieldname: company example: ARM Holdings Plc maxLength: 100 @@ -6761,7 +7157,7 @@ entities: x-nullable: true - _key: display_name api_fieldname: display_name - description: The display name for the account. + description: The display name for the tenant account. entity_fieldname: display_name example: ARM maxLength: 100 @@ -6905,12 +7301,11 @@ entities: additionalProperties: type: string api_fieldname: limits - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' entity_fieldname: limits type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -7153,49 +7548,9 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - description: The full name of the admin user created for this account. - Present only in the response for account creation. - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - 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 - x-nullable: true - - _key: admin_key - description: The admin API key created for this account. Present only - in the response for account creation. - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - description: The username of the admin user created for this account. - Present only in the response for account creation. - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - description: The password of the admin user created for this account. - Present only in the response for account creation. - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: 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 @@ -7237,7 +7592,7 @@ entities: type: string x-nullable: true - _key: company - description: The name of the company. + description: The name of the company used in billing. example: ARM Holdings Plc maxLength: 100 type: string @@ -7276,7 +7631,7 @@ entities: type: string x-nullable: true - _key: display_name - description: The display name for the account. + description: The display name for the tenant account. example: ARM maxLength: 100 type: string @@ -7403,11 +7758,10 @@ entities: - _key: limits additionalProperties: type: string - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -7618,6 +7972,23 @@ entities: account, `2`: partner tier. Other values are reserved for the future.' example: '1' type: string + - _key: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at description: Last update UTC time RFC3339. example: '2018-02-14T15:24:14Z' @@ -7654,6 +8025,24 @@ entities: entity_fieldname: tier example: '1' type: string + - _key: tier_history + api_fieldname: tier_history + description: Tier history for this account. + entity_fieldname: tier_history + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at api_fieldname: updated_at description: Last update UTC time RFC3339. @@ -7825,11 +8214,13 @@ entities: self: true type: account return_type: account - summary: Get account info. + summary: Get account information. x_deprecation: null x_filter: {} - _key: trusted_certificates - description: 'Retrieve trusted certificates in an array. + description: 'Retrieve an array of trusted certificates. + + Note: This endpoint is restricted to administrators. **Example:** @@ -7839,7 +8230,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -7861,12 +8252,13 @@ entities: - status__eq - issuer__like - subject__like + - certificate_fingerprint__eq - valid__eq field_renames: [] fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -7913,7 +8305,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -7950,7 +8342,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -8000,9 +8392,15 @@ entities: format: int32 type: integer - _key: enrollment_mode - description: If true, signature is not required. Default value false. + 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: [] - _key: etag description: API resource entity version. example: '1' @@ -8108,8 +8506,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -8184,7 +8582,7 @@ entities: - type type: object - _key: '403' - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden, only available for administrators of commercial accounts. schema: properties: - _key: code @@ -8284,9 +8682,11 @@ entities: self: false type: subtenant_trusted_certificate return_type: paginated_response(subtenant_trusted_certificate) - summary: Get all trusted certificates. + summary: Get trusted certificates. x_deprecation: null x_filter: + certificate_fingerprint: + - eq device_execution_mode: - eq - neq @@ -8315,6 +8715,8 @@ entities: operation_id: updateMyAccount description: 'Update an account. + Note: This endpoint is restricted to administrators. + **Example:** @@ -8323,7 +8725,7 @@ entities: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -8349,14 +8751,9 @@ entities: - reference_note - parent_account - expiration - - admin_id - - admin_name - - admin_email - - admin_key - - admin_password - - admin_full_name - limitations - business_model_history + - tier_history field_renames: [] fields: - _key: address_line1 @@ -8383,7 +8780,8 @@ entities: x-nullable: true - _key: aliases api_fieldname: aliases - description: An array of aliases. + description: An array of aliases for the tenant account ID. The aliases must + be globally unique. entity_fieldname: aliases in: body items: @@ -8398,7 +8796,9 @@ entities: default: active_device_business_model description: Business model for this account. Manageable by the root admin only. entity_fieldname: business_model - enum: *id001 + enum: + - active_device_business_model + - api_calls_1_business_model enum_reference: account_business_model_enum example: api_calls_1_business_model in: body @@ -8418,7 +8818,7 @@ entities: x-nullable: true - _key: company api_fieldname: company - description: The name of the company. + description: The name of the company used in billing. entity_fieldname: company example: ARM Holdings Plc in: body @@ -8482,7 +8882,7 @@ entities: x-nullable: true - _key: display_name api_fieldname: display_name - description: The display name for the account. + description: The display name for the tenant account. entity_fieldname: display_name example: ARM in: body @@ -8680,62 +9080,10 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - api_fieldname: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - entity_fieldname: admin_email - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - api_fieldname: admin_full_name - description: The full name of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_full_name - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - api_fieldname: admin_id - description: The ID of the admin user created for this account. Present - only in the response for the account creation. - entity_fieldname: admin_id - example: 01619571e2e89242ac12000600000000 - pattern: '[a-f0-9]{32}' - type: string - x-nullable: true - - _key: admin_key - api_fieldname: admin_key - description: The admin API key created for this account. Present only in - the response for account creation. - entity_fieldname: admin_key - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - api_fieldname: admin_name - description: The username of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_name - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - api_fieldname: admin_password - description: The password of the admin user created for this account. Present - only in the response for account creation. - entity_fieldname: admin_password - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: aliases api_fieldname: aliases - description: An array of aliases. + description: An array of aliases for the tenant account ID. The aliases + must be globally unique. entity_fieldname: aliases items: pattern: '[\w\-._]{8,100}' @@ -8785,7 +9133,7 @@ entities: x-nullable: true - _key: company api_fieldname: company - description: The name of the company. + description: The name of the company used in billing. entity_fieldname: company example: ARM Holdings Plc maxLength: 100 @@ -8838,7 +9186,7 @@ entities: x-nullable: true - _key: display_name api_fieldname: display_name - description: The display name for the account. + description: The display name for the tenant account. entity_fieldname: display_name example: ARM maxLength: 100 @@ -8982,12 +9330,11 @@ entities: additionalProperties: type: string api_fieldname: limits - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' entity_fieldname: limits type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -9230,49 +9577,9 @@ entities: maxLength: 100 type: string x-nullable: true - - _key: admin_email - description: The email address of the admin user created for this account. - Present only in the response for account creation. - example: admin@arm.com - pattern: ^(?=.{3,254}$).+\@.+ - type: string - x-nullable: true - - _key: admin_full_name - description: The full name of the admin user created for this account. - Present only in the response for account creation. - example: Admin Doe - maxLength: 100 - type: string - x-nullable: true - - _key: admin_id - 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 - x-nullable: true - - _key: admin_key - description: The admin API key created for this account. Present only - in the response for account creation. - example: ak_1MDE2MTk1NzFmNmU4MDI0MmFjMTIwMDA2MDAwMDAwMDA01619571f7020242ac12000600000000B40IkJADMANmAscAj0Ot0n2yeQnyt9tT - readOnly: true - type: string - x-nullable: true - - _key: admin_name - description: The username of the admin user created for this account. - Present only in the response for account creation. - example: admin - maxLength: 100 - type: string - x-nullable: true - - _key: admin_password - description: The password of the admin user created for this account. - Present only in the response for account creation. - example: PZf9eEUH43DAPE9ULINFeuj - type: string - x-nullable: true - _key: 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 @@ -9314,7 +9621,7 @@ entities: type: string x-nullable: true - _key: company - description: The name of the company. + description: The name of the company used in billing. example: ARM Holdings Plc maxLength: 100 type: string @@ -9353,7 +9660,7 @@ entities: type: string x-nullable: true - _key: display_name - description: The display name for the account. + description: The display name for the tenant account. example: ARM maxLength: 100 type: string @@ -9480,11 +9787,10 @@ entities: - _key: limits additionalProperties: type: string - deprecated: true - description: List of limits as key-value pairs if requested. + description: 'DEPRECATED: Replaced by the limitations parameter.' type: object x-deprecation: - comment: Superseded by the limitations parameter. + 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 @@ -9695,6 +10001,23 @@ entities: account, `2`: partner tier. Other values are reserved for the future.' example: '1' type: string + - _key: tier_history + description: Tier history for this account. + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at description: Last update UTC time RFC3339. example: '2018-02-14T15:24:14Z' @@ -9731,6 +10054,24 @@ entities: entity_fieldname: tier example: '1' type: string + - _key: tier_history + api_fieldname: tier_history + description: Tier history for this account. + entity_fieldname: tier_history + items: + properties: + - _key: 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 + - _key: updatedAt + description: Last update UTC time RFC3339. + example: '2018-02-14T15:24:14Z' + format: date-time + type: string + type: object + type: array - _key: updated_at api_fieldname: updated_at description: Last update UTC time RFC3339. @@ -9945,6 +10286,54 @@ entities: - request_id - type type: object + - _key: '409' + description: Account with the specified new alias exists already. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -9954,8 +10343,9 @@ entities: x_deprecation: null x_filter: {} - _key: user_invitations - description: 'Retrieve details of all active user invitations sent for new or - existing users. + description: 'Retrieve an array of active user invitations. + + Note: This endpoint is restricted to administrators. **Example:** @@ -9965,7 +10355,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -9982,7 +10372,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -10018,7 +10408,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -10055,7 +10445,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -10118,11 +10508,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -10130,6 +10528,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -10141,6 +10540,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -10201,8 +10601,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -10377,13 +10777,15 @@ entities: self: false type: subtenant_user_invitation return_type: paginated_response(subtenant_user_invitation) - summary: Get the details of all user invitations. + summary: Get user invitations. x_deprecation: null x_filter: login_profiles: - eq - _key: users - description: 'Retrieve details of all users. + description: 'Retrieve an array of users. + + Note: This endpoint is restricted to administrators. **Example:** @@ -10393,7 +10795,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -10414,7 +10816,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -10461,7 +10863,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -10498,7 +10900,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -10712,11 +11114,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -10724,6 +11134,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -10735,6 +11146,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -10835,8 +11247,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -11011,7 +11423,7 @@ entities: self: false type: subtenant_user return_type: paginated_response(subtenant_user) - summary: Get the details of all users. + summary: Get users. x_deprecation: null x_filter: email: @@ -11025,6 +11437,7 @@ entities: primary_key_field: id swagger_models: - AccountCreationReq + - AccountCreationResp - AccountInfo - AccountInfoList - AccountUpdateRootReq @@ -11040,7 +11453,7 @@ entities: - Tenant accounts - API keys - Tenant accounts - users - Tenant accounts - user invitations - - Tenant device security - certificates + - Tenant security and identity - certificates - Tenant user interface configuration - colors - Tenant user interface configuration - images - _key: active_session @@ -11204,7 +11617,7 @@ entities: 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'' @@ -11241,7 +11654,7 @@ entities: in: body maxLength: 100 parameter_fieldname: name - required: true + required: false type: string - _key: owner api_fieldname: owner @@ -11257,7 +11670,7 @@ entities: api_fieldname: status description: The status of the API key. entity_fieldname: status - enum: &id002 + enum: &id001 - ACTIVE - INACTIVE enum_reference: api_key_status_enum @@ -11384,7 +11797,7 @@ entities: - object type: object - _key: '400' - description: Error in input data, for example, missing display name. + description: Error in input data, for example, missing API key name. schema: properties: - _key: code @@ -11533,7 +11946,11 @@ entities: type: api_key return_type: api_key summary: Create a new API key. - x_deprecation: null + 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_filter: {} - _key: delete description: 'Delete the API key. @@ -11545,7 +11962,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -11627,7 +12044,8 @@ entities: - type type: object - _key: '403' - description: Forbidden. + description: Forbidden. Only the owner of the API key or an administrator can + delete an API key. schema: properties: - _key: code @@ -11675,7 +12093,7 @@ entities: - type type: object - _key: '404' - description: The API key with the specified ID does not exist. + description: An API key with the specified ID does not exist. schema: properties: - _key: code @@ -11728,10 +12146,14 @@ entities: type: api_key return_type: api_key summary: Delete API key. - x_deprecation: null + 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_filter: {} - _key: list - description: 'Retrieve API keys in an array, optionally filtered by the owner. + description: 'Retrieve an array of API keys, optionally filtered by the owner. **Example:** @@ -11740,7 +12162,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -11757,7 +12179,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -11794,7 +12216,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -11832,7 +12254,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -12066,14 +12488,18 @@ entities: type: api_key return_type: paginated_response(api_key) summary: Get all API keys. - x_deprecation: null + 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: key: - eq owner: - eq - _key: me - description: 'Retrieve API key details. + description: 'Retrieve details of current API key. **Example:** @@ -12082,7 +12508,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/me \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -12323,11 +12749,17 @@ entities: self: true type: api_key return_type: api_key - summary: Get API key details. - x_deprecation: null + summary: Get current API key. + 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_filter: {} - _key: policy_groups - description: 'Retrieve groups associated with the API key. + description: 'Retrieve an array of policy groups associated with an API key. + + Note: This endpoint is restricted to administrators. **Example:** @@ -12337,7 +12769,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id}/groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -12352,7 +12784,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -12399,7 +12831,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -12435,7 +12867,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -12465,6 +12897,16 @@ entities: 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: [] + - _key: application_count + description: The number of applications in this group. + example: 0 + format: int32 + type: integer - _key: created_at description: Creation UTC time RFC3339. example: '2018-02-13T09:35:20Z' @@ -12538,8 +12980,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -12714,11 +13156,15 @@ entities: self: false type: policy_group return_type: paginated_response(policy_group) - summary: Get groups of the API key. - x_deprecation: null + summary: Get policy groups of an API key. + 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_filter: {} - _key: read - description: 'Retrieve API key details. + description: 'Retrieve details of an API key. **Example:** @@ -12727,7 +13173,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/api-keys/{apikey_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -12971,7 +13417,7 @@ entities: - type type: object - _key: '404' - description: API key with the specified ID does not exist. + description: An API key with the specified ID does not exist. schema: properties: - _key: code @@ -13023,8 +13469,12 @@ entities: self: true type: api_key return_type: api_key - summary: Get API key details. - x_deprecation: null + summary: Get API key. + 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_filter: {} - _key: update additional_operations: @@ -13038,7 +13488,7 @@ entities: `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'' \ @@ -13086,7 +13536,7 @@ entities: in: body maxLength: 100 parameter_fieldname: name - required: true + required: false type: string - _key: owner api_fieldname: owner @@ -13102,7 +13552,7 @@ entities: api_fieldname: status description: The status of the API key. entity_fieldname: status - enum: *id002 + enum: *id001 enum_reference: api_key_status_enum example: ACTIVE in: body @@ -13227,7 +13677,7 @@ entities: - object type: object - _key: '400' - description: Error in input data, for example, missing display name. + description: Error in input data, for example, invalid API key name. schema: properties: - _key: code @@ -13323,7 +13773,8 @@ entities: - type type: object - _key: '403' - description: Forbidden. + description: Forbidden. Only the owner of the API key or an administrator can + update an API key. schema: properties: - _key: code @@ -13371,7 +13822,7 @@ entities: - type type: object - _key: '404' - description: The API key with the specified ID does not exist. + description: An API key with the specified ID does not exist. schema: properties: - _key: code @@ -13424,7 +13875,11 @@ entities: type: api_key return_type: api_key summary: Update API key details. - x_deprecation: null + 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_filter: {} primary_key_field: id swagger_models: @@ -13488,6 +13943,7 @@ entities: api_fieldname: id description: The metadata record ID. example: 015c3029f6f7000000000001001000c3 + pattern: '[A-Fa-f0-9]{32}' readOnly: false required: true type: string @@ -13531,10 +13987,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/campaign-device-metadata/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/5d645eaec2315a89900000655cd94fa8/campaign-device-metadata/016e83ddc645000000000001001000f6 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -13572,6 +14028,7 @@ entities: example: 015c3029f6f7000000000001001000c3 in: path parameter_fieldname: campaign_device_metadata_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -13641,6 +14098,7 @@ entities: description: The metadata record ID. entity_fieldname: id example: 015c3029f6f7000000000001001000c3 + pattern: '[A-Fa-f0-9]{32}' type: string - _key: mechanism api_fieldname: mechanism @@ -13664,6 +14122,7 @@ entities: api_fieldname: object description: 'The entity name: always ''update-campaign-device-metadata''.' entity_fieldname: object + example: update-campaign-device-metadata type: string - _key: updated_at api_fieldname: updated_at @@ -13696,7 +14155,7 @@ entities: - _key: campaign_id api_fieldname: campaign_id description: ID of the associated campaign. - example: '00000000000000000000000000000000' + example: 016e652be6710000000000010010013d readOnly: false required: true type: string @@ -13750,10 +14209,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012/event_types + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/skipped/event_types \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -13777,16 +14236,21 @@ entities: entity_fieldname: campaign_id external_param: false in: path - maxLength: 32 - minLength: 32 name: campaign_id parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - _key: id api_fieldname: summary_status_id description: The summary status. For example, fail. entity_fieldname: id + enum: + - fail + - success + - info + - skipped + enum_reference: campaign_statistics_id_enum external_param: false in: path name: summary_status_id @@ -13824,6 +14288,11 @@ entities: - _key: data api_fieldname: data entity_fieldname: data + enum: + - fail + - skipped + - info + - success items: foreign_key: entity: campaign_statistics_events @@ -13831,7 +14300,7 @@ entities: properties: - _key: campaign_id description: ID of the associated campaign. - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 type: string - _key: count example: 10 @@ -13851,6 +14320,7 @@ entities: type: string - _key: object description: 'Entity name: always ''event-type''.' + example: event-type type: string - _key: summary_status example: FAIL @@ -13995,15 +14465,269 @@ entities: type: object return_info: custom: false - self: false - type: campaign_statistics_events - return_type: paginated_response(campaign_statistics_events) - summary: Get a list of events grouped by summary + self: false + type: campaign_statistics_events + return_type: paginated_response(campaign_statistics_events) + summary: Get a list of events grouped by summary + x_deprecation: null + x_filter: {} + - _key: list + description: 'Get a list of statistics for a campaign, including the number of + devices reporting specific event codes. + +
+ + **Usage example:** + + ``` + + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56780120000789012/statistics + \ + + -H ''Authorization: Bearer '' + + ``` + + ' + drop_fields: + - object + - etag + - type + - filter + - order + - limit + - after + - has_more + - total_count + - data + field_renames: [] + fields: + - _key: campaign_id + api_fieldname: campaign_id + description: The campaign ID. + entity_fieldname: campaign_id + external_param: false + in: path + name: campaign_id + parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' + required: true + type: string + foreign_key: + entity: campaign_statistics + group: Device_Update + foreign_key_priority: self + group_id: Device_Update + method: get + mode: list + operation_id: Update_Campaign_statistics_list + pagination: true + parameter_map: + summary_status_id: id + path: /v3/update-campaigns/{campaign_id}/statistics + request_body: json + request_content_type: application/json + responses: + - _key: '200' + description: OK. + schema: + foreign_key: + entity: campaign_statistics + group: Device_Update + pagination: true + properties: + - _key: after + api_fieldname: after + description: The entity ID to fetch after the given one. + entity_fieldname: after + example: 'null' + type: string + - _key: data + api_fieldname: data + entity_fieldname: data + items: + foreign_key: + entity: campaign_statistics + group: Device_Update + properties: + - _key: campaign_id + description: ID of the associated campaign. + example: 016e652be6710000000000010010013d + type: string + - _key: count + example: 10 + type: integer + - _key: created_at + example: '2017-05-22T12:37:55.576563Z' + format: date-time + type: string + - _key: id + description: ID of the event type description. + enum: + - fail + - success + - info + - skipped + example: fail + type: string + - _key: object + description: 'Entity name: always ''summary_status''.' + example: summary_status + type: string + - _key: summary_status + description: The event type description. + enum: + - FAIL + - SUCCESS + - INFO + - SKIPPED + example: FAIL + type: string + type: object + type: array + - _key: has_more + api_fieldname: has_more + description: A flag indicating whether there are more results. + entity_fieldname: has_more + example: 'false' + type: boolean + - _key: limit + api_fieldname: limit + description: 'The number of results to return, (range: 2-1000), or equals + to total_count.' + entity_fieldname: limit + example: '50' + type: integer + - _key: object + api_fieldname: object + description: 'The entity name: always ''list''.' + entity_fieldname: object + example: list + type: string + - _key: order + api_fieldname: order + description: 'The order of the records to return. Acceptable values: ASC, + DESC. Default: ASC.' + entity_fieldname: order + enum: + - ASC + - DESC + example: ASC + type: string + - _key: total_count + api_fieldname: total_count + description: The total number or records, if requested. It may be returned + also for small lists. + entity_fieldname: total_count + example: '1' + type: integer + type: object + - _key: '401' + description: Not Authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '404' + description: Not Found. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + return_info: + custom: false + self: true + type: campaign_statistics + return_type: paginated_response(campaign_statistics) + summary: Get statistics for a campaign x_deprecation: null x_filter: {} - - _key: list - description: 'Get a list of statistics for a campaign, including the number of - devices reporting specific event codes. + - _key: read + description: 'Get the count of successfully updated, skipped, and failed devices.
@@ -14011,10 +14735,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics + curl https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/fail \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -14024,246 +14748,6 @@ entities: - etag - type - filter - - order - - limit - - after - - has_more - - total_count - - data - field_renames: [] - fields: - - _key: campaign_id - api_fieldname: campaign_id - description: The campaign ID. - entity_fieldname: campaign_id - external_param: false - in: path - maxLength: 32 - minLength: 32 - name: campaign_id - parameter_fieldname: campaign_id - required: true - type: string - foreign_key: - entity: campaign_statistics - group: Device_Update - foreign_key_priority: self - group_id: Device_Update - method: get - mode: list - operation_id: Update_Campaign_statistics_list - pagination: true - parameter_map: - summary_status_id: id - path: /v3/update-campaigns/{campaign_id}/statistics - request_body: json - request_content_type: application/json - responses: - - _key: '200' - description: OK. - schema: - foreign_key: - entity: campaign_statistics - group: Device_Update - pagination: true - properties: - - _key: after - api_fieldname: after - description: The entity ID to fetch after the given one. - entity_fieldname: after - example: 'null' - type: string - - _key: data - api_fieldname: data - entity_fieldname: data - items: - foreign_key: - entity: campaign_statistics - group: Device_Update - properties: - - _key: campaign_id - description: ID of the associated campaign. - example: '00000000000000000000000000000000' - type: string - - _key: count - example: 10 - type: integer - - _key: created_at - example: '2017-05-22T12:37:55.576563Z' - format: date-time - type: string - - _key: id - description: ID of the event type description. - enum: - - fail - - success - - info - - skipped - example: fail - type: string - - _key: object - description: 'Entity name: always ''summary_status''.' - type: string - - _key: summary_status - description: The event type description. - enum: - - FAIL - - SUCCESS - - INFO - - SKIPPED - example: FAIL - type: string - type: object - type: array - - _key: has_more - api_fieldname: has_more - description: A flag indicating whether there are more results. - entity_fieldname: has_more - example: 'false' - type: boolean - - _key: limit - api_fieldname: limit - description: 'The number of results to return, (range: 2-1000), or equals - to total_count.' - entity_fieldname: limit - example: '50' - type: integer - - _key: object - api_fieldname: object - description: 'The entity name: always ''list''.' - entity_fieldname: object - type: string - - _key: order - api_fieldname: order - description: 'The order of the records to return. Acceptable values: ASC, - DESC. Default: ASC.' - entity_fieldname: order - enum: - - ASC - - DESC - example: ASC - type: string - - _key: total_count - api_fieldname: total_count - description: The total number or records, if requested. It may be returned - also for small lists. - entity_fieldname: total_count - example: '1' - type: integer - type: object - - _key: '401' - description: Not Authenticated. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '404' - description: Not Found. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - return_info: - custom: false - self: true - type: campaign_statistics - return_type: paginated_response(campaign_statistics) - summary: Get statistics for a campaign - x_deprecation: null - x_filter: {} - - _key: read - description: "Get the count of successfully updated, skipped, and failed devices.\ - \ \n
\n**Usage example:**\n```\ncurl https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012\ - \ \\\n-H 'Authorization: '\n```\n" - drop_fields: - - object - - etag - - type - - filter - summary_status - count - created_at @@ -14273,7 +14757,7 @@ entities: api_fieldname: campaign_id description: ID of the associated campaign. entity_fieldname: campaign_id - example: '00000000000000000000000000000000' + example: 016e652be6710000000000010010013d in: path parameter_fieldname: campaign_id required: true @@ -14315,7 +14799,7 @@ entities: api_fieldname: campaign_id description: ID of the associated campaign. entity_fieldname: campaign_id - example: '00000000000000000000000000000000' + example: 016e652be6710000000000010010013d type: string - _key: count api_fieldname: count @@ -14343,6 +14827,7 @@ entities: api_fieldname: object description: 'Entity name: always ''summary_status''.' entity_fieldname: object + example: summary_status type: string - _key: summary_status api_fieldname: summary_status @@ -14473,7 +14958,7 @@ entities: - _key: campaign_id api_fieldname: campaign_id description: ID of the associated campaign. - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 readOnly: false required: true type: string @@ -14523,8 +15008,8 @@ entities: group_id: Device_Update methods: - _key: read - description: 'Get the count for a specific event type; for example, succeeded, - failed, or skipped. + description: 'Get the count for a specific event type, for example, succeeded, + failed or skipped.
@@ -14532,10 +15017,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/12345678901234567890123456789012/event_types/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/statistics/success/event_types/sys_112 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -14556,7 +15041,7 @@ entities: api_fieldname: campaign_id description: ID of the associated campaign. entity_fieldname: campaign_id - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 in: path parameter_fieldname: campaign_id required: true @@ -14599,7 +15084,7 @@ entities: api_fieldname: campaign_id description: ID of the associated campaign. entity_fieldname: campaign_id - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 type: string - _key: count api_fieldname: count @@ -14631,6 +15116,7 @@ entities: api_fieldname: object description: 'Entity name: always ''event-type''.' entity_fieldname: object + example: event-type type: string - _key: summary_status api_fieldname: summary_status @@ -14841,7 +15327,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ``` @@ -14851,7 +15337,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments?device_id__eq=01612df56f3b0a580a010fc700000000 \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -15237,7 +15723,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-enrollments/01612df56f3b0a580a010fc700000000 \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -15561,7 +16047,7 @@ entities: x-nullable: true - _key: id api_fieldname: id - description: The ID of the certificate issuer. + description: Certificate issuer ID. example: 01234567890ABCDEF01234567890ABCDEF readOnly: false required: true @@ -15572,21 +16058,19 @@ entities: api_fieldname: issuer_attributes 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. + When the issuer_type is GLOBAL_SIGN, the value is empty. - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' example: [] readOnly: false required: false type: object - _key: issuer_type api_fieldname: 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" + 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 @@ -15606,12 +16090,12 @@ entities: group_id: Security methods: - _key: create - description: "Create a certificate issuer.\nThe maximum number of issuers is limited\ - \ to 20 per account.\nMultiple certificate issuers of the same issuer type can\ - \ be created, provided they have a different name. This allows verification\ - \ of the certificate issuer configuration before activating it.\n
\n**Example\ - \ usage:**\n\n```\ncurl -X POST \\\n-H 'authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers\ + description: "Create a certificate issuer.\n
\nThe maximum number of issuers\ + \ is limited to 20 per account.\n
\nYou can create multiple certificate issuers\ + \ of the same type, provided they have different names. This allows verification\ + \ of the certificate issuer configuration before activation.\n
\n**Example:**\n\ + ```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuers\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"issuer_type\": \"GLOBAL_SIGN\",\n \"name\": \"GS Issuer\"\ ,\n \"description\": \"Sample GlobalSign certificate issuer\",\n \"issuer_attributes\"\ : null,\n \"issuer_credentials\": {\n \"api_key\": \"e510e289e6cd8947\"\ @@ -15632,7 +16116,7 @@ entities: nhEAyifKy1/tm3l91Rf/kGpHY7nIQKCXH49tmFwix8gke2nZJmRgX7/zAdMOAKeKH\\nAaIl4nQtv14EbaasMgnn9qgaDYnWzaReEob2QlQ/WYlTor61+KFpGtcf9jAkgudT\\\ n2op+4CF7wT2+aTXdtkVWfmv++iB8GnlqZdxLvyG1cTYjjYHVFbMSWQnxzQqiE2ms\\nQgp+byjWCumpsWTMdTO+d9NkDOo80vDpaRxEgebmhJ0MbX+eFjBgVg==\\\ n-----END RSA PRIVATE KEY-----\",\n \"passphrase\": \"helloworld\"\n }\n\ - }'\n```\n" + }'\n```" drop_fields: - object - etag @@ -15659,11 +16143,9 @@ entities: api_fieldname: issuer_attributes 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 GLOBAL_SIGN, the value is empty. - When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' entity_fieldname: issuer_attributes example: [] in: body @@ -15674,13 +16156,11 @@ entities: additionalProperties: type: string api_fieldname: issuer_credentials - description: 'The credentials required for connecting to the certificate issuer. + 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. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.' entity_fieldname: issuer_credentials example: [] external_param: true @@ -15692,11 +16172,10 @@ entities: type: object - _key: issuer_type api_fieldname: 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" + 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." entity_fieldname: issuer_type enum: - GLOBAL_SIGN @@ -15758,7 +16237,7 @@ entities: type: string - _key: id api_fieldname: id - description: The ID of the certificate issuer. + description: Certificate issuer ID. entity_fieldname: id example: 01234567890ABCDEF01234567890ABCDEF type: string @@ -15768,21 +16247,18 @@ entities: api_fieldname: issuer_attributes 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 GLOBAL_SIGN, the value is empty. - When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' entity_fieldname: issuer_attributes example: [] type: object - _key: issuer_type api_fieldname: 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" + 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." entity_fieldname: issuer_type enum: - GLOBAL_SIGN @@ -15807,9 +16283,7 @@ entities: type: object - _key: '400' description: 'Validation error: The data used to create the certificate issuer - failed validation. - - ' + failed validation.' schema: properties: - _key: code @@ -15929,9 +16403,7 @@ entities: - type type: object - _key: '409' - description: 'Conflict. A certificate issuer with this name already exists. - - ' + description: Conflict. A certificate issuer with this name already exists. schema: properties: - _key: code @@ -15971,9 +16443,7 @@ entities: - type type: object - _key: '424' - description: 'The request failed due to customer configured external service. - - ' + description: The request failed due to customer configured external service. schema: properties: - _key: code @@ -16025,20 +16495,16 @@ entities:
- **Example usage:** - + **Example:** ``` - curl -X DELETE \ - - -H ''authorization: '' \ - - https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/0162155dc77d507b9d48a91b00000000 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/0162155dc77d507b9d48a91b00000000 + \ - ``` + -H ''Authorization: Bearer '' \ - ' + ```' drop_fields: - object - etag @@ -16048,11 +16514,9 @@ entities: fields: - _key: id api_fieldname: certificate-issuer-id - description: 'Certificate issuer ID.
The ID of the certificate issuer. - - An active certificate issuer may not be deleted. + description: 'Certificate issuer ID. - ' + An active certificate issuer cannot be deleted.' entity_fieldname: id external_param: false in: path @@ -16074,9 +16538,7 @@ entities: - _key: '204' description: Certificate issuer deleted. - _key: '400' - description: 'Validation error: An active certificate issuer cannot be deleted. - - ' + description: 'Validation error: An active certificate issuer cannot be deleted.' schema: properties: - _key: code @@ -16244,10 +16706,8 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'Note: This endpoint does not implement pagination and therefore, - list control parameters such as `limit` or `after` will be ignored by the system. - - ' + description: '**Note:** This endpoint does not use pagination, and therefore ignores + list control parameters such as `limit` or `after`.' drop_fields: - object - etag @@ -16260,7 +16720,7 @@ entities: fields: - _key: after api_fieldname: after - description: The ID of The item after which to retrieve the next page. + description: The ID of the item after which to retrieve the next page. entity_fieldname: after example: '01631667477600000000000100100374' external_param: true @@ -16272,7 +16732,7 @@ entities: - _key: include api_fieldname: include description: 'Comma-separated list of data fields to return. Currently supported: - `total_count`' + `total_count`.' entity_fieldname: include external_param: true in: query @@ -16282,9 +16742,8 @@ entities: type: string - _key: limit api_fieldname: 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. + description: The number of results to return (2-1000). Values outside of this + range are set to the closest limit. entity_fieldname: limit example: 50 external_param: true @@ -16297,8 +16756,7 @@ entities: type: integer - _key: order api_fieldname: order - description: The order of the records based on creation time, `ASC` or `DESC`; - by default `ASC`. + description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order example: DESC external_param: true @@ -16332,7 +16790,7 @@ entities: properties: - _key: after api_fieldname: after - description: The ID of The item after which to retrieve the next page. + description: The ID of the item after which to retrieve the next page. entity_fieldname: after example: '01631667477600000000000100100374' external_param: true @@ -16366,7 +16824,7 @@ entities: example: '1' type: string - _key: id - description: The ID of the certificate issuer. + description: Certificate issuer ID. example: 01234567890ABCDEF01234567890ABCDEF type: string - _key: issuer_attributes @@ -16374,19 +16832,17 @@ entities: 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 GLOBAL_SIGN, the value is empty. - When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' example: [] type: object - _key: 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" + 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 @@ -16407,15 +16863,14 @@ entities: type: array - _key: has_more api_fieldname: has_more - description: Are there more results available. + description: More results are available. entity_fieldname: has_more example: false type: boolean - _key: limit api_fieldname: 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. + description: The number of results to return (2-1000). Values outside of + this range are set to the closest limit. entity_fieldname: limit example: 50 external_param: true @@ -16428,14 +16883,13 @@ entities: type: integer - _key: object api_fieldname: object - description: The type of this API object is a `list`. + description: The type of this API object is `list`. entity_fieldname: object example: list type: string - _key: order api_fieldname: order - description: The order of the records based on creation time, `ASC` or `DESC`; - by default `ASC`. + description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order example: DESC external_param: true @@ -16555,7 +17009,7 @@ entities: fields: - _key: id api_fieldname: id - description: The ID of the certificate issuer. + description: Certificate issuer ID. entity_fieldname: id example: 01234567890ABCDEF01234567890ABCDEF in: path @@ -16603,7 +17057,7 @@ entities: type: string - _key: id api_fieldname: id - description: The ID of the certificate issuer. + description: Certificate issuer ID. entity_fieldname: id example: 01234567890ABCDEF01234567890ABCDEF type: string @@ -16613,21 +17067,18 @@ entities: api_fieldname: issuer_attributes 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 GLOBAL_SIGN, the value is empty. - When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' entity_fieldname: issuer_attributes example: [] type: object - _key: issuer_type api_fieldname: 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" + 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." entity_fieldname: issuer_type enum: - GLOBAL_SIGN @@ -16652,9 +17103,7 @@ entities: type: object - _key: '400' description: 'Validation error: The data used to get the certificate issuer - failed validation. - - ' + failed validation.' schema: properties: - _key: code @@ -16822,11 +17271,11 @@ entities: x_deprecation: null x_filter: {} - _key: update - description: "Update a certificate issuer.\n
\n**Example usage:**\n\n```\n\ - curl -X PUT \\\n-H 'authorization: ' \\\n-H 'content-type:\ - \ application/json;charset=UTF-8' \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621560be51507b9d48a91b00000000\ + description: "Update a certificate issuer.\n
\n**Example:**\n\n```\ncurl -X\ + \ PUT https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621560be51507b9d48a91b00000000\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"description\": \"Sample GlobalSign certificate issuer - updated.\"\ - ,\n \"name\": \"GlobalSign Issuer\"\n}'\n```\n" + ,\n \"name\": \"GlobalSign Issuer\"\n}'\n```" drop_fields: - object - etag @@ -16849,7 +17298,7 @@ entities: x-nullable: true - _key: id api_fieldname: id - description: The ID of the certificate issuer. + description: Certificate issuer ID. entity_fieldname: id example: 01234567890ABCDEF01234567890ABCDEF in: path @@ -16862,11 +17311,9 @@ entities: api_fieldname: issuer_attributes 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 GLOBAL_SIGN, the value is empty. - When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' entity_fieldname: issuer_attributes example: [] in: body @@ -16877,13 +17324,11 @@ entities: additionalProperties: type: string api_fieldname: issuer_credentials - description: 'The credentials required for connecting to the certificate issuer. + 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. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAuthCredentials.' entity_fieldname: issuer_credentials example: [] external_param: true @@ -16944,7 +17389,7 @@ entities: type: string - _key: id api_fieldname: id - description: The ID of the certificate issuer. + description: Certificate issuer ID. entity_fieldname: id example: 01234567890ABCDEF01234567890ABCDEF type: string @@ -16954,21 +17399,18 @@ entities: api_fieldname: issuer_attributes 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 GLOBAL_SIGN, the value is empty. - When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes. - - ' + When the issuer_type is CFSSL_AUTH, see definition of CfsslAttributes.' entity_fieldname: issuer_attributes example: [] type: object - _key: issuer_type api_fieldname: 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" + 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." entity_fieldname: issuer_type enum: - GLOBAL_SIGN @@ -16993,9 +17435,7 @@ entities: type: object - _key: '400' description: 'Validation error: The data used to update the certificate issuer - failed validation. - - ' + failed validation.' schema: properties: - _key: code @@ -17155,9 +17595,7 @@ entities: - type type: object - _key: '409' - description: 'Conflict. A certificate issuer with this name already exists. - - ' + description: Conflict. A certificate issuer with this name already exists. schema: properties: - _key: code @@ -17197,9 +17635,7 @@ entities: - type type: object - _key: '424' - description: 'The request failed due to customer configured external service. - - ' + description: The request failed due to customer-configured external service. schema: properties: - _key: code @@ -17247,11 +17683,8 @@ entities: x_deprecation: null x_filter: {} - _key: verify - description: 'A utility API that can be used to validate the user configuration - before activating a certificate issuer. - - Verifies that the certificate issuer is accessible and can be used to generate - certificates by Device Management. + description: 'Validates the certificate issuer by sending a signing request for + a test certificate. This should be done before the configuration is made active.
@@ -17259,26 +17692,22 @@ entities: The API requests the 3rd party CA to sign a test certificate. - For some 3rd party CAs, this operation may make use of the account quota. + For some 3rd party CAs, this operation may use the account quota.
- **Example usage:** - + **Example:** ``` - curl -X POST \ + curl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621a36719d507b9d48a91b00000000/verify + \ - -H ''authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json;charset=UTF-8'' \ - https://api.us-east-1.mbedcloud.com/v3/certificate-issuers/01621a36719d507b9d48a91b00000000/verify - - ``` - - ' + ```' drop_fields: - object - etag @@ -17290,9 +17719,7 @@ entities: fields: - _key: id api_fieldname: certificate-issuer-id - description: 'Certificate issuer ID.
The ID of the certificate issuer. - - ' + description: Certificate issuer ID. entity_fieldname: id external_param: false in: path @@ -17323,17 +17750,13 @@ entities: properties: - _key: message api_fieldname: message - description: 'Provides details in case of failure. - - ' + description: Provides details in case of failure. entity_fieldname: message - example: message describing the verification failure + example: Message describing the verification failure type: string - _key: successful api_fieldname: successful - description: 'Indicates whether the certificate issuer was verified successfully. - - ' + description: Indicates whether the certificate issuer was verified successfully. entity_fieldname: successful example: false type: boolean @@ -17499,9 +17922,7 @@ entities: - type type: object - _key: '424' - description: 'The request failed due to customer configured external service. - - ' + description: The request failed due to customer configured external service. schema: properties: - _key: code @@ -17557,17 +17978,15 @@ entities: - CertificateIssuerUpdateRequest - CertificateIssuerVerifyResponse tags: - - Certificate Issuers + - Security and identity - certificate issuers - _key: certificate_issuer_config field_renames: [] fields: - _key: certificate_issuer_id api_fieldname: certificate_issuer_id - description: 'The ID of the certificate issuer. + description: 'Certificate issuer ID. - Null if Device Management internal HSM is used. - - ' + Null if Device Management internal HSM is used.' example: 01648415a2a30242ac18000500000000 readOnly: false required: true @@ -17583,9 +18002,7 @@ entities: type: string - _key: id api_fieldname: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. example: 01648415a2a30242ac18000500000000 readOnly: false required: true @@ -17609,12 +18026,11 @@ entities: group_id: Security methods: - _key: create - description: "Configure the certificate issuer to be used when creating the device\ - \ custom certificates.\n
\n**Example usage:**\n\n```\ncurl -X POST \\\n-H\ - \ 'authorization: ' \\\n-H 'content-type: application/json;charset=UTF-8'\ - \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations\ + description: "Configure the certificate issuer to use when creating device custom\ + \ certificates.\n
\n**Example:**\n\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"reference\": \"customer.dlms\",\n \"certificate_issuer_id\"\ - : \"01621a36719d507b9d48a91b00000000\"\n}'\n```\n" + : \"01621a36719d507b9d48a91b00000000\"\n}'\n```" drop_fields: - object - etag @@ -17628,11 +18044,9 @@ entities: fields: - _key: certificate_issuer_id api_fieldname: certificate_issuer_id - description: 'The ID of the certificate issuer. + description: 'Certificate issuer ID. - Null if Device Management internal HSM is used. - - ' + Null if Device Management internal HSM is used.' entity_fieldname: certificate_issuer_id example: 01648415a2a30242ac18000500000000 in: body @@ -17670,11 +18084,9 @@ entities: properties: - _key: certificate_issuer_id api_fieldname: certificate_issuer_id - description: 'The ID of the certificate issuer. + description: 'Certificate issuer ID. - Null if Device Management internal HSM is used. - - ' + Null if Device Management internal HSM is used.' entity_fieldname: certificate_issuer_id example: 01648415a2a30242ac18000500000000 type: string @@ -17694,9 +18106,7 @@ entities: type: string - _key: id api_fieldname: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. entity_fieldname: id example: 01648415a2a30242ac18000500000000 type: string @@ -17847,10 +18257,8 @@ entities: - type type: object - _key: '409' - description: 'A certificate issuer configuration with this reference already + description: A certificate issuer configuration with this reference already exists. - - ' schema: properties: - _key: code @@ -17898,11 +18306,9 @@ entities: x_deprecation: null x_filter: {} - _key: delete - description: 'Delete the configured certificate issuer configuration. + description: 'Delete certificate issuer configuration. - You can only delete the configurations of custom certificates. - - ' + You can only delete custom certificate configurations.' drop_fields: - object - etag @@ -17913,9 +18319,7 @@ entities: fields: - _key: id api_fieldname: certificate-issuer-configuration-id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID configuration. entity_fieldname: id external_param: false in: path @@ -18105,12 +18509,9 @@ entities: x_deprecation: null x_filter: {} - _key: get_default - description: 'Provides the configured certificate issuer to be used when creating - device + description: 'Provides the configured certificate issuer used when creating device - certificates for LwM2M communication.
- - ' + certificates for LwM2M.' drop_fields: - object - etag @@ -18144,11 +18545,9 @@ entities: properties: - _key: certificate_issuer_id api_fieldname: certificate_issuer_id - description: 'The ID of the certificate issuer. + description: 'Certificate issuer ID. - Null if Device Management internal HSM is used. - - ' + Null if Device Management internal HSM is used.' entity_fieldname: certificate_issuer_id example: 01648415a2a30242ac18000500000000 type: string @@ -18168,9 +18567,7 @@ entities: type: string - _key: id api_fieldname: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. entity_fieldname: id example: 01648415a2a30242ac18000500000000 type: string @@ -18333,38 +18730,34 @@ entities:
- **Example usage:** - + **Example:** ``` - curl \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations + \ - -H ''authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json;charset=UTF-8'' \ - https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations \ - ``` +
+ ``` - curl \ + curl -X GET https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations?reference__eq=dlms + \ - -H ''authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json;charset=UTF-8'' \ - https://api.us-east-1.mbedcloud.com/v3/certificate-issuer-configurations?reference__eq=dlms - \ - ``` - Note: This endpoint does not implement pagination and therefore, list control - parameters such as `limit` or `after` will be ignored by the system. - - ' + **Note:** This endpoint does not implement pagination, and therefore ignores + list control parameters such as `limit` or `after`.' drop_fields: - object - etag @@ -18379,7 +18772,7 @@ entities: fields: - _key: after api_fieldname: after - description: The ID of The item after which to retrieve the next page. + description: The ID of the item after which to retrieve the next page. entity_fieldname: after example: '01631667477600000000000100100374' external_param: true @@ -18391,7 +18784,7 @@ entities: - _key: include api_fieldname: include description: 'Comma-separated list of data fields to return. Currently supported: - `total_count`' + `total_count`.' entity_fieldname: include external_param: true in: query @@ -18401,9 +18794,8 @@ entities: type: string - _key: limit api_fieldname: 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. + description: The number of results to return (2-1000). Values outside of this + range are set to the closest limit. entity_fieldname: limit example: 50 external_param: true @@ -18416,8 +18808,7 @@ entities: type: integer - _key: order api_fieldname: order - description: The order of the records based on creation time, `ASC` or `DESC`; - by default `ASC`. + description: 'Record order. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order example: DESC external_param: true @@ -18465,11 +18856,9 @@ entities: group: Security properties: - _key: certificate_issuer_id - description: 'The ID of the certificate issuer. - - Null if Device Management internal HSM is used. + description: 'Certificate issuer ID. - ' + Null if Device Management internal HSM is used.' example: 01648415a2a30242ac18000500000000 type: string x-nullable: true @@ -18483,9 +18872,7 @@ entities: example: '1' type: string - _key: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. example: 01648415a2a30242ac18000500000000 type: string - _key: is_custom @@ -18509,15 +18896,14 @@ entities: type: array - _key: has_more api_fieldname: has_more - description: Are there more results available. + description: More results are available. entity_fieldname: has_more example: false type: boolean - _key: limit api_fieldname: 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. + description: The number of results to return (2-1000). Values outside of + this range are set to the closest limit. entity_fieldname: limit example: 50 maximum: 1000 @@ -18525,13 +18911,13 @@ entities: type: integer - _key: object api_fieldname: object - description: The type of this API object is a `list`. + description: The type of this API object is `list`. entity_fieldname: object example: list type: string - _key: order api_fieldname: order - description: The creation time based order of the entries. + description: Record order based on creation time. entity_fieldname: order example: DESC type: string @@ -18673,9 +19059,7 @@ entities: reference: - eq - _key: read - description: 'Provides the configured certificate issuer. - - ' + description: Provides the configured certificate issuer. drop_fields: - object - etag @@ -18690,9 +19074,7 @@ entities: fields: - _key: id api_fieldname: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. entity_fieldname: id example: 01648415a2a30242ac18000500000000 in: path @@ -18719,11 +19101,9 @@ entities: properties: - _key: certificate_issuer_id api_fieldname: certificate_issuer_id - description: 'The ID of the certificate issuer. - - Null if Device Management internal HSM is used. + description: 'Certificate issuer ID. - ' + Null if Device Management internal HSM is used.' entity_fieldname: certificate_issuer_id example: 01648415a2a30242ac18000500000000 type: string @@ -18743,9 +19123,7 @@ entities: type: string - _key: id api_fieldname: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. entity_fieldname: id example: 01648415a2a30242ac18000500000000 type: string @@ -18948,9 +19326,7 @@ entities: - notes: After retrieving the resource using the `lwm2m` method, it can modified using using this SDK method. operation_id: updateCertificateIssuerConfig - description: 'Update the configured certificate issuer configuration. - - ' + description: Update certificate issuer configuration. drop_fields: - object - etag @@ -18964,11 +19340,9 @@ entities: fields: - _key: certificate_issuer_id api_fieldname: certificate_issuer_id - description: 'The ID of the certificate issuer. - - Null if Device Management internal HSM is used. + description: 'Certificate issuer ID. - ' + Null if Device Management internal HSM is used.' entity_fieldname: certificate_issuer_id example: 01648415a2a30242ac18000500000000 in: body @@ -18978,9 +19352,7 @@ entities: x-nullable: true - _key: id api_fieldname: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. entity_fieldname: id example: 01648415a2a30242ac18000500000000 in: path @@ -19007,11 +19379,9 @@ entities: properties: - _key: certificate_issuer_id api_fieldname: certificate_issuer_id - description: 'The ID of the certificate issuer. - - Null if Device Management internal HSM is used. + description: 'Certificate issuer ID. - ' + Null if Device Management internal HSM is used.' entity_fieldname: certificate_issuer_id example: 01648415a2a30242ac18000500000000 type: string @@ -19031,9 +19401,7 @@ entities: type: string - _key: id api_fieldname: id - description: 'The ID of the certificate issuer configuration. - - ' + description: Certificate issuer ID. configuration. entity_fieldname: id example: 01648415a2a30242ac18000500000000 type: string @@ -19238,7 +19606,7 @@ entities: - CertificateIssuerConfigResponse - CreateCertificateIssuerConfig tags: - - Certificate Issuers Activation + - Security and identity - certificate issuer configurations - _key: dark_theme_color field_renames: [] fields: @@ -19289,6 +19657,8 @@ entities: - _key: delete description: 'Resets the branding color to its dark theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -19297,7 +19667,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -19312,7 +19682,7 @@ entities: api_fieldname: reference description: The name of the branding color. entity_fieldname: reference - enum: &id003 + enum: &id002 - error_color - primary - secondary @@ -19510,7 +19880,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -19555,7 +19925,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -19768,7 +20138,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -19785,7 +20155,7 @@ entities: api_fieldname: reference description: Color name. entity_fieldname: reference - enum: *id003 + enum: *id002 enum_reference: dark_theme_color_reference_enum in: path is_primary_key: true @@ -20015,6 +20385,8 @@ entities: operation_id: bulkSetDarkColors description: 'Update a dark theme branding color. + Note: This endpoint is restricted to administrators. + **Example:** @@ -20023,7 +20395,7 @@ entities: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/dark/primary \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -20052,7 +20424,7 @@ entities: api_fieldname: reference description: Color name. entity_fieldname: reference - enum: *id003 + enum: *id002 enum_reference: dark_theme_color_reference_enum in: path is_primary_key: true @@ -20411,6 +20783,8 @@ entities: - _key: delete description: 'Revert an account branding image to dark theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -20419,7 +20793,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference}/clear \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -20434,7 +20808,7 @@ entities: api_fieldname: reference description: Name of the branding images (icon or picture). entity_fieldname: reference - enum: &id004 + enum: &id003 - brand_logo_portrait - brand_logo_square - brand_logo_landscape @@ -20649,7 +21023,7 @@ entities: `curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -20694,7 +21068,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -20929,7 +21303,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -20946,7 +21320,7 @@ entities: api_fieldname: reference description: Name of the image. entity_fieldname: reference - enum: *id004 + enum: *id003 enum_reference: dark_theme_image_reference_enum in: path is_primary_key: true @@ -21196,8 +21570,10 @@ entities: - notes: The multipart endpoint is used by the SDKs as it offers the same functionality as the standard upload endpoint. operation_id: uploadDarkImage - description: Upload a new account branding image as form data in the dark theme + description: 'Upload a new account branding image as form data in the dark theme in PNG or JPEG format. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -21222,7 +21598,7 @@ entities: api_fieldname: reference description: Name of the image. entity_fieldname: reference - enum: *id004 + enum: *id003 enum_reference: dark_theme_image_reference_enum in: path is_primary_key: true @@ -21594,7 +21970,7 @@ entities: **Note:** The number of developer certificates allowed per account is limited. - Please see [Using your own certificate authority](../provisioning-process/using-CA.html). + Please see [Setting up a Certificate Authority](https://www.pelion.com/docs/device-management/current/provisioning-process/integrating-with-a-third-party-ca.html). **Example:** @@ -21603,7 +21979,7 @@ entities: curl -X POST http://api.us-east-1.mbedcloud.com/v3/developer-certificates \ - -H "Authorization: Bearer " \ + -H "Authorization: Bearer " \ -H "content-type: application/json" \ @@ -22166,7 +22542,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -22299,7 +22675,7 @@ entities: - type type: object - _key: '404' - description: Certificate not found. + description: A certificate not found. schema: properties: - _key: code @@ -22355,7 +22731,7 @@ entities: x_deprecation: null x_filter: {} - _key: get_trusted_certificate_info - description: 'Retrieve a trusted certificate by ID. + description: 'Retrieve a trusted certificate. **Example:** @@ -22365,7 +22741,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -22469,10 +22845,16 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default + value is false.' entity_fieldname: enrollment_mode 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: [] - _key: etag api_fieldname: etag description: API resource entity version. @@ -22669,7 +23051,7 @@ entities: - type type: object - _key: '404' - description: Certificate not found. + description: A certificate not found. schema: properties: - _key: code @@ -22721,7 +23103,7 @@ entities: self: false type: trusted_certificate return_type: trusted_certificate - summary: Get trusted certificate by ID. + summary: Get a trusted certificate. unaggregated: true x_deprecation: null x_filter: {} @@ -22737,7 +23119,7 @@ entities: curl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -23207,8 +23589,8 @@ entities: - DeveloperCertificateResponseData - TrustedCertificateResp tags: - - Device security - developer class certificates - - Device security - certificates + - Security and identity - developer class certificates + - Security and identity - certificates - _key: device field_renames: [] fields: @@ -23250,6 +23632,20 @@ entities: readOnly: false required: false type: string + - _key: component_attributes + additionalProperties: + maxLength: 128 + type: string + api_fieldname: component_attributes + 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 + readOnly: true + required: false + type: object - _key: connector_expiration_date api_fieldname: connector_expiration_date description: The expiration date of the certificate used to connect to LwM2M server. @@ -23301,7 +23697,7 @@ entities: - _key: description api_fieldname: description description: The description of the device. - example: description + example: Temperature measuring device maxLength: 2000 readOnly: false required: false @@ -23342,7 +23738,8 @@ entities: type: string - _key: endpoint_name api_fieldname: endpoint_name - description: The endpoint name given to the device. + 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 required: false @@ -23381,7 +23778,8 @@ entities: type: array - _key: host_gateway api_fieldname: host_gateway - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind Edge + has this host_gateway set. example: '' readOnly: false required: false @@ -23457,7 +23855,12 @@ entities: type: string - _key: lifecycle_status api_fieldname: lifecycle_status - description: The lifecycle status of the device. + 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 @@ -23483,7 +23886,7 @@ entities: type: string - _key: mechanism api_fieldname: mechanism - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: The ID of the channel used to communicate with the device.' enum: - connector - direct @@ -23493,35 +23896,65 @@ entities: type: string - _key: mechanism_url api_fieldname: mechanism_url - description: The address of the connector to use. + description: 'NOT USED: The address of the connector to use.' example: '' readOnly: false required: false type: string - _key: name api_fieldname: name - description: The name of the device. + 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 readOnly: false required: false type: string + - _key: net_id + api_fieldname: 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 + readOnly: true + required: false + type: string - _key: operator_suspended api_fieldname: operator_suspended - description: Is the device suspended by the operator? + description: Device has been suspended by operator. readOnly: true required: false type: boolean - _key: serial_number api_fieldname: serial_number - description: The serial number of the device. + 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 readOnly: false required: false type: string - _key: state api_fieldname: state - description: The current state of the device. + 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 @@ -23540,7 +23973,7 @@ entities: type: boolean - _key: updated_at api_fieldname: updated_at - description: The time the object was updated. + description: The time this data object was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time readOnly: true @@ -23556,7 +23989,7 @@ entities: group_id: Devices methods: - _key: add_to_group - description: Add one device to a group. + description: Add one device to a group. A device can be in multiple groups. drop_fields: - object - etag @@ -23753,7 +24186,9 @@ entities: x_deprecation: null x_filter: {} - _key: create - description: Create a new device. + description: Create a new device in Device Management. Usually you do not need + to create a device this way, as it is automatically created when it bootstraps + or connects to Device Management. drop_fields: - object - etag @@ -23771,11 +24206,13 @@ entities: - lifecycle_status - account_id - bootstrapped_timestamp + - component_attributes - created_at - deployed_state - id - firmware_checksum - manifest_timestamp + - net_id - updated_at - enrolment_list_timestamp field_renames: [] @@ -23850,7 +24287,7 @@ entities: api_fieldname: description description: The description of the device. entity_fieldname: description - example: description + example: Temperature measuring device in: body maxLength: 2000 parameter_fieldname: description @@ -23899,7 +24336,8 @@ entities: type: string - _key: endpoint_name api_fieldname: endpoint_name - description: The endpoint name given to the device. + description: The endpoint name given to the device. The endpoint_name is from + the device certificate and is set by factory tool. entity_fieldname: endpoint_name example: 00000000-0000-0000-0000-000000000000 in: body @@ -23919,7 +24357,8 @@ entities: type: string - _key: host_gateway api_fieldname: host_gateway - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind Edge + has this host_gateway set. entity_fieldname: host_gateway example: '' in: body @@ -23949,7 +24388,7 @@ entities: type: string - _key: mechanism api_fieldname: mechanism - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: The ID of the channel used to communicate with the device.' entity_fieldname: mechanism enum: - connector @@ -23961,7 +24400,7 @@ entities: type: string - _key: mechanism_url api_fieldname: mechanism_url - description: The address of the connector to use. + description: 'NOT USED: The address of the connector to use.' entity_fieldname: mechanism_url example: '' in: body @@ -23970,7 +24409,8 @@ entities: type: string - _key: name api_fieldname: name - description: The name of the device. + description: The name given by the web application for the device. Device itself + provides only the endpoint_name. entity_fieldname: name example: 00000000-0000-0000-0000-000000000000 in: body @@ -23980,7 +24420,8 @@ entities: type: string - _key: serial_number api_fieldname: serial_number - description: The serial number of the device. + 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. entity_fieldname: serial_number example: 00000000-0000-0000-0000-000000000000 in: body @@ -23989,7 +24430,25 @@ entities: type: string - _key: state api_fieldname: state - description: The current state of the device. + 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.' entity_fieldname: state enum: - unenrolled @@ -24060,6 +24519,19 @@ entities: example: '00000000000000000000000000000000' maxLength: 500 type: string + component_attributes: + additionalProperties: + maxLength: 128 + type: string + api_fieldname: component_attributes + 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. + entity_fieldname: component_attributes + example: + key: value + maxProperties: 10 + type: object connector_expiration_date: api_fieldname: connector_expiration_date description: The expiration date of the certificate used to connect to LwM2M @@ -24108,7 +24580,7 @@ entities: api_fieldname: description description: The description of the device. entity_fieldname: description - example: description + example: Temperature measuring device maxLength: 2000 type: string device_class: @@ -24145,7 +24617,8 @@ entities: type: string endpoint_name: api_fieldname: endpoint_name - description: The endpoint name given to the device. + description: The endpoint name given to the device. The endpoint_name is + from the device certificate and is set by factory tool. entity_fieldname: endpoint_name example: 00000000-0000-0000-0000-000000000000 readOnly: true @@ -24189,7 +24662,8 @@ entities: type: array host_gateway: api_fieldname: host_gateway - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind + Edge has this host_gateway set. entity_fieldname: host_gateway example: '' type: string @@ -24256,7 +24730,12 @@ entities: type: string lifecycle_status: api_fieldname: lifecycle_status - description: The lifecycle status of the device. + 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''.' entity_fieldname: lifecycle_status enum: - enabled @@ -24278,7 +24757,8 @@ entities: type: string mechanism: api_fieldname: mechanism - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: The ID of the channel used to communicate with the + device.' entity_fieldname: mechanism enum: - connector @@ -24286,17 +24766,27 @@ entities: type: string mechanism_url: api_fieldname: mechanism_url - description: The address of the connector to use. + description: 'NOT USED: The address of the connector to use.' entity_fieldname: mechanism_url example: '' type: string name: api_fieldname: name - description: The name of the device. + description: The name given by the web application for the device. Device + itself provides only the endpoint_name. entity_fieldname: name example: 00000000-0000-0000-0000-000000000000 maxLength: 128 type: string + net_id: + api_fieldname: net_id + default: '' + description: Private network identifier. Used to group nodes connected to + a specific border router. + entity_fieldname: net_id + example: 0000:0000:0000:0000:0000:0000:0000:0000 + maxLength: 40 + type: string object: api_fieldname: object description: The API resource entity. @@ -24305,18 +24795,39 @@ entities: type: string operator_suspended: api_fieldname: operator_suspended - description: Is the device suspended by the operator? + description: Device has been suspended by operator. entity_fieldname: operator_suspended type: boolean serial_number: api_fieldname: serial_number - description: The serial number of the device. + 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. entity_fieldname: serial_number example: 00000000-0000-0000-0000-000000000000 type: string state: api_fieldname: state - description: The current state of the device. + 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.' entity_fieldname: state enum: - unenrolled @@ -24332,7 +24843,7 @@ entities: type: boolean updated_at: api_fieldname: updated_at - description: The time the object was updated. + description: The time this data object was updated. entity_fieldname: updated_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -24361,7 +24872,7 @@ entities: x_filter: {} - _key: delete description: Delete device. Only available for devices with a developer certificate. - Attempting to delete a device with a production certicate returns a 400 response. + Attempting to delete a device with a production certificate returns a 400 response. drop_fields: - object - etag @@ -24371,7 +24882,8 @@ entities: fields: - _key: id api_fieldname: id - description: The ID of the device. + description: The [Device ID](https://www.pelion.com/docs/device-management/current/connecting/device-identity.html) + created by Device Management. entity_fieldname: id external_param: false in: path @@ -24405,7 +24917,7 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'List all devices. + description: 'List all devices enrolled to Device Management for the account. **Example:** @@ -24547,6 +25059,10 @@ entities: - name__neq - name__in - name__nin + - net_id__eq + - net_id__neq + - net_id__in + - net_id__nin - serial_number__eq - serial_number__neq - serial_number__in @@ -24670,6 +25186,17 @@ entities: 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: description: The expiration date of the certificate used to connect to LwM2M server. @@ -24706,7 +25233,7 @@ entities: type: string description: description: The description of the device. - example: description + example: Temperature measuring device maxLength: 2000 type: string device_class: @@ -24738,7 +25265,8 @@ entities: maxLength: 512 type: string endpoint_name: - description: The endpoint name given to the device. + 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 @@ -24770,7 +25298,8 @@ entities: type: string type: array host_gateway: - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind + Edge has this host_gateway set. example: '' type: string id: @@ -24819,7 +25348,12 @@ entities: format: date-time type: string lifecycle_status: - description: The lifecycle status of the device. + 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 @@ -24835,33 +25369,63 @@ entities: format: date-time type: string mechanism: - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: 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. + description: 'NOT USED: The address of the connector to use.' example: '' type: string name: - description: The name of the device. + 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: Is the device suspended by the operator? + description: Device has been suspended by operator. type: boolean serial_number: - description: The serial number of the device. + 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. + 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 @@ -24873,7 +25437,7 @@ entities: description: Is the device suspended by the system? type: boolean updated_at: - description: The time the object was updated. + description: The time this data object was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string @@ -25074,6 +25638,11 @@ entities: - neq - in - nin + net_id: + - eq + - neq + - in + - nin operator_suspended: - eq - neq @@ -25101,7 +25670,9 @@ entities: - in - nin - _key: read - description: 'Retrieve information about a specific device. + description: 'Retrieve information about a specific device. This API returns [DeviceData](https://www.pelion.com/docs/device-management-api/device-directory/). + If you want to see the structure of resources in the device or the actual resource + values, use the [Connect API](https://www.pelion.com/docs/device-management-api/connect/). **Example:** @@ -25138,6 +25709,7 @@ entities: - bootstrap_expiration_date - bootstrapped_timestamp - ca_id + - component_attributes - connector_expiration_date - created_at - custom_attributes @@ -25155,6 +25727,7 @@ entities: - mechanism - mechanism_url - name + - net_id - serial_number - state - updated_at @@ -25221,6 +25794,19 @@ entities: example: '00000000000000000000000000000000' maxLength: 500 type: string + component_attributes: + additionalProperties: + maxLength: 128 + type: string + api_fieldname: component_attributes + 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. + entity_fieldname: component_attributes + example: + key: value + maxProperties: 10 + type: object connector_expiration_date: api_fieldname: connector_expiration_date description: The expiration date of the certificate used to connect to LwM2M @@ -25269,7 +25855,7 @@ entities: api_fieldname: description description: The description of the device. entity_fieldname: description - example: description + example: Temperature measuring device maxLength: 2000 type: string device_class: @@ -25306,7 +25892,8 @@ entities: type: string endpoint_name: api_fieldname: endpoint_name - description: The endpoint name given to the device. + description: The endpoint name given to the device. The endpoint_name is + from the device certificate and is set by factory tool. entity_fieldname: endpoint_name example: 00000000-0000-0000-0000-000000000000 readOnly: true @@ -25350,7 +25937,8 @@ entities: type: array host_gateway: api_fieldname: host_gateway - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind + Edge has this host_gateway set. entity_fieldname: host_gateway example: '' type: string @@ -25417,7 +26005,12 @@ entities: type: string lifecycle_status: api_fieldname: lifecycle_status - description: The lifecycle status of the device. + 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''.' entity_fieldname: lifecycle_status enum: - enabled @@ -25439,7 +26032,8 @@ entities: type: string mechanism: api_fieldname: mechanism - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: The ID of the channel used to communicate with the + device.' entity_fieldname: mechanism enum: - connector @@ -25447,17 +26041,27 @@ entities: type: string mechanism_url: api_fieldname: mechanism_url - description: The address of the connector to use. + description: 'NOT USED: The address of the connector to use.' entity_fieldname: mechanism_url example: '' type: string name: api_fieldname: name - description: The name of the device. + description: The name given by the web application for the device. Device + itself provides only the endpoint_name. entity_fieldname: name example: 00000000-0000-0000-0000-000000000000 maxLength: 128 type: string + net_id: + api_fieldname: net_id + default: '' + description: Private network identifier. Used to group nodes connected to + a specific border router. + entity_fieldname: net_id + example: 0000:0000:0000:0000:0000:0000:0000:0000 + maxLength: 40 + type: string object: api_fieldname: object description: The API resource entity. @@ -25466,18 +26070,39 @@ entities: type: string operator_suspended: api_fieldname: operator_suspended - description: Is the device suspended by the operator? + description: Device has been suspended by operator. entity_fieldname: operator_suspended type: boolean serial_number: api_fieldname: serial_number - description: The serial number of the device. + 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. entity_fieldname: serial_number example: 00000000-0000-0000-0000-000000000000 type: string state: api_fieldname: state - description: The current state of the device. + 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.' entity_fieldname: state enum: - unenrolled @@ -25493,7 +26118,7 @@ entities: type: boolean updated_at: api_fieldname: updated_at - description: The time the object was updated. + description: The time this data object was updated. entity_fieldname: updated_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -25727,7 +26352,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/devices/01612df56f3b0a580a010fc700000000/certificates/customer.dlms/renew \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-length: 0'' @@ -26158,6 +26783,7 @@ entities: - account_id - bootstrap_expiration_date - bootstrapped_timestamp + - component_attributes - connector_expiration_date - created_at - deployed_state @@ -26168,6 +26794,7 @@ entities: - manifest_timestamp - mechanism - mechanism_url + - net_id - serial_number - state - updated_at @@ -26214,7 +26841,7 @@ entities: api_fieldname: description description: The description of the device. entity_fieldname: description - example: description + example: Temperature measuring device in: body maxLength: 2000 parameter_fieldname: description @@ -26232,7 +26859,8 @@ entities: type: string - _key: endpoint_name api_fieldname: endpoint_name - description: The endpoint name given to the device. + description: The endpoint name given to the device. The endpoint_name is from + the device certificate and is set by factory tool. entity_fieldname: endpoint_name example: 00000000-0000-0000-0000-000000000000 in: body @@ -26252,7 +26880,8 @@ entities: type: string - _key: host_gateway api_fieldname: host_gateway - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind Edge + has this host_gateway set. entity_fieldname: host_gateway example: '' in: body @@ -26271,7 +26900,8 @@ entities: type: string - _key: name api_fieldname: name - description: The name of the device. + description: The name given by the web application for the device. Device itself + provides only the endpoint_name. entity_fieldname: name example: 00000000-0000-0000-0000-000000000000 in: body @@ -26328,6 +26958,19 @@ entities: example: '00000000000000000000000000000000' maxLength: 500 type: string + component_attributes: + additionalProperties: + maxLength: 128 + type: string + api_fieldname: component_attributes + 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. + entity_fieldname: component_attributes + example: + key: value + maxProperties: 10 + type: object connector_expiration_date: api_fieldname: connector_expiration_date description: The expiration date of the certificate used to connect to LwM2M @@ -26376,7 +27019,7 @@ entities: api_fieldname: description description: The description of the device. entity_fieldname: description - example: description + example: Temperature measuring device maxLength: 2000 type: string device_class: @@ -26413,7 +27056,8 @@ entities: type: string endpoint_name: api_fieldname: endpoint_name - description: The endpoint name given to the device. + description: The endpoint name given to the device. The endpoint_name is + from the device certificate and is set by factory tool. entity_fieldname: endpoint_name example: 00000000-0000-0000-0000-000000000000 readOnly: true @@ -26457,7 +27101,8 @@ entities: type: array host_gateway: api_fieldname: host_gateway - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind + Edge has this host_gateway set. entity_fieldname: host_gateway example: '' type: string @@ -26524,7 +27169,12 @@ entities: type: string lifecycle_status: api_fieldname: lifecycle_status - description: The lifecycle status of the device. + 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''.' entity_fieldname: lifecycle_status enum: - enabled @@ -26546,7 +27196,8 @@ entities: type: string mechanism: api_fieldname: mechanism - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: The ID of the channel used to communicate with the + device.' entity_fieldname: mechanism enum: - connector @@ -26554,17 +27205,27 @@ entities: type: string mechanism_url: api_fieldname: mechanism_url - description: The address of the connector to use. + description: 'NOT USED: The address of the connector to use.' entity_fieldname: mechanism_url example: '' type: string name: api_fieldname: name - description: The name of the device. + description: The name given by the web application for the device. Device + itself provides only the endpoint_name. entity_fieldname: name example: 00000000-0000-0000-0000-000000000000 maxLength: 128 type: string + net_id: + api_fieldname: net_id + default: '' + description: Private network identifier. Used to group nodes connected to + a specific border router. + entity_fieldname: net_id + example: 0000:0000:0000:0000:0000:0000:0000:0000 + maxLength: 40 + type: string object: api_fieldname: object description: The API resource entity. @@ -26573,18 +27234,39 @@ entities: type: string operator_suspended: api_fieldname: operator_suspended - description: Is the device suspended by the operator? + description: Device has been suspended by operator. entity_fieldname: operator_suspended type: boolean serial_number: api_fieldname: serial_number - description: The serial number of the device. + 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. entity_fieldname: serial_number example: 00000000-0000-0000-0000-000000000000 type: string state: api_fieldname: state - description: The current state of the device. + 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.' entity_fieldname: state enum: - unenrolled @@ -26600,7 +27282,7 @@ entities: type: boolean updated_at: api_fieldname: updated_at - description: The time the object was updated. + description: The time this data object was updated. entity_fieldname: updated_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -26708,7 +27390,7 @@ entities: curl -X POST \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -26807,557 +27489,77 @@ entities: api_fieldname: id description: Enrollment identity. entity_fieldname: id - example: 00005a4e027f0a580a01081c00000000 - pattern: ^[A-Za-z0-9]{32} - type: string - - _key: object - api_fieldname: object - entity_fieldname: object - enum: - - enrollment - example: enrollment - type: string - required: - - object - - id - - etag - - account_id - - created_at - - expires_at - - claimed_at - - enrollment_identity - - enrolled_device_id - type: object - - _key: '400' - description: Bad request. The enrollment identity is not valid. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '401' - description: The provided access token is not valid. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '409' - description: Conflict. The requested identity to add already exists on this - or another account. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - return_info: - custom: false - self: true - type: device_enrollment - return_type: device_enrollment - summary: Create a single enrollment. - x_deprecation: null - x_filter: {} - - _key: delete - description: 'To free a device from your account, delete the enrollment claim. - To bypass the device ownership, you need to delete the enrollment and factory - reset the device. For more information, see [Transferring ownership using First-to-Claim](../connecting/device-ownership-first-to-claim-by-enrollment-list.html). - -
- - **Example:** - - ``` - - curl -X DELETE \ - - -H ''Authorization: Bearer '' \ - - https://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id} - - ```' - drop_fields: - - object - - etag - - type - - filter - field_renames: [] - fields: - - _key: id - api_fieldname: id - description: Enrollment identity. - entity_fieldname: id - external_param: false - in: path - name: id - parameter_fieldname: id - required: true - type: string - group_id: Devices - method: delete - mode: delete - operation_id: deleteDeviceEnrollment - pagination: false - path: /v3/device-enrollments/{id} - request_body: json - request_content_type: application/json - responses: - - _key: '204' - description: No content. The enrollment claim has been deleted. - - _key: '400' - description: Bad request. Invalid enrollment identity. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '404' - description: Not found. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - return_info: - custom: false - self: true - type: device_enrollment - return_type: device_enrollment - summary: Delete an enrollment by ID. - x_deprecation: null - x_filter: {} - - _key: list - description: 'Provides a list of pending and claimed enrollments. - - - **Example:** - - ``` - - curl -X GET \ - - -H ''Authorization: Bearer '' \ - - https://api.us-east-1.mbedcloud.com/v3/device-enrollments - - ``` - - With query parameters: - - ``` - - curl -X GET \ - - -H ''Authorization: Bearer '' \ - - ''https://api.us-east-1.mbedcloud.com/v3/device-enrollments?limit=10'' - - ```' - drop_fields: - - object - - etag - - type - - filter - - has_more - - total_count - - data - field_renames: [] - fields: - - _key: after - api_fieldname: after - description: Entity ID to fetch after. - entity_fieldname: after - example: 00005a4e027f0a580a01081c00000000 - external_param: true - in: query - name: after - parameter_fieldname: after - pattern: ^[A-Za-z0-9]{32} - required: false - type: string - - _key: include - api_fieldname: include - description: 'Comma-separated additional data to return. Currently supported: - total_count.' - entity_fieldname: include - external_param: true - in: query - name: include - parameter_fieldname: include - required: false - type: string - - _key: limit - api_fieldname: limit - description: Number of results to return (2-1000). - entity_fieldname: limit - example: 50 - external_param: true - in: query - maximum: 1000 - minimum: 2 - name: limit - parameter_fieldname: limit - required: false - type: integer - - _key: order - api_fieldname: order - default: ASC - description: ASC or DESC - entity_fieldname: order - enum: - - ASC - - DESC - enum_reference: device_enrollment_order_enum - example: ASC - external_param: true - in: query - name: order - parameter_fieldname: order - required: false - type: string - foreign_key: - entity: device_enrollment - group: Devices - foreign_key_priority: self - group_id: Devices - method: get - mode: list - operation_id: getDeviceEnrollments - pagination: true - path: /v3/device-enrollments - request_body: json - request_content_type: application/json - responses: - - _key: '200' - description: OK. - schema: - foreign_key: - entity: device_enrollment - group: Devices - pagination: true - properties: - - _key: after - api_fieldname: after - description: ID - entity_fieldname: after - example: 00005a4e027f0a580a01081c00000000 - pattern: ^[A-Za-z0-9]{32} - type: string - - _key: data - api_fieldname: data - entity_fieldname: data - items: - foreign_key: - entity: device_enrollment - group: Devices - properties: - - _key: account_id - description: ID - example: 00005a4e027f0a580a01081c00000000 - type: string - - _key: claimed_at - description: The time the device was claimed. - format: date-time - type: string - - _key: created_at - description: The time of the enrollment identity creation. - format: date-time - type: string - - _key: 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 - - _key: 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 - - _key: etag - example: 7642xfaxz - pattern: '[A-Za-z0-9]{1,256}' - type: string - - _key: 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 - - _key: id - description: Enrollment identity. - example: 00005a4e027f0a580a01081c00000000 - pattern: ^[A-Za-z0-9]{32} + example: 00005a4e027f0a580a01081c00000000 + pattern: ^[A-Za-z0-9]{32} + type: string + - _key: object + api_fieldname: object + entity_fieldname: object + enum: + - enrollment + example: enrollment + type: string + required: + - object + - id + - etag + - account_id + - created_at + - expires_at + - claimed_at + - enrollment_identity + - enrolled_device_id + type: object + - _key: '400' + description: Bad request. The enrollment identity is not valid. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. type: string - - _key: object - enum: - - enrollment - example: enrollment + - _key: name + description: Name of the field which caused the error. type: string required: - - object - - id - - etag - - account_id - - created_at - - expires_at - - claimed_at - - enrollment_identity - - enrolled_device_id + - name + - message type: object type: array - - _key: has_more - api_fieldname: has_more - entity_fieldname: has_more - example: true - type: boolean - - _key: limit - api_fieldname: limit - description: Range 2-1000, or default. - entity_fieldname: limit - example: 50 - maximum: 1000 - minimum: 2 - type: integer + - _key: message + description: A human readable informative explanation + example: Validation error + type: string - _key: object - api_fieldname: object - entity_fieldname: object + description: Entity name, always `error`. enum: - - list - example: list + - error type: string - - _key: order - api_fieldname: order - default: ASC - entity_fieldname: order - enum: - - ASC - - DESC - example: ASC + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error type: string - - _key: total_count - api_fieldname: total_count - entity_fieldname: total_count - example: 100 - format: int32 - minimum: 1 - type: integer required: + - code + - message - object - - limit - - after - - order - - has_more - - total_count - - data + - request_id + - type type: object - - _key: '400' - description: Bad request. The access token could not be read. + - _key: '401' + description: The provided access token is not valid. schema: properties: - _key: code @@ -27404,8 +27606,9 @@ entities: - request_id - type type: object - - _key: '401' - description: The provided access token is not valid. + - _key: '409' + description: Conflict. The requested identity to add already exists on this + or another account. schema: properties: - _key: code @@ -27456,22 +27659,24 @@ entities: custom: false self: true type: device_enrollment - return_type: paginated_response(device_enrollment) - summary: Get a list of enrollments per account. + return_type: device_enrollment + summary: Create a single enrollment. x_deprecation: null x_filter: {} - - _key: read - description: 'Check detailed enrollment info, for example, date of claim or expiration - date. + - _key: delete + description: 'To free a device from your account, delete the enrollment claim. + To bypass the device ownership, you need to delete the enrollment and factory + reset the device. For more information, see [Transferring ownership using First-to-Claim](https://www.pelion.com/docs/device-management/current/connecting/device-ownership-first-to-claim-by-enrollment-list.html). +
**Example:** ``` - curl -X GET \ + curl -X DELETE \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ https://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id} @@ -27481,111 +27686,29 @@ entities: - etag - type - filter - - created_at - - claimed_at - - enrollment_identity - - account_id - - expires_at - - enrolled_device_id field_renames: [] fields: - _key: id api_fieldname: id description: Enrollment identity. entity_fieldname: id - example: 00005a4e027f0a580a01081c00000000 + external_param: false in: path + name: id parameter_fieldname: id - pattern: ^[A-Za-z0-9]{32} required: true type: string group_id: Devices - method: get - mode: read - operation_id: getDeviceEnrollment + method: delete + mode: delete + operation_id: deleteDeviceEnrollment pagination: false path: /v3/device-enrollments/{id} request_body: json request_content_type: application/json responses: - - _key: '200' - description: OK. Pending enrollment data. - schema: - foreign_key: - entity: device_enrollment - group: Devices - properties: - - _key: account_id - api_fieldname: account_id - description: ID - entity_fieldname: account_id - example: 00005a4e027f0a580a01081c00000000 - type: string - - _key: claimed_at - api_fieldname: claimed_at - description: The time the device was claimed. - entity_fieldname: claimed_at - format: date-time - type: string - - _key: created_at - api_fieldname: created_at - description: The time of the enrollment identity creation. - entity_fieldname: created_at - format: date-time - type: string - - _key: enrolled_device_id - api_fieldname: enrolled_device_id - description: The ID of the device in the Device Directory once it is registered. - entity_fieldname: enrolled_device_id - example: 00005a4e027f0a580a01081c00000000 - pattern: ^[A-Za-z0-9]{32} - type: string - - _key: enrollment_identity - api_fieldname: enrollment_identity - description: Enrollment identity. - entity_fieldname: 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 - - _key: etag - api_fieldname: etag - entity_fieldname: etag - example: 7642xfaxz - pattern: '[A-Za-z0-9]{1,256}' - type: string - - _key: expires_at - api_fieldname: 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. - entity_fieldname: expires_at - format: date-time - type: string - - _key: id - api_fieldname: id - description: Enrollment identity. - entity_fieldname: id - example: 00005a4e027f0a580a01081c00000000 - pattern: ^[A-Za-z0-9]{32} - type: string - - _key: object - api_fieldname: object - entity_fieldname: object - enum: - - enrollment - example: enrollment - type: string - required: - - object - - id - - etag - - account_id - - created_at - - expires_at - - claimed_at - - enrollment_identity - - enrolled_device_id - type: object + - _key: '204' + description: No content. The enrollment claim has been deleted. - _key: '400' description: Bad request. Invalid enrollment identity. schema: @@ -27687,284 +27810,236 @@ entities: self: true type: device_enrollment return_type: device_enrollment - summary: Get details of an single enrollment by ID. + summary: Delete an enrollment by ID. x_deprecation: null x_filter: {} - primary_key_field: id - swagger_models: - - EnrollmentId - - EnrollmentIdentities - - EnrollmentIdentity - tags: - - Public API -- _key: device_enrollment_bulk_create - field_renames: [] - fields: - - _key: account_id - api_fieldname: account_id - description: ID - example: 00005a4e027f0a580a01081c00000000 - readOnly: true - required: false - type: string - - _key: completed_at - api_fieldname: completed_at - description: 'The time the bulk creation task was completed. + - _key: list + description: 'Provides a list of pending and claimed enrollments. - Null when creating bulk upload or delete.' - format: date-time - readOnly: true - required: false - type: string - - _key: created_at - api_fieldname: created_at - description: The time of receiving the bulk creation task. - format: date-time - readOnly: true - required: false - type: string - - _key: errors_count - api_fieldname: errors_count - description: The number of enrollment identities with failed processing. - example: 0 - readOnly: true - required: false - type: integer - - _key: errors_report_file - api_fieldname: 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 - readOnly: true - required: false - type: string - - _key: full_report_file - api_fieldname: full_report_file - description: 'Link to full report file. + **Example:** - Null when creating bulk upload or delete.' - example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv - readOnly: true - required: false - type: string - - _key: id - api_fieldname: id - description: Bulk ID - pattern: ^[A-Za-z0-9]{32} - readOnly: false - required: true - type: string - - _key: processed_count - api_fieldname: processed_count - description: The number of enrollment identities processed until now. - example: 0 - readOnly: true - required: false - type: integer - - _key: status - api_fieldname: 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 - enum_reference: device_enrollment_bulk_create_status_enum - example: new - readOnly: true - required: false - type: string - - _key: total_count - api_fieldname: total_count - description: Total number of enrollment identities found in the input CSV. - example: 10 - readOnly: true - required: false - type: integer - group_id: Devices - methods: - - _key: create - description: "With bulk upload, you can upload a `CSV` file containing a number\ - \ of enrollment IDs.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization:\ - \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ - \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads\n\ - \n```\n **To ensure your CSV file is valid:**\n 1. The first line of the file\ - \ (header) is ignored.\n 1. Each line can contain comma-separated values, where\ - \ the first value is the Enrollment ID. Everything after the first comma is\ - \ ignored.\n 1. Valid enrollments begin with A followed by a - and 95 characters\ - \ (examples below).\n 1. One enrollment ID per line. Empty lines are ignored.\n\ - \ 1. Trailing comma at the end of the line is optional.\n 1. Lines are terminated\ - \ with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n 1.\ - \ Leading and trailing whitespace characters (Unicode U+0000 - U+0020) are removed\ - \ from the identity before validation.\n 1. Empty identities are ignored.\n\ - \ 1. Valid enrollment identities may be enclosed within quotation marks. Whitespace\ - \ inside quotation marks is not trimmed and will cause validation to fail. Empty\ - \ quotation marks are also invalid.\n 1. Use UTF-8 encoding.\n\n\n**A valid\ - \ enrollment file:**\n```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ - ,\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\"\ - \nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\n\ - A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:24:44:71:22:15:43:23:12,\ - \ This text is ignored.\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\ - \ , Whitespace is trimmed before validation.\n \"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\"\ - \ , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A file\ - \ containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ - , First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12,\ - \ Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12,\ - \ Too-short identity.\n\"\", Empty quotation marks are an invalid identity\n\ - \" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\ - \ \", Whitespace inside quotation marks is not trimmed, causing an error.\n\n\ - ```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored\"\ - \n\n,,\n, This is also considered a blank line.\n```" + ``` + + curl -X GET \ + + -H ''Authorization: Bearer '' \ + + https://api.us-east-1.mbedcloud.com/v3/device-enrollments + + ``` + + With query parameters: + + ``` + + curl -X GET \ + + -H ''Authorization: Bearer '' \ + + ''https://api.us-east-1.mbedcloud.com/v3/device-enrollments?limit=10'' + + ```' drop_fields: - object - etag - type - filter - - id - - account_id - - created_at - - status + - has_more - total_count - - processed_count - - errors_count - - completed_at - - full_report_file - - errors_report_file + - data field_renames: [] fields: - - _key: enrollment_identities - api_fieldname: enrollment_identities - description: The `CSV` file containing the enrollment IDs. The maximum file - size is 10 MB. - entity_fieldname: enrollment_identities + - _key: after + api_fieldname: after + description: Entity ID to fetch after. + entity_fieldname: after + example: 00005a4e027f0a580a01081c00000000 external_param: true - in: stream - name: enrollment_identities - parameter_fieldname: enrollment_identities - required: true - type: file - group_id: Devices - method: post - mode: create - operation_id: createBulkDeviceEnrollment - pagination: false - path: /v3/device-enrollments-bulk-uploads - request_body: file - request_content_type: multipart/form-data - responses: - - _key: '201' - description: Bulk upload data received and asynchronous processing started. - schema: - foreign_key: - entity: device_enrollment_bulk_delete - group: Devices - properties: - - _key: account_id - api_fieldname: account_id - description: ID - entity_fieldname: account_id - example: 00005a4e027f0a580a01081c00000000 - type: string - - _key: completed_at - api_fieldname: completed_at - description: 'The time the bulk creation task was completed. - - Null when creating bulk upload or delete.' - entity_fieldname: completed_at - format: date-time - type: string - - _key: created_at - api_fieldname: created_at - description: The time of receiving the bulk creation task. - entity_fieldname: created_at - format: date-time - type: string - - _key: errors_count - api_fieldname: errors_count - description: The number of enrollment identities with failed processing. - entity_fieldname: errors_count - example: 0 - type: integer - - _key: errors_report_file - api_fieldname: errors_report_file - description: 'Link to error report file. - - Null when creating bulk upload or delete.' - entity_fieldname: errors_report_file - example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv - type: string - - _key: etag - api_fieldname: etag - description: etag - entity_fieldname: etag - example: '1' - pattern: '[A-Za-z0-9]{0,256}' - type: string - - _key: full_report_file - api_fieldname: full_report_file - description: 'Link to full report file. - - Null when creating bulk upload or delete.' - entity_fieldname: full_report_file - example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv - type: string - - _key: id - api_fieldname: id - description: Bulk ID - entity_fieldname: id + in: query + name: after + parameter_fieldname: after + pattern: ^[A-Za-z0-9]{32} + required: false + type: string + - _key: include + api_fieldname: include + description: 'Comma-separated additional data to return. Currently supported: + total_count.' + entity_fieldname: include + external_param: true + in: query + name: include + parameter_fieldname: include + required: false + type: string + - _key: limit + api_fieldname: limit + description: Number of results to return (2-1000). + entity_fieldname: limit + example: 50 + external_param: true + in: query + maximum: 1000 + minimum: 2 + name: limit + parameter_fieldname: limit + required: false + type: integer + - _key: order + api_fieldname: order + default: ASC + description: ASC or DESC + entity_fieldname: order + enum: + - ASC + - DESC + enum_reference: device_enrollment_order_enum + example: ASC + external_param: true + in: query + name: order + parameter_fieldname: order + required: false + type: string + foreign_key: + entity: device_enrollment + group: Devices + foreign_key_priority: self + group_id: Devices + method: get + mode: list + operation_id: getDeviceEnrollments + pagination: true + path: /v3/device-enrollments + request_body: json + request_content_type: application/json + responses: + - _key: '200' + description: OK. + schema: + foreign_key: + entity: device_enrollment + group: Devices + pagination: true + properties: + - _key: after + api_fieldname: after + description: ID + entity_fieldname: after + example: 00005a4e027f0a580a01081c00000000 pattern: ^[A-Za-z0-9]{32} type: string + - _key: data + api_fieldname: data + entity_fieldname: data + items: + foreign_key: + entity: device_enrollment + group: Devices + properties: + - _key: account_id + description: ID + example: 00005a4e027f0a580a01081c00000000 + type: string + - _key: claimed_at + description: The time the device was claimed. + format: date-time + type: string + - _key: created_at + description: The time of the enrollment identity creation. + format: date-time + type: string + - _key: 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 + - _key: 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 + - _key: etag + example: 7642xfaxz + pattern: '[A-Za-z0-9]{1,256}' + type: string + - _key: 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 + - _key: id + description: Enrollment identity. + example: 00005a4e027f0a580a01081c00000000 + pattern: ^[A-Za-z0-9]{32} + type: string + - _key: object + enum: + - enrollment + example: enrollment + type: string + required: + - object + - id + - etag + - account_id + - created_at + - expires_at + - claimed_at + - enrollment_identity + - enrolled_device_id + type: object + type: array + - _key: has_more + api_fieldname: has_more + entity_fieldname: has_more + example: true + type: boolean + - _key: limit + api_fieldname: limit + description: Range 2-1000, or default. + entity_fieldname: limit + example: 50 + maximum: 1000 + minimum: 2 + type: integer - _key: object api_fieldname: object entity_fieldname: object enum: - - enrollment-identity-bulk-uploads - example: enrollment-identity-bulk-uploads + - list + example: list type: string - - _key: processed_count - api_fieldname: processed_count - description: The number of enrollment identities processed until now. - entity_fieldname: processed_count - example: 0 - type: integer - - _key: status - api_fieldname: 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'. - entity_fieldname: status + - _key: order + api_fieldname: order + default: ASC + entity_fieldname: order enum: - - new - - processing - - completed - example: new + - ASC + - DESC + example: ASC type: string - _key: total_count api_fieldname: total_count - description: Total number of enrollment identities found in the input CSV. entity_fieldname: total_count - example: 10 + example: 100 + format: int32 + minimum: 1 type: integer required: - object - - id - - etag - - created_at - - account_id - - status + - limit + - after + - order + - has_more - total_count - - processed_count - - errors_count - - completet_at - - full_report_file - - errors_report_file + - data type: object - _key: '400' - description: Bad request. + description: Bad request. The access token could not be read. schema: properties: - _key: code @@ -28012,7 +28087,7 @@ entities: - type type: object - _key: '401' - description: Invalid access token. + description: The provided access token is not valid. schema: properties: - _key: code @@ -28062,111 +28137,15 @@ entities: return_info: custom: false self: true - type: device_enrollment_bulk_create - return_type: device_enrollment_bulk_create - summary: Bulk upload. - x_deprecation: null - x_filter: {} - - _key: download_errors_report_file - custom_method: download_errors_report_file - description: This method will download the CSV file containing detailed information - on status of the bulk enrollment. - drop_fields: - - object - - etag - - type - - filter - field_renames: [] - fields: [] - group_id: Devices - method: null - mode: download_errors_report_file - path: null - request_body: json - request_content_type: application/json - responses: [] - return_info: - custom: true - self: false - type: file - return_type: file - spec: - description: This method will download the CSV file containing detailed information - on status of the bulk enrollment. - return_type: file - summary: Download the error report file for the created the bulk enrollment. - summary: Download the error report file for the created the bulk enrollment. - x_deprecation: null - x_filter: {} - - _key: download_full_report_file - custom_method: download_full_report_file - description: This method will download the CSV file containing detailed information - on status of the bulk enrollment. - drop_fields: - - object - - etag - - type - - filter - field_renames: [] - fields: [] - group_id: Devices - method: null - mode: download_full_report_file - path: null - request_body: json - request_content_type: application/json - responses: [] - return_info: - custom: true - self: false - type: file - return_type: file - spec: - description: This method will download the CSV file containing detailed information - on status of the bulk enrollment. - return_type: file - summary: Download the full report file for the created of the bulk enrollment. - summary: Download the full report file for the created of the bulk enrollment. + type: device_enrollment + return_type: paginated_response(device_enrollment) + summary: Get a list of enrollments per account. x_deprecation: null x_filter: {} - _key: read - description: 'Provides information on bulk upload for the given ID, for example, - bulk status and number of processed enrollment identities. Provides links to - bulk upload reports as well. - - - **Report file format:** - - The report files have a header line, and the values are separated by commas. - Delimit lines with a line break (CRLF). Make sure the report file is compliant - with IETF Informal CSV common format [RFC 4180](https://tools.ietf.org/html/rfc4180). - - - An example of a full report file: - - ``` - - "entity__id","entity__created_at","error__code","error__type","error__message","error__fields" - - "A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E","2018-09-07T12:10:58.428Z","","","","" - - "A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72","2018-09-07T12:10:58.428Z","","","","" - - ``` - - An example of an error report file: - - ``` - - "entity__id","error__code","error__type","error__message","error__fields" - - "A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E","409","duplicate","Enrollment - identity is already claimed in the mbed Cloud.","" - - "A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72","409","duplicate","Enrollment - identity is already claimed in the mbed Cloud.","" + description: 'Check detailed enrollment info, for example, date of claim or expiration + date. - ``` **Example:** @@ -28174,9 +28153,9 @@ entities: curl -X GET \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ - https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/{id} + https://api.us-east-1.mbedcloud.com/v3/device-enrollments/{id} ```' drop_fields: @@ -28184,21 +28163,19 @@ entities: - etag - type - filter - - account_id - created_at - - status - - total_count - - processed_count - - errors_count - - completed_at - - full_report_file - - errors_report_file + - claimed_at + - enrollment_identity + - account_id + - expires_at + - enrolled_device_id field_renames: [] fields: - _key: id api_fieldname: id - description: Bulk ID + description: Enrollment identity. entity_fieldname: id + example: 00005a4e027f0a580a01081c00000000 in: path parameter_fieldname: id pattern: ^[A-Za-z0-9]{32} @@ -28207,17 +28184,17 @@ entities: group_id: Devices method: get mode: read - operation_id: getBulkDeviceEnrollment + operation_id: getDeviceEnrollment pagination: false - path: /v3/device-enrollments-bulk-uploads/{id} + path: /v3/device-enrollments/{id} request_body: json request_content_type: application/json responses: - _key: '200' - description: Bulk upload entity found. + description: OK. Pending enrollment data. schema: foreign_key: - entity: device_enrollment_bulk_delete + entity: device_enrollment group: Devices properties: - _key: account_id @@ -28226,151 +28203,73 @@ entities: entity_fieldname: account_id example: 00005a4e027f0a580a01081c00000000 type: string - - _key: completed_at - api_fieldname: completed_at - description: 'The time the bulk creation task was completed. - - Null when creating bulk upload or delete.' - entity_fieldname: completed_at + - _key: claimed_at + api_fieldname: claimed_at + description: The time the device was claimed. + entity_fieldname: claimed_at format: date-time type: string - _key: created_at api_fieldname: created_at - description: The time of receiving the bulk creation task. + description: The time of the enrollment identity creation. entity_fieldname: created_at format: date-time type: string - - _key: errors_count - api_fieldname: errors_count - description: The number of enrollment identities with failed processing. - entity_fieldname: errors_count - example: 0 - type: integer - - _key: errors_report_file - api_fieldname: errors_report_file - description: 'Link to error report file. - - Null when creating bulk upload or delete.' - entity_fieldname: errors_report_file - example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv + - _key: enrolled_device_id + api_fieldname: enrolled_device_id + description: The ID of the device in the Device Directory once it is registered. + entity_fieldname: enrolled_device_id + example: 00005a4e027f0a580a01081c00000000 + pattern: ^[A-Za-z0-9]{32} + type: string + - _key: enrollment_identity + api_fieldname: enrollment_identity + description: Enrollment identity. + entity_fieldname: 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 - _key: etag api_fieldname: etag - description: etag entity_fieldname: etag - example: '1' - pattern: '[A-Za-z0-9]{0,256}' + example: 7642xfaxz + pattern: '[A-Za-z0-9]{1,256}' type: string - - _key: full_report_file - api_fieldname: full_report_file - description: 'Link to full report file. - - Null when creating bulk upload or delete.' - entity_fieldname: full_report_file - example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv + - _key: expires_at + api_fieldname: 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. + entity_fieldname: expires_at + format: date-time type: string - _key: id api_fieldname: id - description: Bulk ID + description: Enrollment identity. entity_fieldname: id + example: 00005a4e027f0a580a01081c00000000 pattern: ^[A-Za-z0-9]{32} type: string - _key: object api_fieldname: object entity_fieldname: object enum: - - enrollment-identity-bulk-uploads - example: enrollment-identity-bulk-uploads - type: string - - _key: processed_count - api_fieldname: processed_count - description: The number of enrollment identities processed until now. - entity_fieldname: processed_count - example: 0 - type: integer - - _key: status - api_fieldname: 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'. - entity_fieldname: status - enum: - - new - - processing - - completed - example: new + - enrollment + example: enrollment type: string - - _key: total_count - api_fieldname: total_count - description: Total number of enrollment identities found in the input CSV. - entity_fieldname: total_count - 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 + - created_at + - expires_at + - claimed_at + - enrollment_identity + - enrolled_device_id type: object - _key: '400' - description: Bad request. Invalid bulk identity. - schema: - properties: - - _key: code - description: HTTP response code - example: 400 - format: int32 - type: integer - - _key: fields - description: Request fields which failed validation. - items: - properties: - - _key: message - description: Message describing the error condition. - type: string - - _key: name - description: Name of the field which caused the error. - type: string - required: - - name - - message - type: object - type: array - - _key: message - description: A human readable informative explanation - example: Validation error - type: string - - _key: object - description: Entity name, always `error`. - enum: - - error - type: string - - _key: request_id - description: ID of the request. - example: 0161991d63150242ac12000600000000 - type: string - - _key: type - description: Error type used to categorise the error. - example: validation_error - type: string - required: - - code - - message - - object - - request_id - - type - type: object - - _key: '401' - description: Invalid access token. + description: Bad request. Invalid enrollment identity. schema: properties: - _key: code @@ -28468,17 +28367,19 @@ entities: return_info: custom: false self: true - type: device_enrollment_bulk_create - return_type: device_enrollment_bulk_create - summary: Get bulk upload entity. + type: device_enrollment + return_type: device_enrollment + summary: Get details of an single enrollment by ID. x_deprecation: null x_filter: {} primary_key_field: id swagger_models: - - BulkResponse + - EnrollmentId + - EnrollmentIdentities + - EnrollmentIdentity tags: - - Public API -- _key: device_enrollment_bulk_delete + - Device ownership - enrollments +- _key: device_enrollment_bulk_create field_renames: [] fields: - _key: account_id @@ -28520,6 +28421,7 @@ entities: readOnly: true required: false type: string + x-nullable: true - _key: full_report_file api_fieldname: full_report_file description: 'Link to full report file. @@ -28529,11 +28431,10 @@ entities: readOnly: true required: false type: string + x-nullable: true - _key: id api_fieldname: id description: Bulk ID - in: path - parameter_fieldname: id pattern: ^[A-Za-z0-9]{32} readOnly: false required: true @@ -28555,7 +28456,7 @@ entities: - new - processing - completed - enum_reference: device_enrollment_bulk_delete_status_enum + enum_reference: device_enrollment_bulk_create_status_enum example: new readOnly: true required: false @@ -28569,38 +28470,38 @@ entities: type: integer group_id: Devices methods: - - _key: delete - description: "With bulk delete, you can upload a `CSV` file containing a number\ - \ of enrollment IDs to delete.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization:\ - \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ - \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes\n\ - \n```\n**To ensure your CSV file is valid:**\n1. The first line of the file\ - \ (header) is ignored.\n1. Each line can contain comma-separated values, where\ + - _key: create + description: "With bulk upload, you can upload a `CSV` file containing a number\ + \ of enrollment IDs.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization:\ + \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ + \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads\n\ + \n```\n **To ensure your CSV file is valid:**\n 1. The first line of the file\ + \ (header) is ignored.\n 1. Each line can contain comma-separated values, where\ \ the first value is the Enrollment ID. Everything after the first comma is\ - \ ignored.\n1. Valid enrollments begin with A followed by a - and 95 characters\ - \ (examples below).\n1. One enrollment ID per line. Empty lines are ignored.\n\ - 1. Trailing comma at the end of the line is optional.\n1. Lines are terminated\ - \ with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n1. Leading\ - \ and trailing whitespace characters (Unicode U+0000 - U+0020) are removed from\ - \ the identity before validation.\n1. Empty identities are ignored.\n1. Valid\ - \ enrollment identities may be enclosed within quotation marks. Whitespace inside\ - \ quotation marks is not trimmed and will cause validation to fail. Empty quotation\ - \ marks are also invalid.\n1. Use UTF-8 encoding.\n\n**A valid enrollment file:**\n\ - ```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ + \ ignored.\n 1. Valid enrollments begin with A followed by a - and 95 characters\ + \ (examples below).\n 1. One enrollment ID per line. Empty lines are ignored.\n\ + \ 1. Trailing comma at the end of the line is optional.\n 1. Lines are terminated\ + \ with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n 1.\ + \ Leading and trailing whitespace characters (Unicode U+0000 - U+0020) are removed\ + \ from the identity before validation.\n 1. Empty identities are ignored.\n\ + \ 1. Valid enrollment identities may be enclosed within quotation marks. Whitespace\ + \ inside quotation marks is not trimmed and will cause validation to fail. Empty\ + \ quotation marks are also invalid.\n 1. Use UTF-8 encoding.\n\n\n**A valid\ + \ enrollment file:**\n```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ ,\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\"\ \nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\n\ A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:24:44:71:22:15:43:23:12,\ - \ This text is ignored,\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\ + \ This text is ignored.\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\ \ , Whitespace is trimmed before validation.\n \"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\"\ \ , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A file\ \ containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ , First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12,\ \ Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12,\ - \ Too-short identity.\n\"\", Empty quotation marks are an invalid identity.\n\ + \ Too-short identity.\n\"\", Empty quotation marks are an invalid identity\n\ \" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\ \ \", Whitespace inside quotation marks is not trimmed, causing an error.\n\n\ - ```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored.\"\ - \n\n,,\n, This is also considered to a blank line.\n```" + ```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored\"\ + \n\n,,\n, This is also considered a blank line.\n```" drop_fields: - object - etag @@ -28621,7 +28522,7 @@ entities: - _key: enrollment_identities api_fieldname: enrollment_identities description: The `CSV` file containing the enrollment IDs. The maximum file - size is 10MB. + size is 10 MB. entity_fieldname: enrollment_identities external_param: true in: stream @@ -28631,18 +28532,18 @@ entities: type: file group_id: Devices method: post - mode: delete - operation_id: deleteBulkDeviceEnrollment + mode: create + operation_id: createBulkDeviceEnrollment pagination: false - path: /v3/device-enrollments-bulk-deletes + path: /v3/device-enrollments-bulk-uploads request_body: file request_content_type: multipart/form-data responses: - _key: '201' - description: Bulk delete data received and asynchronous processing started. + description: Bulk upload data received and asynchronous processing started. schema: foreign_key: - entity: device_enrollment_bulk_create + entity: device_enrollment_bulk_delete group: Devices properties: - _key: account_id @@ -28679,6 +28580,7 @@ entities: entity_fieldname: errors_report_file example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv type: string + x-nullable: true - _key: etag api_fieldname: etag description: etag @@ -28694,14 +28596,12 @@ entities: entity_fieldname: full_report_file example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv type: string + x-nullable: true - _key: id api_fieldname: id description: Bulk ID entity_fieldname: id - in: path - parameter_fieldname: id pattern: ^[A-Za-z0-9]{32} - required: true type: string - _key: object api_fieldname: object @@ -28848,9 +28748,9 @@ entities: return_info: custom: false self: true - type: device_enrollment_bulk_delete - return_type: device_enrollment_bulk_delete - summary: Bulk delete. + type: device_enrollment_bulk_create + return_type: device_enrollment_bulk_create + summary: Bulk upload. x_deprecation: null x_filter: {} - _key: download_errors_report_file @@ -28880,8 +28780,8 @@ entities: description: This method will download the CSV file containing detailed information on status of the bulk enrollment. return_type: file - summary: Download the error report file for the bulk enrollment deletion. - summary: Download the error report file for the bulk enrollment deletion. + summary: Download the error report file for the created the bulk enrollment. + summary: Download the error report file for the created the bulk enrollment. x_deprecation: null x_filter: {} - _key: download_full_report_file @@ -28911,20 +28811,20 @@ entities: description: This method will download the CSV file containing detailed information on status of the bulk enrollment. return_type: file - summary: Download the full report file for the bulk enrollment deletion. - summary: Download the full report file for the bulk enrollment deletion. + summary: Download the full report file for the created of the bulk enrollment. + summary: Download the full report file for the created of the bulk enrollment. x_deprecation: null x_filter: {} - _key: read - description: 'Provides information on bulk delete for the given ID, for example, - bulk status and the number of processed enrollment identities. Provides links - to bulk delete reports as well. + description: 'Provides information on bulk upload for the given ID, for example, + bulk status and number of processed enrollment identities. Provides links to + bulk upload reports as well. **Report file format:** - The report files have a header line and the value are separated by commas. The - lines are delimited by a line break (CRLF). Make sure the report file is compliant + The report files have a header line, and the values are separated by commas. + Delimit lines with a line break (CRLF). Make sure the report file is compliant with IETF Informal CSV common format [RFC 4180](https://tools.ietf.org/html/rfc4180). @@ -28932,7 +28832,7 @@ entities: ``` - "entity__id","entity__deleted_at","error__code","error__type","error__message","error__fields" + "entity__id","entity__created_at","error__code","error__type","error__message","error__fields" "A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E","2018-09-07T12:10:58.428Z","","","","" @@ -28960,9 +28860,9 @@ entities: curl -X GET \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ - https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes/{id} + https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/{id} ```' drop_fields: @@ -28993,17 +28893,17 @@ entities: group_id: Devices method: get mode: read - operation_id: getBulkDeviceEnrollmentDelete + operation_id: getBulkDeviceEnrollment pagination: false - path: /v3/device-enrollments-bulk-deletes/{id} + path: /v3/device-enrollments-bulk-uploads/{id} request_body: json request_content_type: application/json responses: - _key: '200' - description: Bulk delete entity found. + description: Bulk upload entity found. schema: foreign_key: - entity: device_enrollment_bulk_create + entity: device_enrollment_bulk_delete group: Devices properties: - _key: account_id @@ -29040,6 +28940,7 @@ entities: entity_fieldname: errors_report_file example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv type: string + x-nullable: true - _key: etag api_fieldname: etag description: etag @@ -29055,14 +28956,12 @@ entities: entity_fieldname: full_report_file example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv type: string + x-nullable: true - _key: id api_fieldname: id description: Bulk ID entity_fieldname: id - in: path - parameter_fieldname: id pattern: ^[A-Za-z0-9]{32} - required: true type: string - _key: object api_fieldname: object @@ -29257,242 +29156,293 @@ entities: return_info: custom: false self: true - type: device_enrollment_bulk_delete - return_type: device_enrollment_bulk_delete - summary: Get bulk delete entity. + type: device_enrollment_bulk_create + return_type: device_enrollment_bulk_create + summary: Get bulk upload entity. x_deprecation: null x_filter: {} primary_key_field: id swagger_models: - BulkResponse tags: - - Public API -- _key: device_enrollment_denial + - Device ownership - enrollments +- _key: device_enrollment_bulk_delete field_renames: [] fields: - _key: account_id api_fieldname: account_id - description: account id + description: ID example: 00005a4e027f0a580a01081c00000000 - pattern: '[a-f0-9]{32}' + readOnly: true + required: false + type: string + - _key: completed_at + api_fieldname: completed_at + description: 'The time the bulk creation task was completed. + + Null when creating bulk upload or delete.' + format: date-time readOnly: true required: false type: string - _key: created_at api_fieldname: created_at - description: date on which the failed bootstrap was attempted on - example: '2000-01-23T04:56:07.000+00:00' + description: The time of receiving the bulk creation task. format: date-time readOnly: true required: false type: string - - _key: endpoint_name - api_fieldname: endpoint_name - description: endpoint name - example: Endpoint_1234 + - _key: errors_count + api_fieldname: errors_count + description: The number of enrollment identities with failed processing. + example: 0 + readOnly: true + required: false + type: integer + - _key: errors_report_file + api_fieldname: 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 readOnly: true required: false type: string + x-nullable: true + - _key: full_report_file + api_fieldname: 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 + readOnly: true + required: false + type: string + x-nullable: true - _key: id api_fieldname: id - description: id of the recorded failed bootstrap attempt - example: 00005a4e027f0a580a04567c00000000 - pattern: '[a-f0-9]{32}' + description: Bulk ID + in: path + parameter_fieldname: id + pattern: ^[A-Za-z0-9]{32} + readOnly: false + required: true + type: string + - _key: processed_count + api_fieldname: processed_count + description: The number of enrollment identities processed until now. + example: 0 readOnly: true required: false - type: string - - _key: trusted_certificate_id - api_fieldname: trusted_certificate_id - description: Trusted certificate id - example: 00005a4e027f0a580a01081c00000000 - pattern: '[a-f0-9]{32}' + type: integer + - _key: status + api_fieldname: 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 + enum_reference: device_enrollment_bulk_delete_status_enum + example: new readOnly: true required: false type: string + - _key: total_count + api_fieldname: total_count + description: Total number of enrollment identities found in the input CSV. + example: 10 + readOnly: true + required: false + type: integer group_id: Devices methods: - - _key: list - description: 'This produces a list of failed attempts to bootstrap using a particular - certificate which is blacklisted (trusted_certificate). - - Returned list can be filtered by endpoint name. Trusted certificate ID filter - is required. - - - **Example usage:** - - ``` - - curl -X GET -H ''Authorization: Bearer '' \ - - https://api.us-east-1.mbedcloud.com/v3/device-enrollment-denials?trusted_certificate_id__eq={cert-id}&endpoint_name__eq={endpoint_name} - - ``` - - ' + - _key: delete + description: "With bulk delete, you can upload a `CSV` file containing a number\ + \ of enrollment IDs to delete.\n\n**Example:**\n```\ncurl -X POST \\\n-H 'Authorization:\ + \ Bearer ' \\\n-F 'enrollment_identities=@/path/to/enrollments/enrollments.csv'\ + \ \\\nhttps://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes\n\ + \n```\n**To ensure your CSV file is valid:**\n1. The first line of the file\ + \ (header) is ignored.\n1. Each line can contain comma-separated values, where\ + \ the first value is the Enrollment ID. Everything after the first comma is\ + \ ignored.\n1. Valid enrollments begin with A followed by a - and 95 characters\ + \ (examples below).\n1. One enrollment ID per line. Empty lines are ignored.\n\ + 1. Trailing comma at the end of the line is optional.\n1. Lines are terminated\ + \ with either a line feed \\n, a carriage return \\r, or both \\r\\n.\n1. Leading\ + \ and trailing whitespace characters (Unicode U+0000 - U+0020) are removed from\ + \ the identity before validation.\n1. Empty identities are ignored.\n1. Valid\ + \ enrollment identities may be enclosed within quotation marks. Whitespace inside\ + \ quotation marks is not trimmed and will cause validation to fail. Empty quotation\ + \ marks are also invalid.\n1. Use UTF-8 encoding.\n\n**A valid enrollment file:**\n\ + ```\n\"Examples of valid identites, notes\"\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ + ,\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\"\ + \nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12\n\ + A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:24:44:71:22:15:43:23:12,\ + \ This text is ignored,\n A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\ + \ , Whitespace is trimmed before validation.\n \"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:60:25:48:44:71:22:15:43:23:12\"\ + \ , Whitespace around quotation marks is also trimmed.\n\n```\n\n**A file\ + \ containing invalid identities:**\n```\n\"A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\"\ + , First line is ignored.\nA_4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23:12,\ + \ Invalid version identifier.\nA-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:25:48:44:71:22:15:43:23,\ + \ Too-short identity.\n\"\", Empty quotation marks are an invalid identity.\n\ + \" A-4E:63:2D:AE:14:BC:D1:09:77:21:95:44:ED:34:06:57:1E:03:B1:EF:0E:F2:59:44:71:93:23:22:15:43:23:12\ + \ \", Whitespace inside quotation marks is not trimmed, causing an error.\n\n\ + ```\n\n**An empty file:**\n```\n\"Examples of blank lines that are ignored.\"\ + \n\n,,\n, This is also considered to a blank line.\n```" drop_fields: - object - etag - type - filter - - has_more + - id + - account_id + - created_at + - status - total_count - - data - - trusted_certificate_id__eq - - endpoint_name__eq + - processed_count + - errors_count + - completed_at + - full_report_file + - errors_report_file field_renames: [] fields: - - _key: after - api_fieldname: after - description: Optional parameter for pagination. Denied device ID. - entity_fieldname: after - external_param: true - in: query - name: after - parameter_fieldname: after - required: false - type: string - - _key: limit - api_fieldname: limit - description: Optional parameter for pagination. - entity_fieldname: limit - example: 50 - external_param: true - in: query - maximum: 1000 - minimum: 2 - name: limit - parameter_fieldname: limit - required: false - type: integer - - _key: order - api_fieldname: order - description: Optional parameter for pagination. - entity_fieldname: order - enum: - - ASC - - DESC - enum_reference: device_enrollment_denial_order_enum - example: DESC + - _key: enrollment_identities + api_fieldname: enrollment_identities + description: The `CSV` file containing the enrollment IDs. The maximum file + size is 10MB. + entity_fieldname: enrollment_identities external_param: true - in: query - name: order - parameter_fieldname: order - required: false - type: string - foreign_key: - entity: device_enrollment_denial - group: Devices - foreign_key_priority: self + in: stream + name: enrollment_identities + parameter_fieldname: enrollment_identities + required: true + type: file group_id: Devices - method: get - mode: list - operation_id: listEnrollmentDenialAttempts - pagination: true - path: /v3/device-enrollment-denials - request_body: json - request_content_type: application/json + method: post + mode: delete + operation_id: deleteBulkDeviceEnrollment + pagination: false + path: /v3/device-enrollments-bulk-deletes + request_body: file + request_content_type: multipart/form-data responses: - - _key: '200' - description: Query Success. Responding with List of Devices. + - _key: '201' + description: Bulk delete data received and asynchronous processing started. schema: foreign_key: - entity: device_enrollment_denial + entity: device_enrollment_bulk_create group: Devices - pagination: true properties: - - _key: after - api_fieldname: after - description: An offset token for current page. - entity_fieldname: after + - _key: account_id + api_fieldname: account_id + description: ID + entity_fieldname: account_id + example: 00005a4e027f0a580a01081c00000000 type: string - - _key: data - api_fieldname: data - entity_fieldname: data - items: - foreign_key: - entity: device_enrollment_denial - group: Devices - properties: - - _key: account_id - description: account id - example: 00005a4e027f0a580a01081c00000000 - pattern: '[a-f0-9]{32}' - type: string - - _key: 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 - - _key: endpoint_name - description: endpoint name - example: Endpoint_1234 - type: string - - _key: id - description: id of the recorded failed bootstrap attempt - example: 00005a4e027f0a580a04567c00000000 - pattern: '[a-f0-9]{32}' - type: string - - _key: object - enum: - - denied_device - type: string - - _key: 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 - type: array - - _key: has_more - api_fieldname: has_more - description: Are there more results available. - entity_fieldname: has_more - example: false - type: boolean - - _key: limit - api_fieldname: 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. - entity_fieldname: limit - example: 50 - maximum: 1000 - minimum: 2 + - _key: completed_at + api_fieldname: completed_at + description: 'The time the bulk creation task was completed. + + Null when creating bulk upload or delete.' + entity_fieldname: completed_at + format: date-time + type: string + - _key: created_at + api_fieldname: created_at + description: The time of receiving the bulk creation task. + entity_fieldname: created_at + format: date-time + type: string + - _key: errors_count + api_fieldname: errors_count + description: The number of enrollment identities with failed processing. + entity_fieldname: errors_count + example: 0 type: integer + - _key: errors_report_file + api_fieldname: errors_report_file + description: 'Link to error report file. + + Null when creating bulk upload or delete.' + entity_fieldname: errors_report_file + example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv + type: string + x-nullable: true + - _key: etag + api_fieldname: etag + description: etag + entity_fieldname: etag + example: '1' + pattern: '[A-Za-z0-9]{0,256}' + type: string + - _key: full_report_file + api_fieldname: full_report_file + description: 'Link to full report file. + + Null when creating bulk upload or delete.' + entity_fieldname: full_report_file + example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv + type: string + x-nullable: true + - _key: id + api_fieldname: id + description: Bulk ID + entity_fieldname: id + in: path + parameter_fieldname: id + pattern: ^[A-Za-z0-9]{32} + required: true + type: string - _key: object api_fieldname: object - description: The type of this API object is a "list". entity_fieldname: object - example: list + enum: + - enrollment-identity-bulk-uploads + example: enrollment-identity-bulk-uploads type: string - - _key: order - api_fieldname: order - description: The creation time based order of the entries. - entity_fieldname: order + - _key: processed_count + api_fieldname: processed_count + description: The number of enrollment identities processed until now. + entity_fieldname: processed_count + example: 0 + type: integer + - _key: status + api_fieldname: 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'. + entity_fieldname: status enum: - - ASC - - DESC - example: DESC + - new + - processing + - completed + example: new type: string - _key: total_count api_fieldname: total_count + description: Total number of enrollment identities found in the input CSV. entity_fieldname: total_count - example: 1 - format: integer + example: 10 type: integer required: - object - - data + - id + - etag + - created_at + - account_id + - status + - total_count + - processed_count + - errors_count + - completet_at + - full_report_file + - errors_report_file type: object - - _key: '401' - description: JWT validation failed. + - _key: '400' + description: Bad request. schema: properties: - _key: code @@ -29539,8 +29489,8 @@ entities: - request_id - type type: object - - _key: '404' - description: ID set in pagination parameter `after` not found. + - _key: '401' + description: Invalid access token. schema: properties: - _key: code @@ -29590,119 +29540,320 @@ entities: return_info: custom: false self: true - type: device_enrollment_denial - return_type: paginated_response(device_enrollment_denial) - summary: Return list of devices which were denied to bootstrap due to being subjected - to blacklisting. + type: device_enrollment_bulk_delete + return_type: device_enrollment_bulk_delete + summary: Bulk delete. x_deprecation: null - x_filter: - endpoint_name: - - eq - trusted_certificate_id: - - eq + x_filter: {} + - _key: download_errors_report_file + custom_method: download_errors_report_file + description: This method will download the CSV file containing detailed information + on status of the bulk enrollment. + drop_fields: + - object + - etag + - type + - filter + field_renames: [] + fields: [] + group_id: Devices + method: null + mode: download_errors_report_file + path: null + request_body: json + request_content_type: application/json + responses: [] + return_info: + custom: true + self: false + type: file + return_type: file + spec: + description: This method will download the CSV file containing detailed information + on status of the bulk enrollment. + return_type: file + summary: Download the error report file for the bulk enrollment deletion. + summary: Download the error report file for the bulk enrollment deletion. + x_deprecation: null + x_filter: {} + - _key: download_full_report_file + custom_method: download_full_report_file + description: This method will download the CSV file containing detailed information + on status of the bulk enrollment. + drop_fields: + - object + - etag + - type + - filter + field_renames: [] + fields: [] + group_id: Devices + method: null + mode: download_full_report_file + path: null + request_body: json + request_content_type: application/json + responses: [] + return_info: + custom: true + self: false + type: file + return_type: file + spec: + description: This method will download the CSV file containing detailed information + on status of the bulk enrollment. + return_type: file + summary: Download the full report file for the bulk enrollment deletion. + summary: Download the full report file for the bulk enrollment deletion. + x_deprecation: null + x_filter: {} - _key: read - description: 'Query for a single attempt to bootstrap with a blacklisted certificate - by ID. + description: 'Provides information on bulk delete for the given ID, for example, + bulk status and the number of processed enrollment identities. Provides links + to bulk delete reports as well. + + + **Report file format:** + The report files have a header line and the value are separated by commas. The + lines are delimited by a line break (CRLF). Make sure the report file is compliant + with IETF Informal CSV common format [RFC 4180](https://tools.ietf.org/html/rfc4180). - **Example usage:** + + An example of a full report file: ``` - curl -X GET -H ''Authorization: Bearer '' \ + "entity__id","entity__deleted_at","error__code","error__type","error__message","error__fields" + + "A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E","2018-09-07T12:10:58.428Z","","","","" + + "A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72","2018-09-07T12:10:58.428Z","","","","" - https://api.us-east-1.mbedcloud.com/v3/device-enrollment-denials/{device_enrollment_denial_id} + ``` + + An example of an error report file: ``` - ' + "entity__id","error__code","error__type","error__message","error__fields" + + "A-F9:AA:AA:AA:DE:31:C7:30:72:55:27:AE:8B:E1:1C:6F:42:7D:06:CF:FB:18:6F:59:48:29:B3:98:4B:76:8F:9E","409","duplicate","Enrollment + identity is already claimed in the mbed Cloud.","" + + "A-FF:AA:AA:AA:3B:43:EB:D7:C7:30:03:5F:C8:D0:15:91:70:C2:5D:4F:EB:24:E9:3A:BB:D8:3C:FE:20:EA:B1:72","409","duplicate","Enrollment + identity is already claimed in the mbed Cloud.","" + + ``` + + **Example:** + + ``` + + curl -X GET \ + + -H ''Authorization: Bearer '' \ + + https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-deletes/{id} + + ```' drop_fields: - object - etag - type - filter - - id - account_id - - endpoint_name - - trusted_certificate_id - created_at + - status + - total_count + - processed_count + - errors_count + - completed_at + - full_report_file + - errors_report_file field_renames: [] fields: - - _key: device_enrollment_denial_id - api_fieldname: device_enrollment_denial_id - description: id of the recorded failed bootstrap attempt - entity_fieldname: device_enrollment_denial_id - external_param: true + - _key: id + api_fieldname: id + description: Bulk ID + entity_fieldname: id in: path - name: device_enrollment_denial_id - parameter_fieldname: device_enrollment_denial_id + parameter_fieldname: id + pattern: ^[A-Za-z0-9]{32} required: true type: string group_id: Devices method: get mode: read - operation_id: getEnrollmentDenialAttempt + operation_id: getBulkDeviceEnrollmentDelete pagination: false - path: /v3/device-enrollment-denials/{device_enrollment_denial_id} + path: /v3/device-enrollments-bulk-deletes/{id} request_body: json request_content_type: application/json responses: - _key: '200' - description: Query Success. Responding with blacklisted device. + description: Bulk delete entity found. schema: foreign_key: - entity: device_enrollment_denial + entity: device_enrollment_bulk_create group: Devices properties: - _key: account_id api_fieldname: account_id - description: account id + description: ID entity_fieldname: account_id example: 00005a4e027f0a580a01081c00000000 - pattern: '[a-f0-9]{32}' + type: string + - _key: completed_at + api_fieldname: completed_at + description: 'The time the bulk creation task was completed. + + Null when creating bulk upload or delete.' + entity_fieldname: completed_at + format: date-time type: string - _key: created_at api_fieldname: created_at - description: date on which the failed bootstrap was attempted on + description: The time of receiving the bulk creation task. entity_fieldname: created_at - example: '2000-01-23T04:56:07.000+00:00' format: date-time type: string - - _key: endpoint_name - api_fieldname: endpoint_name - description: endpoint name - entity_fieldname: endpoint_name - example: Endpoint_1234 + - _key: errors_count + api_fieldname: errors_count + description: The number of enrollment identities with failed processing. + entity_fieldname: errors_count + example: 0 + type: integer + - _key: errors_report_file + api_fieldname: errors_report_file + description: 'Link to error report file. + + Null when creating bulk upload or delete.' + entity_fieldname: errors_report_file + example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/errors_report.csv + type: string + x-nullable: true + - _key: etag + api_fieldname: etag + description: etag + entity_fieldname: etag + example: '1' + pattern: '[A-Za-z0-9]{0,256}' + type: string + - _key: full_report_file + api_fieldname: full_report_file + description: 'Link to full report file. + + Null when creating bulk upload or delete.' + entity_fieldname: full_report_file + example: https://api.us-east-1.mbedcloud.com/v3/device-enrollments-bulk-uploads/2d238a89038b4ddb84699dd36a901063/full_report.csv type: string + x-nullable: true - _key: id api_fieldname: id - description: id of the recorded failed bootstrap attempt + description: Bulk ID entity_fieldname: id - example: 00005a4e027f0a580a04567c00000000 - pattern: '[a-f0-9]{32}' + in: path + parameter_fieldname: id + pattern: ^[A-Za-z0-9]{32} + required: true type: string - _key: object api_fieldname: object entity_fieldname: object enum: - - denied_device + - enrollment-identity-bulk-uploads + example: enrollment-identity-bulk-uploads type: string - - _key: trusted_certificate_id - api_fieldname: trusted_certificate_id - description: Trusted certificate id - entity_fieldname: trusted_certificate_id - example: 00005a4e027f0a580a01081c00000000 - pattern: '[a-f0-9]{32}' + - _key: processed_count + api_fieldname: processed_count + description: The number of enrollment identities processed until now. + entity_fieldname: processed_count + example: 0 + type: integer + - _key: status + api_fieldname: 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'. + entity_fieldname: status + enum: + - new + - processing + - completed + example: new type: string + - _key: total_count + api_fieldname: total_count + description: Total number of enrollment identities found in the input CSV. + entity_fieldname: total_count + example: 10 + type: integer required: + - object - id - - account_id - - endpoint_name - - trusted_certificate_id + - etag - created_at + - account_id + - status + - total_count + - processed_count + - errors_count + - completet_at + - full_report_file + - errors_report_file + type: object + - _key: '400' + description: Bad request. Invalid bulk identity. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message - object + - request_id + - type + type: object - _key: '401' - description: JWT validation failed. + description: Invalid access token. schema: properties: - _key: code @@ -29750,7 +29901,7 @@ entities: - type type: object - _key: '404' - description: ID not found. + description: Not found. schema: properties: - _key: code @@ -29800,17 +29951,16 @@ entities: return_info: custom: false self: true - type: device_enrollment_denial - return_type: device_enrollment_denial - summary: Query for a single device by ID + type: device_enrollment_bulk_delete + return_type: device_enrollment_bulk_delete + summary: Get bulk delete entity. x_deprecation: null x_filter: {} primary_key_field: id swagger_models: - - BlackListedDeviceData - - DenialAttemptsResponse + - BulkResponse tags: - - EnrollmentDenials + - Device ownership - enrollments - _key: device_events field_renames: [] fields: @@ -29873,7 +30023,7 @@ entities: type: string - _key: event_type_category api_fieldname: event_type_category - description: Category code which groups the event type by a summary category. + description: Category code that groups the event type by a summary category. example: FAIL_MANIFEST_REJECTED readOnly: true required: false @@ -29899,31 +30049,15 @@ entities: group_id: Devices methods: - _key: list - description: 'List all device events for an account. - - - **Example:** - - Following example gets device-events limiting returned results to max 5 events - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?limit=5 \ - - -H ''Authorization: Bearer '' - - ``` - - or to get events for certain device filter based on device_id: - - ``` - - curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?device_id= - \ - - -H ''Authorization: Bearer '' - - ```' + description: "List all or a filtered list of device events for the account. Device\ + \ events are events significant to operation or lifetime, such as creation,\ + \ firmware update, and suspension.\n\nTo see statistics for device connectivity\ + \ and usage, use the [Statistics API](https://www.pelion.com/docs/device-management-api/connect-statistics/).\n\ + \n **Example:**\n Following example gets device-events limiting returned results\ + \ to max 5 events\n ```\n curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?limit=5\ + \ \\\n -H 'Authorization: Bearer '\n ```\n or to get events for certain\ + \ device filter based on device_id:\n ```\n curl -X GET https://api.us-east-1.mbedcloud.com/v3/device-events?device_id=\ + \ \\\n -H 'Authorization: Bearer '\n ```" drop_fields: - object - etag @@ -30079,8 +30213,7 @@ entities: maxLength: 100 type: string - _key: event_type_category - description: Category code which groups the event type by a summary - category. + description: Category code that groups the event type by a summary category. example: FAIL_MANIFEST_REJECTED type: string - _key: event_type_description @@ -30168,12 +30301,13 @@ entities: - eq - neq - _key: read - description: 'Retrieve a specific device event. + description: '"Retrieve a specific device event. See ''/v3/device-events/'' for + information on device events, and how to get the device_event_id." **Example:** - To fetch a specific event you can use the ''id'' field form the ''/v3/device-events''. + To fetch a specific event you can use the ''id'' field from ''/v3/device-events''. Form of ''016c03d40a4e000000000001001003b4'' ``` @@ -30285,7 +30419,7 @@ entities: type: string - _key: event_type_category api_fieldname: event_type_category - description: Category code which groups the event type by a summary category. + description: Category code that groups the event type by a summary category. entity_fieldname: event_type_category example: FAIL_MANIFEST_REJECTED type: string @@ -30338,7 +30472,7 @@ entities: fields: - _key: created_at api_fieldname: created_at - description: The time the campaign was created. + description: The time the group was created. example: '2017-05-22T12:37:55.576563Z' format: date-time readOnly: true @@ -30363,7 +30497,7 @@ entities: api_fieldname: description description: The description of the group. example: Devices on the factory floor. - maxLength: 2000 + maxLength: 1024 readOnly: false required: false type: string @@ -30391,7 +30525,7 @@ entities: type: string - _key: updated_at api_fieldname: updated_at - description: The time the object was updated. + description: The time this object was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time readOnly: true @@ -30400,7 +30534,7 @@ entities: group_id: Devices methods: - _key: add_device - description: Add one device to a group. + description: Add one device to a group. A device can be in multiple groups. drop_fields: - object - etag @@ -30634,7 +30768,7 @@ entities: entity_fieldname: description example: Devices on the factory floor. in: body - maxLength: 2000 + maxLength: 1024 name: description parameter_fieldname: description required: false @@ -30672,7 +30806,7 @@ entities: properties: - _key: created_at api_fieldname: created_at - description: The time the campaign was created. + description: The time the group was created. entity_fieldname: created_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -30696,7 +30830,7 @@ entities: description: The description of the group. entity_fieldname: description example: Devices on the factory floor. - maxLength: 2000 + maxLength: 1024 type: string - _key: devices_count api_fieldname: devices_count @@ -30731,7 +30865,7 @@ entities: type: string - _key: updated_at api_fieldname: updated_at - description: The time the object was updated. + description: The time this object was updated. entity_fieldname: updated_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -30890,7 +31024,8 @@ entities: x_deprecation: null x_filter: {} - _key: delete - description: Delete a group. + description: Delete a group. This deletes the group, but not the devices in the + group. drop_fields: - object - etag @@ -31026,7 +31161,7 @@ entities: x_deprecation: null x_filter: {} - _key: devices - description: Get a page of devices. + description: Get a page of devices in a specified group. drop_fields: - object - etag @@ -31153,6 +31288,10 @@ entities: - name__neq - name__in - name__nin + - net_id__eq + - net_id__neq + - net_id__in + - net_id__nin - serial_number__eq - serial_number__neq - serial_number__in @@ -31291,6 +31430,17 @@ entities: 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: description: The expiration date of the certificate used to connect to LwM2M server. @@ -31327,7 +31477,7 @@ entities: type: string description: description: The description of the device. - example: description + example: Temperature measuring device maxLength: 2000 type: string device_class: @@ -31359,7 +31509,8 @@ entities: maxLength: 512 type: string endpoint_name: - description: The endpoint name given to the device. + 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 @@ -31391,7 +31542,8 @@ entities: type: string type: array host_gateway: - description: The ID of the host gateway, if appropriate. + description: The ID of the host gateway, if appropriate. A device behind + Edge has this host_gateway set. example: '' type: string id: @@ -31440,7 +31592,12 @@ entities: format: date-time type: string lifecycle_status: - description: The lifecycle status of the device. + 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 @@ -31456,33 +31613,63 @@ entities: format: date-time type: string mechanism: - description: The ID of the channel used to communicate with the device. + description: 'NOT USED: 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. + description: 'NOT USED: The address of the connector to use.' example: '' type: string name: - description: The name of the device. + 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: Is the device suspended by the operator? + description: Device has been suspended by operator. type: boolean serial_number: - description: The serial number of the device. + 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. + 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 @@ -31494,7 +31681,7 @@ entities: description: Is the device suspended by the system? type: boolean updated_at: - description: The time the object was updated. + description: The time this data object was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string @@ -31841,6 +32028,11 @@ entities: - neq - in - nin + net_id: + - eq + - neq + - in + - nin operator_suspended: - eq - neq @@ -31986,7 +32178,7 @@ entities: group: Devices properties: - _key: created_at - description: The time the campaign was created. + description: The time the group was created. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string @@ -32005,7 +32197,7 @@ entities: - _key: description description: The description of the group. example: Devices on the factory floor. - maxLength: 2000 + maxLength: 1024 type: string - _key: devices_count description: The number of devices in this group. @@ -32029,7 +32221,7 @@ entities: example: device-group type: string - _key: updated_at - description: The time the object was updated. + description: The time this object was updated. example: '2017-05-22T12:37:55.576563Z' format: date-time type: string @@ -32201,7 +32393,9 @@ entities: - lte - gte - _key: read - description: Get a group. + description: Returns [DeviceGroup](https://www.pelion.com/docs/device-management-api/device-directory/) + info what contains info of the group, for example, name and updated date. To + list the devices in the group, use '/v3/device-groups/{device-group-id}/devices/'. drop_fields: - object - etag @@ -32244,7 +32438,7 @@ entities: properties: - _key: created_at api_fieldname: created_at - description: The time the campaign was created. + description: The time the group was created. entity_fieldname: created_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -32268,7 +32462,7 @@ entities: description: The description of the group. entity_fieldname: description example: Devices on the factory floor. - maxLength: 2000 + maxLength: 1024 type: string - _key: devices_count api_fieldname: devices_count @@ -32303,7 +32497,7 @@ entities: type: string - _key: updated_at api_fieldname: updated_at - description: The time the object was updated. + description: The time this object was updated. entity_fieldname: updated_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -32659,7 +32853,7 @@ entities: x_deprecation: null x_filter: {} - _key: update - description: Modify the attributes of a group. + description: Modify the attributes of a group, such as the description. drop_fields: - object - etag @@ -32695,7 +32889,7 @@ entities: entity_fieldname: description example: Devices on the factory floor. in: body - maxLength: 2000 + maxLength: 1024 name: description parameter_fieldname: description required: false @@ -32742,7 +32936,7 @@ entities: properties: - _key: created_at api_fieldname: created_at - description: The time the campaign was created. + description: The time the group was created. entity_fieldname: created_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -32766,7 +32960,7 @@ entities: description: The description of the group. entity_fieldname: description example: Devices on the factory floor. - maxLength: 2000 + maxLength: 1024 type: string - _key: devices_count api_fieldname: devices_count @@ -32801,7 +32995,7 @@ entities: type: string - _key: updated_at api_fieldname: updated_at - description: The time the object was updated. + description: The time this object was updated. entity_fieldname: updated_at example: '2017-05-22T12:37:55.576563Z' format: date-time @@ -32983,7 +33177,7 @@ entities: - _key: datafile_checksum api_fieldname: datafile_checksum description: The checksum (sha256) generated for the datafile. - example: '0000000000000000000000000000000000000000000000000000000000000000' + example: e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e readOnly: true required: false type: string @@ -32996,8 +33190,8 @@ entities: type: integer - _key: datafile_url api_fieldname: datafile - description: The firmware image file URL - example: http://example.com/00000000000000000000000000000000 + description: The firmware image file URL. + example: http://bucket.com/myimage.elf readOnly: true required: false type: string @@ -33005,6 +33199,7 @@ entities: api_fieldname: description description: The description of the object. example: a description + format: free text maxLength: 2000 readOnly: false required: false @@ -33012,13 +33207,15 @@ entities: - _key: id api_fieldname: id description: The firmware image ID. - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 + pattern: '[A-Fa-f0-9]{32}' readOnly: false required: true type: string - _key: name api_fieldname: name description: The firmware image name. + format: free text maxLength: 128 readOnly: false required: false @@ -33036,6 +33233,9 @@ entities: - _key: create description: 'Create a firmware image. +
**Note:** Only use this API for images smaller than 100 MB. For larger + images, [upload in chunks](https://www.pelion.com/docs/device-management/current/updating-firmware/uploading-a-large-firmware-image.html). +
**Usage example:** @@ -33044,7 +33244,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-images \ - -H ''Authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''Content-Type: multipart/form-data'' \ @@ -33077,6 +33277,7 @@ entities: description: The description of the object. entity_fieldname: description example: a description + format: free text in: stream maxLength: 2000 parameter_fieldname: description @@ -33084,10 +33285,12 @@ entities: type: string - _key: firmware_image_file api_fieldname: datafile - description: The firmware image file to upload. + description: The firmware image file to upload. File name must not exceed 166 + characters. entity_fieldname: firmware_image_file external_param: true in: stream + maxLength: 166 name: datafile parameter_fieldname: datafile required: true @@ -33096,6 +33299,7 @@ entities: api_fieldname: name description: The firmware image name. entity_fieldname: name + format: free text in: stream maxLength: 128 parameter_fieldname: name @@ -33132,15 +33336,15 @@ entities: type: string datafile: api_fieldname: datafile - description: The firmware image file URL + description: The firmware image file URL. entity_fieldname: datafile_url - example: http://example.com/00000000000000000000000000000000 + example: http://bucket.com/myimage.elf type: string datafile_checksum: api_fieldname: datafile_checksum description: The checksum (sha256) generated for the datafile. entity_fieldname: datafile_checksum - example: '0000000000000000000000000000000000000000000000000000000000000000' + example: e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e type: string datafile_size: api_fieldname: datafile_size @@ -33153,6 +33357,7 @@ entities: description: The description of the object. entity_fieldname: description example: a description + format: free text maxLength: 2000 type: string etag: @@ -33165,18 +33370,21 @@ entities: api_fieldname: id description: The firmware image ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 + pattern: '[A-Fa-f0-9]{32}' type: string name: api_fieldname: name description: The firmware image name. entity_fieldname: name + format: free text maxLength: 128 type: string object: api_fieldname: object description: 'Entity name: always ''firmware-image''.' entity_fieldname: object + example: firmware-image type: string updated_at: api_fieldname: updated_at @@ -33187,12 +33395,196 @@ entities: type: string - _key: '400' description: Cannot validate the data used to create the firmware image. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '403' description: Forbidden. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '413' description: Firmware image too large. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -33211,10 +33603,10 @@ entities: ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-images/12345678901234567890123456789012 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-images/11234567f9012ab56790120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -33234,10 +33626,9 @@ entities: entity_fieldname: id external_param: false in: path - maxLength: 32 - minLength: 32 name: image_id parameter_fieldname: image_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -33255,10 +33646,148 @@ entities: description: Firmware image deleted. - _key: '400' description: Bad Request. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Firmware image not found. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -33278,7 +33807,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -33423,12 +33952,12 @@ entities: format: date-time type: string datafile: - description: The firmware image file URL - example: http://example.com/00000000000000000000000000000000 + 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: '0000000000000000000000000000000000000000000000000000000000000000' + example: e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e type: string datafile_size: description: The size of the datafile in bytes. @@ -33437,6 +33966,7 @@ entities: description: description: The description of the object. example: a description + format: free text maxLength: 2000 type: string etag: @@ -33447,14 +33977,17 @@ entities: type: string id: description: The firmware image ID. - example: '00000000000000000000000000000000' + 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: api_fieldname: updated_at @@ -33477,6 +34010,7 @@ entities: api_fieldname: object description: 'Entity name: always ''list''.' entity_fieldname: object + example: list type: string - _key: order api_fieldname: order @@ -33495,10 +34029,148 @@ entities: type: integer - _key: '400' description: Bad Request. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Unable to find content. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -33556,10 +34228,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-images/1123456f9012ab567890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -33584,9 +34256,10 @@ entities: api_fieldname: id description: The firmware image ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 in: path parameter_fieldname: image_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -33616,15 +34289,15 @@ entities: type: string datafile: api_fieldname: datafile - description: The firmware image file URL + description: The firmware image file URL. entity_fieldname: datafile_url - example: http://example.com/00000000000000000000000000000000 + example: http://bucket.com/myimage.elf type: string datafile_checksum: api_fieldname: datafile_checksum description: The checksum (sha256) generated for the datafile. entity_fieldname: datafile_checksum - example: '0000000000000000000000000000000000000000000000000000000000000000' + example: e979fe432d6a19b0e70a93b33ac29094cd5fe35a8fd5fbedfd383d8d107d6a7e type: string datafile_size: api_fieldname: datafile_size @@ -33637,6 +34310,7 @@ entities: description: The description of the object. entity_fieldname: description example: a description + format: free text maxLength: 2000 type: string etag: @@ -33649,18 +34323,21 @@ entities: api_fieldname: id description: The firmware image ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e652be671000000000001001001e5 + pattern: '[A-Fa-f0-9]{32}' type: string name: api_fieldname: name description: The firmware image name. entity_fieldname: name + format: free text maxLength: 128 type: string object: api_fieldname: object description: 'Entity name: always ''firmware-image''.' entity_fieldname: object + example: firmware-image type: string updated_at: api_fieldname: updated_at @@ -33671,10 +34348,148 @@ entities: type: string - _key: '400' description: Bad Request. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Firmware image can't be found. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -33706,15 +34521,49 @@ entities: type: string - _key: datafile_size api_fieldname: datafile_size - description: The size of the datafile in bytes + description: The size of the firmware manifest in bytes. format: int64 readOnly: true required: false type: integer - _key: datafile_url api_fieldname: datafile - description: The URL of the firmware manifest binary - example: http://example.com/12345678901234567890123456789012 + description: The URL of the ASN.1 DER-encoded firmware manifest binary. + example: http://bucket.com/mymanifest.manifest + format: uri + readOnly: true + required: false + type: string + - _key: delivered_payload_digest + api_fieldname: delivered_payload_digest + description: Digest (SHA256, hex-encoded) of the payload to deliver to the device. + example: c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc + format: hex + readOnly: true + required: false + type: string + - _key: delivered_payload_size + api_fieldname: delivered_payload_size + description: The size in bytes of the payload to deliver to the device. + format: int64 + readOnly: true + required: false + type: integer + - _key: delivered_payload_type + api_fieldname: delivered_payload_type + description: Type of the payload to deliver to the device (full or delta image). + enum: + - full + - delta + enum_reference: firmware_manifest_delivered_payload_type_enum + readOnly: true + required: false + type: string + - _key: delivered_payload_url + api_fieldname: delivered_payload_url + description: The URL of the payload to deliver to the device. + example: http://bucket.com/myimage.elf + format: uri readOnly: true required: false type: string @@ -33722,14 +34571,24 @@ entities: api_fieldname: description description: The description of the firmware manifest. example: '' + format: free text maxLength: 2000 readOnly: false required: false type: string - _key: device_class api_fieldname: device_class - description: The class of the device. - example: 00000000-0000-0000-0000-000000000000 + description: The device class ID. + example: 42c4d8de-704d-546e-b9d3-1ce1eb316167 + format: uuid + readOnly: true + required: false + type: string + - _key: device_vendor + api_fieldname: device_vendor + description: The device vendor ID. + example: 5d645eae-c231-5a89-9764-2e655cd94fa8 + format: uuid readOnly: true required: false type: string @@ -33737,23 +34596,54 @@ entities: api_fieldname: id description: The firmware manifest ID. example: '12345678901234567890123456789012' + pattern: '[A-Fa-f0-9]{32}' readOnly: false required: true type: string - _key: key_table_url api_fieldname: key_table description: The key table of pre-shared keys for devices. - example: http://example.com + example: http://example.com/key-table format: uri readOnly: true required: false type: string + - _key: manifest_schema_version + api_fieldname: manifest_schema_version + description: Version of the manifest schema (1 or 3). + enum: + - '1' + - '3' + enum_reference: firmware_manifest_schema_version_enum + readOnly: true + required: false + type: string - _key: name api_fieldname: name - description: The name of the object. - example: default_object_name + description: The name of the manifest. + example: manifest_name + format: free text maxLength: 128 readOnly: false + required: true + type: string + - _key: parsed_raw_manifest + api_fieldname: 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. + + ' + readOnly: true + required: false + type: object + - _key: precursor_payload_digest + api_fieldname: precursor_payload_digest + description: Digest (SHA256, hex-encoded) of the currently installed payload. + example: 54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f + readOnly: true required: false type: string - _key: timestamp @@ -33764,6 +34654,14 @@ entities: readOnly: true required: false type: string + - _key: update_priority + api_fieldname: 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 + readOnly: true + required: false + type: integer - _key: updated_at api_fieldname: updated_at description: The time the entity was updated. @@ -33786,7 +34684,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \ - -H ''Authorization: '' \ + -H ''Authorization: Bearer '' \ -H ''Content-Type: multipart/form-data'' \ @@ -33808,10 +34706,19 @@ entities: - filter - created_at - updated_at + - manifest_schema_version - datafile_size + - delivered_payload_url + - delivered_payload_size + - delivered_payload_digest + - delivered_payload_type + - precursor_payload_digest - device_class + - device_vendor + - update_priority - id - timestamp + - parsed_raw_manifest - datafile_url - key_table_url field_renames: @@ -33825,6 +34732,7 @@ entities: description: The description of the firmware manifest. entity_fieldname: description example: '' + format: free text in: stream maxLength: 2000 parameter_fieldname: description @@ -33833,7 +34741,7 @@ entities: - _key: firmware_manifest_file api_fieldname: datafile description: The manifest file to create. The API gateway enforces the account-specific - file size. + file size. File name must not exceed 100 characters. entity_fieldname: firmware_manifest_file external_param: true in: stream @@ -33844,7 +34752,7 @@ entities: - _key: key_table_file api_fieldname: key_table description: The key table of pre-shared keys for devices. The table is generated - by the manifest tool. + by the manifest tool. File name must not exceed 100 characters. entity_fieldname: key_table_file external_param: true in: stream @@ -33854,13 +34762,14 @@ entities: type: file - _key: name api_fieldname: name - description: The name of the object. + description: The name of the manifest. entity_fieldname: name - example: default_object_name + example: manifest_name + format: free text in: stream maxLength: 128 parameter_fieldname: name - required: false + required: true type: string group_id: Device_Update method: post @@ -33893,28 +34802,68 @@ entities: type: string datafile: api_fieldname: datafile - description: The URL of the firmware manifest binary + description: The URL of the ASN.1 DER-encoded firmware manifest binary. entity_fieldname: datafile_url - example: http://example.com/12345678901234567890123456789012 + example: http://bucket.com/mymanifest.manifest + format: uri type: string datafile_size: api_fieldname: datafile_size - description: The size of the datafile in bytes + description: The size of the firmware manifest in bytes. entity_fieldname: datafile_size format: int64 type: integer + delivered_payload_digest: + api_fieldname: delivered_payload_digest + description: Digest (SHA256, hex-encoded) of the payload to deliver to the + device. + entity_fieldname: delivered_payload_digest + example: c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc + format: hex + type: string + delivered_payload_size: + api_fieldname: delivered_payload_size + description: The size in bytes of the payload to deliver to the device. + entity_fieldname: delivered_payload_size + format: int64 + type: integer + delivered_payload_type: + api_fieldname: delivered_payload_type + description: Type of the payload to deliver to the device (full or delta + image). + entity_fieldname: delivered_payload_type + enum: + - full + - delta + type: string + delivered_payload_url: + api_fieldname: delivered_payload_url + description: The URL of the payload to deliver to the device. + entity_fieldname: delivered_payload_url + example: http://bucket.com/myimage.elf + format: uri + type: string description: api_fieldname: description description: The description of the firmware manifest. entity_fieldname: description example: '' + format: free text maxLength: 2000 type: string device_class: api_fieldname: device_class - description: The class of the device. + description: The device class ID. entity_fieldname: device_class - example: 00000000-0000-0000-0000-000000000000 + example: 42c4d8de-704d-546e-b9d3-1ce1eb316167 + format: uuid + type: string + device_vendor: + api_fieldname: device_vendor + description: The device vendor ID. + entity_fieldname: device_vendor + example: 5d645eae-c231-5a89-9764-2e655cd94fa8 + format: uuid type: string etag: api_fieldname: etag @@ -33927,49 +34876,223 @@ entities: description: The firmware manifest ID. entity_fieldname: id example: '12345678901234567890123456789012' + pattern: '[A-Fa-f0-9]{32}' type: string key_table: api_fieldname: key_table description: The key table of pre-shared keys for devices. entity_fieldname: key_table_url - example: http://example.com + example: http://example.com/key-table format: uri type: string + manifest_schema_version: + api_fieldname: manifest_schema_version + description: Version of the manifest schema (1 or 3). + entity_fieldname: manifest_schema_version + enum: + - '1' + - '3' + type: string name: api_fieldname: name - description: The name of the object. + description: The name of the manifest. entity_fieldname: name - example: default_object_name + example: manifest_name + format: free text maxLength: 128 type: string - object: - api_fieldname: object - description: 'Entity name: always ''firmware-manifest''.' - entity_fieldname: object + object: + api_fieldname: object + description: 'Entity name: always ''firmware-manifest''.' + entity_fieldname: object + example: firmware-manifest + type: string + parsed_raw_manifest: + api_fieldname: 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. + + ' + entity_fieldname: parsed_raw_manifest + type: object + precursor_payload_digest: + api_fieldname: precursor_payload_digest + description: Digest (SHA256, hex-encoded) of the currently installed payload. + entity_fieldname: precursor_payload_digest + example: 54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f + type: string + timestamp: + api_fieldname: timestamp + description: The firmware manifest version as a timestamp. + entity_fieldname: timestamp + example: '2017-05-22T12:37:55.576563Z' + format: date-time + type: string + update_priority: + api_fieldname: update_priority + description: Update priority, passed to the application callback when an + update is performed. Allows the application to make application-specific + decisions. + entity_fieldname: update_priority + format: int64 + type: integer + updated_at: + api_fieldname: updated_at + description: The time the entity was updated. + entity_fieldname: updated_at + example: '2017-05-22T12:37:55.576563Z' + format: date-time + type: string + - _key: '400' + description: 'Validation error. The data used to create the firmware manifest + did not validate and/or the manifest uploaded exceeded 2 KB in size. + + ' + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '401' + description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '403' + description: Forbidden. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error type: string - timestamp: - api_fieldname: timestamp - description: The firmware manifest version as a timestamp. - entity_fieldname: timestamp - example: '2017-05-22T12:37:55.576563Z' - format: date-time + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 type: string - updated_at: - api_fieldname: updated_at - description: The time the entity was updated. - entity_fieldname: updated_at - example: '2017-05-22T12:37:55.576563Z' - format: date-time + - _key: type + description: Error type used to categorise the error. + example: validation_error type: string - - _key: '400' - description: 'Validation error. The data used to create the firmware manifest - did not validate and/or the manifest uploaded exceeded 2 KB in size. - - ' - - _key: '401' - description: Not authenticated. - - _key: '403' - description: Forbidden. + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -33988,10 +35111,10 @@ entities: ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/12345678901234567890123456789012 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/11234567f9012ab56780120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -34013,10 +35136,9 @@ entities: entity_fieldname: id external_param: false in: path - maxLength: 32 - minLength: 32 name: manifest_id parameter_fieldname: manifest_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -34034,10 +35156,148 @@ entities: description: Firmware manifest deleted. - _key: '400' description: Bad Request. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Firmware manifest not found. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -34057,7 +35317,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -34208,21 +35468,51 @@ entities: format: date-time type: string datafile: - description: The URL of the firmware manifest binary - example: http://example.com/12345678901234567890123456789012 + 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 datafile in bytes + 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: The description of the firmware manifest. example: '' + format: free text maxLength: 2000 type: string device_class: - description: The class of the device. - example: 00000000-0000-0000-0000-000000000000 + description: The device class ID. + example: 42c4d8de-704d-546e-b9d3-1ce1eb316167 + format: uuid + type: string + device_vendor: + description: The device vendor ID. + example: 5d645eae-c231-5a89-9764-2e655cd94fa8 + format: uuid type: string etag: api_fieldname: etag @@ -34233,25 +35523,54 @@ entities: 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 + example: http://example.com/key-table format: uri type: string + manifest_schema_version: + description: Version of the manifest schema (1 or 3). + enum: + - '1' + - '3' + type: string name: - description: The name of the object. - example: default_object_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: api_fieldname: updated_at description: The time the entity was updated. @@ -34273,6 +35592,7 @@ entities: api_fieldname: object description: 'Entity name: always ''list''.' entity_fieldname: object + example: list type: string - _key: order api_fieldname: order @@ -34291,10 +35611,148 @@ entities: type: integer - _key: '400' description: Bad Request. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Unable to find content. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -34357,10 +35815,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/1123467f9012ab567890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -34372,11 +35830,20 @@ entities: - filter - created_at - updated_at + - manifest_schema_version - datafile_size + - delivered_payload_url + - delivered_payload_size + - delivered_payload_digest + - delivered_payload_type + - precursor_payload_digest - description - device_class + - device_vendor + - update_priority - name - timestamp + - parsed_raw_manifest - datafile_url - key_table_url field_renames: @@ -34392,6 +35859,7 @@ entities: example: '12345678901234567890123456789012' in: path parameter_fieldname: manifest_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -34421,28 +35889,68 @@ entities: type: string datafile: api_fieldname: datafile - description: The URL of the firmware manifest binary + description: The URL of the ASN.1 DER-encoded firmware manifest binary. entity_fieldname: datafile_url - example: http://example.com/12345678901234567890123456789012 + example: http://bucket.com/mymanifest.manifest + format: uri type: string datafile_size: api_fieldname: datafile_size - description: The size of the datafile in bytes + description: The size of the firmware manifest in bytes. entity_fieldname: datafile_size format: int64 type: integer + delivered_payload_digest: + api_fieldname: delivered_payload_digest + description: Digest (SHA256, hex-encoded) of the payload to deliver to the + device. + entity_fieldname: delivered_payload_digest + example: c520fc771c0482ad39e983d27cf725a7c724fe58c616129a34a420d1941068bc + format: hex + type: string + delivered_payload_size: + api_fieldname: delivered_payload_size + description: The size in bytes of the payload to deliver to the device. + entity_fieldname: delivered_payload_size + format: int64 + type: integer + delivered_payload_type: + api_fieldname: delivered_payload_type + description: Type of the payload to deliver to the device (full or delta + image). + entity_fieldname: delivered_payload_type + enum: + - full + - delta + type: string + delivered_payload_url: + api_fieldname: delivered_payload_url + description: The URL of the payload to deliver to the device. + entity_fieldname: delivered_payload_url + example: http://bucket.com/myimage.elf + format: uri + type: string description: api_fieldname: description description: The description of the firmware manifest. entity_fieldname: description example: '' + format: free text maxLength: 2000 type: string device_class: api_fieldname: device_class - description: The class of the device. + description: The device class ID. entity_fieldname: device_class - example: 00000000-0000-0000-0000-000000000000 + example: 42c4d8de-704d-546e-b9d3-1ce1eb316167 + format: uuid + type: string + device_vendor: + api_fieldname: device_vendor + description: The device vendor ID. + entity_fieldname: device_vendor + example: 5d645eae-c231-5a89-9764-2e655cd94fa8 + format: uuid type: string etag: api_fieldname: etag @@ -34455,25 +35963,53 @@ entities: description: The firmware manifest ID. entity_fieldname: id example: '12345678901234567890123456789012' + pattern: '[A-Fa-f0-9]{32}' type: string key_table: api_fieldname: key_table description: The key table of pre-shared keys for devices. entity_fieldname: key_table_url - example: http://example.com + example: http://example.com/key-table format: uri type: string + manifest_schema_version: + api_fieldname: manifest_schema_version + description: Version of the manifest schema (1 or 3). + entity_fieldname: manifest_schema_version + enum: + - '1' + - '3' + type: string name: api_fieldname: name - description: The name of the object. + description: The name of the manifest. entity_fieldname: name - example: default_object_name + example: manifest_name + format: free text maxLength: 128 type: string object: api_fieldname: object description: 'Entity name: always ''firmware-manifest''.' entity_fieldname: object + example: firmware-manifest + type: string + parsed_raw_manifest: + api_fieldname: 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. + + ' + entity_fieldname: parsed_raw_manifest + type: object + precursor_payload_digest: + api_fieldname: precursor_payload_digest + description: Digest (SHA256, hex-encoded) of the currently installed payload. + entity_fieldname: precursor_payload_digest + example: 54d640fcd687c9b13420b9be66a265494899002aad1b7370cfb3dbfd7fbec42f type: string timestamp: api_fieldname: timestamp @@ -34482,6 +36018,14 @@ entities: example: '2017-05-22T12:37:55.576563Z' format: date-time type: string + update_priority: + api_fieldname: update_priority + description: Update priority, passed to the application callback when an + update is performed. Allows the application to make application-specific + decisions. + entity_fieldname: update_priority + format: int64 + type: integer updated_at: api_fieldname: updated_at description: The time the entity was updated. @@ -34491,10 +36035,148 @@ entities: type: string - _key: '400' description: Bad request. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Firmware manifest can't be found. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -34570,6 +36252,152 @@ entities: readOnly: false required: true type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity provider's + API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign ID tokens. + PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + readOnly: false + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -34633,7 +36461,9 @@ entities: group_id: Accounts methods: - _key: create - description: Create a new identity provider. + description: 'Create a new identity provider. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -34675,7 +36505,7 @@ entities: api_fieldname: type description: Identity provider type. entity_fieldname: identity_provider_type - enum: &id005 + enum: &id004 - NATIVE - MBED - SAML2 @@ -34698,12 +36528,10 @@ entities: api_fieldname: oidc_attributes description: Represents OIDC specific attributes. entity_fieldname: oidc_attributes - external_param: true foreign_key: entity: oidc_request group: Accounts in: body - name: oidc_attributes parameter_fieldname: oidc_attributes properties: - _key: authorization_endpoint @@ -34727,30 +36555,37 @@ entities: x-nullable: true - _key: email_verified description: Custom claim name for 'email_verified'. + example: email_verified type: string x-nullable: true - _key: family_name description: Custom claim name for 'family_name'. + example: family_name type: string x-nullable: true - _key: given_name description: Custom claim name for 'given_name'. + example: given_name type: string x-nullable: true - _key: name description: Custom claim name for 'name'. + example: name type: string x-nullable: true - _key: phone_number description: Custom claim name for 'phone_number'. + example: phone_number type: string x-nullable: true - _key: sub description: Custom claim name for 'sub'. + example: sub type: string x-nullable: true - _key: updated_at description: Custom claim name for 'updated_at'. + example: updated_at type: string x-nullable: true - _key: updated_at_pattern @@ -34823,7 +36658,7 @@ entities: 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: + enum: &id005 - POST - GET type: string @@ -34837,7 +36672,6 @@ entities: type: string x-nullable: true required: false - schema_param: true type: object - _key: saml2_attributes api_fieldname: saml2_attributes @@ -34973,6 +36807,156 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -35199,7 +37183,9 @@ entities: x_deprecation: null x_filter: {} - _key: delete - description: Delete an identity provider by ID. + description: 'Delete an identity provider by ID. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -35329,7 +37315,7 @@ entities: - type type: object - _key: '404' - description: Identity provider not found. + description: An identity provider not found. schema: properties: - _key: code @@ -35385,7 +37371,9 @@ entities: x_deprecation: null x_filter: {} - _key: delete_service_provider_certificate - description: Delete a service provider certificate. + description: 'Delete a service provider certificate. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -35397,6 +37385,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - account_id - is_default - identity_provider_type @@ -35489,6 +37478,156 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -35659,7 +37798,7 @@ entities: - type type: object - _key: '404' - description: Identity provider not found. + description: An identity provider not found. schema: properties: - _key: code @@ -35715,7 +37854,9 @@ entities: x_deprecation: null x_filter: {} - _key: generate_service_provider_certificate - description: Generate a new service provider certificate. + description: 'Generate a new service provider certificate. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -35727,6 +37868,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - account_id - is_default - identity_provider_type @@ -35855,6 +37997,156 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -36074,7 +38366,7 @@ entities: - type type: object - _key: '404' - description: Identity provider not found. + description: An identity provider not found. schema: properties: - _key: code @@ -36130,7 +38422,9 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: Retrieve identity providers in an array. + description: 'Retrieve an array of identity providers. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -36145,7 +38439,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -36182,7 +38476,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -36220,7 +38514,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -36271,6 +38565,154 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + description: Represents OIDC specific attributes. + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access + to identity provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to + sign ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes description: Represents SAML2 specific attributes in responses. properties: @@ -36485,7 +38927,9 @@ entities: x_deprecation: null x_filter: {} - _key: read - description: Retrieve by ID. + description: 'Retrieve an identity provider. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -36497,6 +38941,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - account_id - is_default - identity_provider_type @@ -36585,6 +39030,156 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -36755,7 +39350,7 @@ entities: - type type: object - _key: '404' - description: Identity provider not found. + description: An identity provider not found. schema: properties: - _key: code @@ -36807,11 +39402,13 @@ entities: self: true type: identity_provider return_type: identity_provider - summary: Get identity provider by ID. + summary: Get identity provider. x_deprecation: null x_filter: {} - _key: refresh_tokens - description: Refreshes an OIDC IdP's signing keys. + description: 'Refreshes an OIDC IdP''s signing keys. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -36823,6 +39420,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - account_id - is_default - identity_provider_type @@ -36915,6 +39513,156 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -37133,7 +39881,7 @@ entities: - type type: object - _key: '404' - description: Identity provider not found. + description: An identity provider not found. schema: properties: - _key: code @@ -37189,7 +39937,9 @@ entities: x_deprecation: null x_filter: {} - _key: update - description: Update an existing identity provider. + description: 'Update an existing identity provider. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -37240,7 +39990,7 @@ entities: api_fieldname: type description: Identity provider type. entity_fieldname: identity_provider_type - enum: *id005 + enum: *id004 enum_reference: identity_provider_type_enum in: body parameter_fieldname: type @@ -37259,12 +40009,10 @@ entities: api_fieldname: oidc_attributes description: Represents OIDC specific attributes. entity_fieldname: oidc_attributes - external_param: true foreign_key: entity: oidc_request group: Accounts in: body - name: oidc_attributes parameter_fieldname: oidc_attributes properties: - _key: authorization_endpoint @@ -37288,30 +40036,37 @@ entities: x-nullable: true - _key: email_verified description: Custom claim name for 'email_verified'. + example: email_verified type: string x-nullable: true - _key: family_name description: Custom claim name for 'family_name'. + example: family_name type: string x-nullable: true - _key: given_name description: Custom claim name for 'given_name'. + example: given_name type: string x-nullable: true - _key: name description: Custom claim name for 'name'. + example: name type: string x-nullable: true - _key: phone_number description: Custom claim name for 'phone_number'. + example: phone_number type: string x-nullable: true - _key: sub description: Custom claim name for 'sub'. + example: sub type: string x-nullable: true - _key: updated_at description: Custom claim name for 'updated_at'. + example: updated_at type: string x-nullable: true - _key: updated_at_pattern @@ -37384,9 +40139,7 @@ entities: 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 + enum: *id005 type: string - _key: token_response_path description: Path to the standard data in the token response. Levels in the @@ -37398,7 +40151,6 @@ entities: type: string x-nullable: true required: false - schema_param: true type: object - _key: saml2_attributes api_fieldname: saml2_attributes @@ -37525,6 +40277,156 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -37743,7 +40645,7 @@ entities: - type type: object - _key: '404' - description: Identity provider not found. + description: An identity provider not found. schema: properties: - _key: code @@ -37884,6 +40786,8 @@ entities: - _key: delete description: 'Resets the branding color to its light theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -37892,7 +40796,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -38105,7 +41009,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -38150,7 +41054,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -38363,7 +41267,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -38626,6 +41530,8 @@ entities: operation_id: bulkSetLightColors description: 'Update light theme branding color. + Note: This endpoint is restricted to administrators. + **Example:** @@ -38634,7 +41540,7 @@ entities: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/branding-colors/light/primary \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -39040,6 +41946,8 @@ entities: - _key: delete description: 'Revert an account branding image to light theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -39048,7 +41956,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference}/clear \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -39280,7 +42188,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -39325,7 +42233,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -39560,7 +42468,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/branding-images/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -39830,8 +42738,10 @@ entities: additional_operations: - notes: The multipart request is more generic and better supported by SDKs. operation_id: uploadLightImage - description: Upload a new account branding image as form data in the light theme + description: 'Upload a new account branding image as form data in the light theme in PNG or JPEG format. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -40210,10 +43120,18 @@ entities: - _key: login_profile_type api_fieldname: type fields: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + example: fed/user_007 + readOnly: true + required: false + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. + example: 01619571f3c00242ac12000600000000 readOnly: false required: false type: string @@ -40226,6 +43144,7 @@ entities: - SAML2 - OIDC enum_reference: login_profile_type_enum + example: NATIVE readOnly: true required: false type: string @@ -40233,6 +43152,7 @@ entities: _override: true api_fieldname: name description: Name of the identity provider. + example: Pelion readOnly: false required: false type: string @@ -40273,30 +43193,37 @@ entities: x-nullable: true - _key: email_verified description: Custom claim name for 'email_verified'. + example: email_verified type: string x-nullable: true - _key: family_name description: Custom claim name for 'family_name'. + example: family_name type: string x-nullable: true - _key: given_name description: Custom claim name for 'given_name'. + example: given_name type: string x-nullable: true - _key: name description: Custom claim name for 'name'. + example: name type: string x-nullable: true - _key: phone_number description: Custom claim name for 'phone_number'. + example: phone_number type: string x-nullable: true - _key: sub description: Custom claim name for 'sub'. + example: sub type: string x-nullable: true - _key: updated_at description: Custom claim name for 'updated_at'. + example: updated_at type: string x-nullable: true - _key: updated_at_pattern @@ -40443,6 +43370,7 @@ entities: - _key: email_verified api_fieldname: email_verified description: Custom claim name for 'email_verified'. + example: email_verified readOnly: true required: false type: string @@ -40450,6 +43378,7 @@ entities: - _key: family_name api_fieldname: family_name description: Custom claim name for 'family_name'. + example: family_name readOnly: true required: false type: string @@ -40457,6 +43386,7 @@ entities: - _key: given_name api_fieldname: given_name description: Custom claim name for 'given_name'. + example: given_name readOnly: true required: false type: string @@ -40464,6 +43394,7 @@ entities: - _key: name api_fieldname: name description: Custom claim name for 'name'. + example: name readOnly: true required: false type: string @@ -40471,6 +43402,7 @@ entities: - _key: phone_number api_fieldname: phone_number description: Custom claim name for 'phone_number'. + example: phone_number readOnly: true required: false type: string @@ -40478,6 +43410,7 @@ entities: - _key: sub api_fieldname: sub description: Custom claim name for 'sub'. + example: sub readOnly: true required: false type: string @@ -40485,6 +43418,7 @@ entities: - _key: updated_at api_fieldname: updated_at description: Custom claim name for 'updated_at'. + example: updated_at readOnly: true required: false type: string @@ -40641,6 +43575,19 @@ entities: readOnly: true required: false 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + example: 0 + format: int32 + readOnly: true + required: false + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -40684,7 +43631,7 @@ entities: group_id: Accounts methods: - _key: api_keys - description: 'Manage policy groups. + description: 'Retrieve an array of API keys associated with a policy group. **Example:** @@ -40694,7 +43641,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/api-keys \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -40709,7 +43656,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -40756,7 +43703,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -40792,7 +43739,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -40915,8 +43862,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -41091,12 +44038,18 @@ entities: self: false type: api_key return_type: paginated_response(api_key) - summary: Get the API keys of a group. - x_deprecation: null + summary: Get the API keys of a policy group. + x_deprecation: + comment: This endpoint is deprecated, GET https://api.us-east-1.mbedcloud.com/v3/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_filter: {} - _key: create description: 'Create a new group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -41104,7 +44057,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/policy-groups \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' -d ''{"name": "MyGroup1"}'' @@ -41119,6 +44072,7 @@ entities: - updated_at - account_id - user_count + - application_count - apikey_count field_renames: [] fields: @@ -41136,6 +44090,16 @@ entities: 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: [] + - _key: applications + description: An array of applicationIDs. + items: + type: string + type: array - _key: users description: An array of user IDs. items: @@ -41187,6 +44151,18 @@ entities: 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + entity_fieldname: application_count + example: 0 + format: int32 + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -41447,6 +44423,8 @@ entities: - _key: delete description: 'Delete a group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -41455,7 +44433,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -41641,7 +44619,7 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'Retrieve all group information. + description: 'Retrieve an array of policy groups. **Example:** @@ -41650,7 +44628,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -41666,7 +44644,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -41703,7 +44681,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -41741,7 +44719,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -41771,6 +44749,16 @@ entities: 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: [] + - _key: application_count + description: The number of applications in this group. + example: 0 + format: int32 + type: integer - _key: created_at description: Creation UTC time RFC3339. example: '2018-02-13T09:35:20Z' @@ -41844,8 +44832,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -41972,13 +44960,13 @@ entities: self: true type: policy_group return_type: paginated_response(policy_group) - summary: Get all group information. + summary: Get policy groups. x_deprecation: null x_filter: name: - eq - _key: read - description: 'Retrieve general information about a group. + description: 'Retrieve a policy group. **Example:** @@ -41988,7 +44976,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -42001,6 +44989,7 @@ entities: - account_id - name - user_count + - application_count - apikey_count field_renames: [] fields: @@ -42047,6 +45036,18 @@ entities: 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + entity_fieldname: application_count + example: 0 + format: int32 + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -42253,12 +45254,14 @@ entities: self: true type: policy_group return_type: policy_group - summary: Get group information. + summary: Get a policy group. x_deprecation: null x_filter: {} - _key: update description: 'Update a group name. + Note: This endpoint is restricted to administrators. + **Example:** @@ -42267,7 +45270,7 @@ entities: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -42283,6 +45286,7 @@ entities: - updated_at - account_id - user_count + - application_count - apikey_count field_renames: [] fields: @@ -42339,6 +45343,18 @@ entities: 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + entity_fieldname: application_count + example: 0 + format: int32 + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -42597,7 +45613,9 @@ entities: x_deprecation: null x_filter: {} - _key: users - description: 'Retrieve users of a group with details. + description: 'Retrieve an array of users associated with a policy group. + + Note: This endpoint is restricted to administrators. **Example:** @@ -42607,7 +45625,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/policy-groups/{group_id}/users \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -42625,7 +45643,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -42672,7 +45690,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -42708,7 +45726,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -42922,11 +45940,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -42934,6 +45960,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -42945,6 +45972,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -43045,8 +46073,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -43221,7 +46249,7 @@ entities: self: false type: user return_type: paginated_response(user) - summary: Get users of a group. + summary: Get users of a policy group. x_deprecation: null x_filter: status: @@ -43277,7 +46305,7 @@ entities: \ 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```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v2/device-shared-keys\ - \ \\\n-H \"Authorization: Bearer \" \\\n-H \"content-type: application/json\"\ + \ \\\n-H \"Authorization: Bearer \" \\\n-H \"content-type: application/json\"\ \ \\\n -d '{ \"endpoint_name\": \"my-endpoint-0001\", \"secret_hex\": \"\ 4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a\" }'\n```" drop_fields: @@ -43371,7 +46399,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -43440,7 +46468,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -43483,11 +46511,15 @@ entities: type: string - _key: limit api_fieldname: limit - description: The number of entries per page. + default: 50 + description: The number of objects to retrieve on a page (2-1000). Values outside + the range are set to the closest limit. entity_fieldname: limit example: 50 external_param: true in: query + maximum: 1000 + minimum: 2 name: limit parameter_fieldname: limit required: false @@ -43617,7 +46649,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v2/device-shared-keys/my-endpoint-0001 \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -43716,7 +46748,7 @@ entities: - PreSharedKey - PreSharedKeyWithoutSecret tags: - - PreSharedKeys + - Security and identity - pre-shared keys - _key: saml2_request field_renames: [] fields: @@ -43816,7 +46848,7 @@ entities: curl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/bootstrap \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -44013,7 +47045,7 @@ entities: curl -X GET http://api.us-east-1.mbedcloud.com/v3/server-credentials/lwm2m \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -44200,7 +47232,7 @@ entities: swagger_models: - ServerCredentialsResponseData tags: - - Service security - server credentials + - Security and identity - server credentials - _key: subtenant_api_key field_renames: [] fields: @@ -44310,6 +47342,8 @@ entities: 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:** @@ -44318,7 +47352,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -44366,7 +47400,7 @@ entities: in: body maxLength: 100 parameter_fieldname: name - required: true + required: false type: string - _key: owner api_fieldname: owner @@ -44478,7 +47512,7 @@ entities: in: body maxLength: 100 parameter_fieldname: name - required: true + required: false type: string - _key: object api_fieldname: object @@ -44525,7 +47559,7 @@ entities: - object type: object - _key: '400' - description: Error in input data, for example, missing display name. + description: Error in input data, for example, missing API key name. schema: properties: - _key: code @@ -44722,11 +47756,17 @@ entities: type: subtenant_api_key return_type: subtenant_api_key summary: Create a new API key. - x_deprecation: null + 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_filter: {} - _key: delete description: 'Delete an API key. + Note: This endpoint is restricted to administrators. + **Example:** @@ -44735,7 +47775,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -44928,10 +47968,16 @@ entities: type: subtenant_api_key return_type: subtenant_api_key summary: Delete the API key. - x_deprecation: null + 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_filter: {} - _key: policy_groups - description: 'Retrieve groups associated with the API key. + description: 'Retrieve an array of policy groups associated with an API key. + + Note: This endpoint is restricted to administrators. **Example:** @@ -44941,7 +47987,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id}/groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -44966,7 +48012,7 @@ entities: type: string - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -45013,7 +48059,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -45049,7 +48095,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -45079,6 +48125,16 @@ entities: 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: [] + - _key: application_count + description: The number of applications in this group. + example: 0 + format: int32 + type: integer - _key: created_at description: Creation UTC time RFC3339. example: '2018-02-13T09:35:20Z' @@ -45152,8 +48208,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -45328,12 +48384,17 @@ entities: self: false type: subtenant_policy_group return_type: paginated_response(subtenant_policy_group) - summary: Get groups associated with the API key. - x_deprecation: null + summary: Get policy groups of an API key. + 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_filter: {} - _key: read - 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```" + 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```" drop_fields: - object - etag @@ -45457,7 +48518,7 @@ entities: in: body maxLength: 100 parameter_fieldname: name - required: true + required: false type: string - _key: object api_fieldname: object @@ -45653,11 +48714,17 @@ entities: type: subtenant_api_key return_type: subtenant_api_key summary: Get API key details. - x_deprecation: null + 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_filter: {} - _key: update description: 'Update API key details. + Note: This endpoint is restricted to administrators. + **Example:** @@ -45666,7 +48733,7 @@ entities: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/api-keys/{apikey_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -45723,7 +48790,7 @@ entities: in: body maxLength: 100 parameter_fieldname: name - required: true + required: false type: string - _key: owner api_fieldname: owner @@ -45833,7 +48900,7 @@ entities: in: body maxLength: 100 parameter_fieldname: name - required: true + required: false type: string - _key: object api_fieldname: object @@ -45880,7 +48947,7 @@ entities: - object type: object - _key: '400' - description: Error in input data, for example, missing display name. + description: Error in input data, for example, invalid API key name. schema: properties: - _key: code @@ -46077,7 +49144,11 @@ entities: type: subtenant_api_key return_type: subtenant_api_key summary: Update API key details. - x_deprecation: null + 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_filter: {} primary_key_field: id swagger_models: @@ -46141,8 +49212,9 @@ entities: group_id: Branding methods: - _key: delete - description: 'Resets the branding color of a tenant account to its dark theme - default. + description: 'Resets the branding color to its dark theme default. + + Note: This endpoint is restricted to administrators. **Example:** @@ -46152,7 +49224,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -46368,6 +49440,8 @@ entities: - _key: read description: 'Retrieve the requested dark theme branding color. + Note: This endpoint is restricted to administrators. + **Example:** @@ -46376,7 +49450,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -46647,7 +49721,9 @@ entities: - notes: Bulk operation is not appriate for SDK's entity model, this functionality is covered by the update method. operation_id: bulkSetAccountDarkColors - description: 'Update a dark theme branding color of a tenant account. + description: 'Update a dark theme branding color. + + Note: This endpoint is restricted to administrators. **Example:** @@ -46657,7 +49733,7 @@ entities: 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'' \ @@ -47072,6 +50148,8 @@ entities: - _key: delete description: 'Revert an account branding image to dark theme default. + Note: This endpoint is restricted to administrators. + **Example:** @@ -47080,7 +50158,7 @@ entities: 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 '' ```' drop_fields: @@ -47315,6 +50393,8 @@ entities: - _key: read description: 'Retrieve metadata of one account dark theme branding image. + Note: This endpoint is restricted to administrators. + **Example:** @@ -47323,7 +50403,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/dark/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -47604,8 +50684,10 @@ entities: - notes: The multipart endpoint is used by the SDKs as it offers the same functionality as the standard upload endpoint. operation_id: uploadAccountDarkImage - description: Upload a new account dark theme branding image as form data in PNG + description: 'Upload a new account dark theme branding image as form data in PNG or JPEG format. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -48002,6 +51084,154 @@ entities: readOnly: false required: true type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + foreign_key: + entity: oidc_request + group: Accounts + in: body + parameter_fieldname: oidc_attributes + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity provider's + API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign ID tokens. + PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + readOnly: false + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -48069,7 +51299,9 @@ entities: group_id: Accounts methods: - _key: create - description: Create a new identity provider. + description: 'Create a new identity provider. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -48127,12 +51359,10 @@ entities: api_fieldname: oidc_attributes description: Represents OIDC specific attributes. entity_fieldname: oidc_attributes - external_param: true foreign_key: entity: oidc_request group: Accounts in: body - name: oidc_attributes parameter_fieldname: oidc_attributes properties: - _key: authorization_endpoint @@ -48156,30 +51386,37 @@ entities: x-nullable: true - _key: email_verified description: Custom claim name for 'email_verified'. + example: email_verified type: string x-nullable: true - _key: family_name description: Custom claim name for 'family_name'. + example: family_name type: string x-nullable: true - _key: given_name description: Custom claim name for 'given_name'. + example: given_name type: string x-nullable: true - _key: name description: Custom claim name for 'name'. + example: name type: string x-nullable: true - _key: phone_number description: Custom claim name for 'phone_number'. + example: phone_number type: string x-nullable: true - _key: sub description: Custom claim name for 'sub'. + example: sub type: string x-nullable: true - _key: updated_at description: Custom claim name for 'updated_at'. + example: updated_at type: string x-nullable: true - _key: updated_at_pattern @@ -48252,7 +51489,7 @@ entities: 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: + enum: &id012 - POST - GET type: string @@ -48266,7 +51503,6 @@ entities: type: string x-nullable: true required: false - schema_param: true type: object - _key: saml2_attributes api_fieldname: saml2_attributes @@ -48316,7 +51552,7 @@ entities: api_fieldname: status description: Status of the identity provider. entity_fieldname: status - enum: &id012 + enum: &id013 - ACTIVE - SUSPENDED enum_reference: subtenant_identity_provider_status_enum @@ -48411,6 +51647,157 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + in: body + parameter_fieldname: oidc_attributes + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -48696,7 +52083,9 @@ entities: x_deprecation: null x_filter: {} - _key: delete - description: Delete an identity provider by ID. + description: 'Delete an identity provider by ID. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -48834,7 +52223,7 @@ entities: - type type: object - _key: '404' - description: Account or identity provider not found. + description: An account or identity provider not found. schema: properties: - _key: code @@ -48890,7 +52279,9 @@ entities: x_deprecation: null x_filter: {} - _key: delete_service_provider_certificate - description: Delete a service provider certificate. + description: 'Delete a service provider certificate. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -48902,6 +52293,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - is_default field_renames: [] fields: @@ -49009,6 +52401,157 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + in: body + parameter_fieldname: oidc_attributes + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -49190,7 +52733,7 @@ entities: - type type: object - _key: '404' - description: Account or identity provider not found. + description: An account or identity provider not found. schema: properties: - _key: code @@ -49246,7 +52789,9 @@ entities: x_deprecation: null x_filter: {} - _key: generate_service_provider_certificate - description: Generate a new service provider certificate. + description: 'Generate a new service provider certificate. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -49258,6 +52803,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - is_default field_renames: [] fields: @@ -49401,6 +52947,157 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + in: body + parameter_fieldname: oidc_attributes + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -49631,7 +53328,7 @@ entities: - type type: object - _key: '404' - description: Account or identity provider not found. + description: An account or identity provider not found. schema: properties: - _key: code @@ -49687,7 +53384,9 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: Retrieve identity providers in an array. + description: 'Retrieve an array of identity providers. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -49710,7 +53409,7 @@ entities: type: string - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -49747,7 +53446,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -49785,7 +53484,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -49841,6 +53540,154 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + description: Represents OIDC specific attributes. + foreign_key: + entity: oidc_request + group: Accounts + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access + to identity provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to + sign ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: + - issuer + type: object - _key: saml2_attributes description: Represents SAML2 specific attributes in responses. properties: @@ -49936,8 +53783,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -50116,7 +53963,9 @@ entities: x_deprecation: null x_filter: {} - _key: read - description: Manage identity providers of a tenant account. + description: 'Retrieve an identity provider. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -50128,6 +53977,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - is_default field_renames: [] fields: @@ -50231,6 +54081,157 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + in: body + parameter_fieldname: oidc_attributes + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -50412,7 +54413,7 @@ entities: - type type: object - _key: '404' - description: Account or identity provider not found. + description: An account or identity provider not found. schema: properties: - _key: code @@ -50464,11 +54465,13 @@ entities: self: true type: subtenant_identity_provider return_type: subtenant_identity_provider - summary: Retrieve identity provider by ID. + summary: Get an identity provider. x_deprecation: null x_filter: {} - _key: refresh_tokens - description: Refreshes an OIDC IdP's signing keys. + description: 'Refresh an OIDC IdP''s signing keys. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -50480,6 +54483,7 @@ entities: - description - status - saml2_attributes + - oidc_attributes - is_default field_renames: [] fields: @@ -50587,6 +54591,157 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + in: body + parameter_fieldname: oidc_attributes + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -50816,7 +54971,7 @@ entities: - type type: object - _key: '404' - description: Account or identity provider not found. + description: An account or identity provider not found. schema: properties: - _key: code @@ -50868,11 +55023,13 @@ entities: self: true type: subtenant_identity_provider return_type: subtenant_identity_provider - summary: Refreshes the OIDC signing keys. + summary: Refresh the OIDC signing keys. x_deprecation: null x_filter: {} - _key: update - description: Update an existing identity provider. + description: 'Update an existing identity provider. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -50939,12 +55096,10 @@ entities: api_fieldname: oidc_attributes description: Represents OIDC specific attributes. entity_fieldname: oidc_attributes - external_param: true foreign_key: entity: oidc_request group: Accounts in: body - name: oidc_attributes parameter_fieldname: oidc_attributes properties: - _key: authorization_endpoint @@ -50968,30 +55123,37 @@ entities: x-nullable: true - _key: email_verified description: Custom claim name for 'email_verified'. + example: email_verified type: string x-nullable: true - _key: family_name description: Custom claim name for 'family_name'. + example: family_name type: string x-nullable: true - _key: given_name description: Custom claim name for 'given_name'. + example: given_name type: string x-nullable: true - _key: name description: Custom claim name for 'name'. + example: name type: string x-nullable: true - _key: phone_number description: Custom claim name for 'phone_number'. + example: phone_number type: string x-nullable: true - _key: sub description: Custom claim name for 'sub'. + example: sub type: string x-nullable: true - _key: updated_at description: Custom claim name for 'updated_at'. + example: updated_at type: string x-nullable: true - _key: updated_at_pattern @@ -51064,9 +55226,7 @@ entities: 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 + enum: *id012 type: string - _key: token_response_path description: Path to the standard data in the token response. Levels in the @@ -51078,7 +55238,6 @@ entities: type: string x-nullable: true required: false - schema_param: true type: object - _key: saml2_attributes api_fieldname: saml2_attributes @@ -51128,7 +55287,7 @@ entities: api_fieldname: status description: Status of the identity provider. entity_fieldname: status - enum: *id012 + enum: *id013 enum_reference: subtenant_identity_provider_status_enum in: body parameter_fieldname: status @@ -51214,6 +55373,157 @@ entities: enum: - identity-provider type: string + - _key: oidc_attributes + api_fieldname: oidc_attributes + description: Represents OIDC specific attributes. + entity_fieldname: oidc_attributes + foreign_key: + entity: oidc_request + group: Accounts + in: body + parameter_fieldname: oidc_attributes + properties: + - _key: authorization_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: auto_enrollment + description: For future use. + type: boolean + x-nullable: true + - _key: claim_mapping + description: Mapping for non-standard OIDC claim names. + foreign_key: + entity: oidc_request_claim_mapping + group: Accounts + properties: + - _key: email + description: Custom claim name for 'email'. + example: email_address + type: string + x-nullable: true + - _key: email_verified + description: Custom claim name for 'email_verified'. + example: email_verified + type: string + x-nullable: true + - _key: family_name + description: Custom claim name for 'family_name'. + example: family_name + type: string + x-nullable: true + - _key: given_name + description: Custom claim name for 'given_name'. + example: given_name + type: string + x-nullable: true + - _key: name + description: Custom claim name for 'name'. + example: name + type: string + x-nullable: true + - _key: phone_number + description: Custom claim name for 'phone_number'. + example: phone_number + type: string + x-nullable: true + - _key: sub + description: Custom claim name for 'sub'. + example: sub + type: string + x-nullable: true + - _key: updated_at + description: Custom claim name for 'updated_at'. + example: updated_at + type: string + x-nullable: true + - _key: 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 + x-nullable: true + type: object + x-nullable: true + - _key: client_id + description: Client ID needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: client_secret + description: Client secret needed to authenticate and gain access to identity + provider's API. + type: string + x-nullable: true + - _key: end_session_endpoint + description: URL of the provider's end session endpoint. + type: string + x-nullable: true + - _key: issuer + description: Issuer of the identity provider. + type: string + - _key: jwks_uri + description: URL of the provider's JSON web key set document. + type: string + x-nullable: true + - _key: keys + description: Provider's public keys and key IDs used to sign ID tokens. + PEM-encoded. + items: + description: Represents provider's public key and key ID used to sign + ID tokens. PEM-encoded. + foreign_key: + entity: identity_provider_public_key + group: Accounts + properties: + - _key: key + description: The public key. + type: string + - _key: kid + description: The public key ID. + type: string + type: object + type: array + x-nullable: true + - _key: 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 + - _key: revocation_endpoint + description: URL of the provider's token revocation endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: token_endpoint + description: URL of the OAuth 2.0 authorization endpoint. + type: string + x-nullable: true + - _key: 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 + - _key: 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 + - _key: userinfo_endpoint + description: URL of the OAuth 2.0 UserInfo endpoint. + type: string + x-nullable: true + required: false + type: object - _key: saml2_attributes api_fieldname: saml2_attributes description: Represents SAML2 specific attributes in responses. @@ -51443,7 +55753,7 @@ entities: - type type: object - _key: '404' - description: Account or identity provider not found. + description: An account or identity provider not found. schema: properties: - _key: code @@ -51561,8 +55871,9 @@ entities: group_id: Branding methods: - _key: delete - description: 'Resets the branding color of a tenant account to its light theme - default. + description: 'Resets the branding color to its light theme default. + + Note: This endpoint is restricted to administrators. **Example:** @@ -51572,7 +55883,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -51597,7 +55908,7 @@ entities: api_fieldname: reference description: The name of the branding color. entity_fieldname: reference - enum: &id013 + enum: &id014 - error_color - primary - secondary @@ -51788,6 +56099,8 @@ entities: - _key: read description: 'Retrieve the requested light theme branding color. + Note: This endpoint is restricted to administrators. + **Example:** @@ -51795,7 +56108,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-colors/light/{reference} - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -51822,7 +56135,7 @@ entities: api_fieldname: reference description: Color name. entity_fieldname: reference - enum: *id013 + enum: *id014 enum_reference: subtenant_light_theme_color_reference_enum in: path is_primary_key: true @@ -52066,7 +56379,9 @@ entities: - notes: Bulk operation is not appriate for SDK's entity model, this functionality is covered by the update method. operation_id: bulkSetAccountLightColors - description: 'Update a light theme branding color of a tenant account. + description: 'Update a light theme branding color. + + Note: This endpoint is restricted to administrators. **Example:** @@ -52076,7 +56391,7 @@ entities: 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'' \ @@ -52115,7 +56430,7 @@ entities: api_fieldname: reference description: Color name. entity_fieldname: reference - enum: *id013 + enum: *id014 enum_reference: subtenant_light_theme_color_reference_enum in: path is_primary_key: true @@ -52491,13 +56806,15 @@ entities: - _key: delete 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 '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -52522,7 +56839,7 @@ entities: api_fieldname: reference description: Name of the branding images (icon or picture). entity_fieldname: reference - enum: &id014 + enum: &id015 - brand_logo_portrait - brand_logo_square - brand_logo_landscape @@ -52732,6 +57049,8 @@ entities: - _key: read description: 'Retrieve metadata for one account light theme branding image. + Note: This endpoint is restricted to administrators. + **Example:** @@ -52740,7 +57059,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/branding-images/light/{reference} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -52767,7 +57086,7 @@ entities: api_fieldname: reference description: Name of the image. entity_fieldname: reference - enum: *id014 + enum: *id015 enum_reference: subtenant_light_theme_image_reference_enum in: path is_primary_key: true @@ -53020,7 +57339,10 @@ entities: additional_operations: - notes: The multipart request is more generic and better supported by SDKs. operation_id: uploadAccountLightImage - description: Upload a new account branding image as form data in PNG or JPEG format. + description: 'Upload a new account branding image as form data in PNG or JPEG + format. + + Note: This endpoint is restricted to administrators.' drop_fields: - object - etag @@ -53055,7 +57377,7 @@ entities: api_fieldname: reference description: Name of the image. entity_fieldname: reference - enum: *id014 + enum: *id015 enum_reference: subtenant_light_theme_image_reference_enum in: path is_primary_key: true @@ -53383,6 +57705,19 @@ entities: readOnly: true required: false 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + example: 0 + format: int32 + readOnly: true + required: false + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -53430,7 +57765,9 @@ entities: group_id: Accounts methods: - _key: api_keys - description: 'List the API keys of the group with details. + description: 'Retrieve an array of API keys associated with a policy group. + + Note: This endpoint is restricted to administrators. **Example:** @@ -53440,7 +57777,7 @@ entities: 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 '' ```' drop_fields: @@ -53465,7 +57802,7 @@ entities: type: string - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -53512,7 +57849,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -53548,7 +57885,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -53671,8 +58008,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -53847,12 +58184,18 @@ entities: self: false type: subtenant_api_key return_type: paginated_response(subtenant_api_key) - summary: Get API keys of a group. - x_deprecation: null + summary: Get API keys in a group. + 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_filter: {} - _key: create description: 'Create a new group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -53861,7 +58204,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -53877,6 +58220,7 @@ entities: - created_at - updated_at - user_count + - application_count - apikey_count field_renames: [] fields: @@ -53904,6 +58248,16 @@ entities: 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: [] + - _key: applications + description: An array of applicationIDs. + items: + type: string + type: array - _key: users description: An array of user IDs. items: @@ -53955,6 +58309,18 @@ entities: 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + entity_fieldname: application_count + example: 0 + format: int32 + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -54269,6 +58635,8 @@ entities: - _key: delete description: 'Delete a group. + Note: This endpoint is restricted to administrators. + **Example:** @@ -54277,7 +58645,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -54473,7 +58841,9 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'Retrieve all group information. + description: 'Retrieve an array of policy groups. + + Note: This endpoint is restricted to administrators. **Example:** @@ -54483,7 +58853,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -54509,7 +58879,7 @@ entities: type: string - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -54546,7 +58916,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -54584,7 +58954,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -54614,6 +58984,16 @@ entities: 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: [] + - _key: application_count + description: The number of applications in this group. + example: 0 + format: int32 + type: integer - _key: created_at description: Creation UTC time RFC3339. example: '2018-02-13T09:35:20Z' @@ -54687,8 +59067,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -54863,13 +59243,15 @@ entities: self: true type: subtenant_policy_group return_type: paginated_response(subtenant_policy_group) - summary: Get all group information. + summary: Get policy groups. x_deprecation: null x_filter: name: - eq - _key: read - description: 'Retrieve general information about the group. + description: 'Retrieve policy group details. + + Note: This endpoint is restricted to administrators. **Example:** @@ -54879,7 +59261,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/policy-groups/{group_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -54891,6 +59273,7 @@ entities: - updated_at - name - user_count + - application_count - apikey_count field_renames: [] fields: @@ -54947,6 +59330,18 @@ entities: 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + entity_fieldname: application_count + example: 0 + format: int32 + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -55159,12 +59554,14 @@ entities: self: true type: subtenant_policy_group return_type: subtenant_policy_group - summary: Get group information. + summary: Get policy group. x_deprecation: null x_filter: {} - _key: update description: 'Update a group name. + Note: This endpoint is restricted to administrators. + **Example:** @@ -55173,7 +59570,7 @@ entities: curl -X PUT 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'' \ @@ -55188,6 +59585,7 @@ entities: - created_at - updated_at - user_count + - application_count - apikey_count field_renames: [] fields: @@ -55254,6 +59652,18 @@ entities: 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: [] + - _key: application_count + api_fieldname: application_count + description: The number of applications in this group. + entity_fieldname: application_count + example: 0 + format: int32 + type: integer - _key: created_at api_fieldname: created_at description: Creation UTC time RFC3339. @@ -55518,7 +59928,9 @@ entities: x_deprecation: null x_filter: {} - _key: users - description: 'List a group''s users, with details. + description: 'Retrieve an array of users associated with a policy group. + + Note: This endpoint is restricted to administrators. **Example:** @@ -55528,7 +59940,7 @@ entities: 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 '' ```' drop_fields: @@ -55556,7 +59968,7 @@ entities: type: string - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -55603,7 +60015,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -55639,7 +60051,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -55853,11 +60265,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -55865,6 +60285,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -55876,6 +60297,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -55976,8 +60398,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -56152,7 +60574,7 @@ entities: self: false type: subtenant_user return_type: paginated_response(subtenant_user) - summary: Get users of a group. + summary: Get users in a policy group. x_deprecation: null x_filter: status: @@ -56225,13 +60647,19 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default value + is false.' example: false in: body parameter_fieldname: enrollment_mode readOnly: false required: 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: [] - _key: id api_fieldname: id description: Entity ID. @@ -56336,7 +60764,9 @@ entities: group_id: Security methods: - _key: create - description: 'Upload new trusted certificates. + description: 'Upload new trusted certificate. + + Note: This endpoint is restricted to administrators. **Example:** @@ -56346,7 +60776,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -56404,13 +60834,19 @@ entities: x-nullable: true - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default value + is false.' entity_fieldname: enrollment_mode example: false in: body parameter_fieldname: enrollment_mode required: 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: &id016 [] - _key: is_developer_certificate _override: true api_fieldname: is_developer_certificate @@ -56434,7 +60870,7 @@ entities: api_fieldname: service description: Service name where the certificate is used. entity_fieldname: service - enum: &id015 + enum: &id017 - lwm2m - bootstrap enum_reference: subtenant_trusted_certificate_service_enum @@ -56446,7 +60882,7 @@ entities: api_fieldname: status description: Status of the certificate. entity_fieldname: status - enum: &id016 + enum: &id018 - ACTIVE - INACTIVE enum_reference: subtenant_trusted_certificate_status_enum @@ -56522,13 +60958,19 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default + value is false.' entity_fieldname: enrollment_mode example: false in: body parameter_fieldname: enrollment_mode required: 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: [] - _key: etag api_fieldname: etag description: API resource entity version. @@ -56740,7 +61182,7 @@ entities: - type type: object - _key: '403' - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden, only available for administrators of commercial accounts. schema: properties: - _key: code @@ -56844,7 +61286,9 @@ entities: x_deprecation: null x_filter: {} - _key: delete - description: 'Delete the trusted certificate. + description: 'Delete a trusted certificate. + + Note: This endpoint is restricted to administrators. **Example:** @@ -56854,7 +61298,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -56956,7 +61400,7 @@ entities: - type type: object - _key: '403' - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden, only available for administrators of commercial accounts. schema: properties: - _key: code @@ -57004,7 +61448,7 @@ entities: - type type: object - _key: '404' - description: Account or certificate with the given ID not found. + description: An account or certificate with the given ID not found. schema: properties: - _key: code @@ -57056,7 +61500,7 @@ entities: self: true type: subtenant_trusted_certificate return_type: subtenant_trusted_certificate - summary: Delete trusted certificate by ID. + summary: Delete a trusted certificate by ID. x_deprecation: null x_filter: {} - _key: get_developer_certificate_info @@ -57071,7 +61515,7 @@ entities: curl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -57548,7 +61992,9 @@ entities: x_deprecation: null x_filter: {} - _key: read - description: 'Retrieve a trusted certificate by ID. + description: 'Retrieve a trusted certificate. + + Note: This endpoint is restricted to administrators. **Example:** @@ -57558,7 +62004,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -57681,13 +62127,19 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default + value is false.' entity_fieldname: enrollment_mode example: false in: body parameter_fieldname: enrollment_mode required: 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: [] - _key: etag api_fieldname: etag description: API resource entity version. @@ -57850,7 +62302,7 @@ entities: - type type: object - _key: '403' - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden, only available for administrators of commercial accounts. schema: properties: - _key: code @@ -57898,7 +62350,7 @@ entities: - type type: object - _key: '404' - description: Account or certificate with the given ID not found. + description: An account or certificate with the given ID not found. schema: properties: - _key: code @@ -57950,13 +62402,13 @@ entities: self: true type: subtenant_trusted_certificate return_type: subtenant_trusted_certificate - summary: Get trusted certificate by ID. + summary: Get a trusted certificate. x_deprecation: null x_filter: {} - _key: update - 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'\ + 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 ```" drop_fields: - object @@ -58007,13 +62459,19 @@ entities: x-nullable: true - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default value + is false.' entity_fieldname: enrollment_mode example: false in: body parameter_fieldname: enrollment_mode required: 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: *id016 - _key: id api_fieldname: id description: Entity ID. @@ -58047,7 +62505,7 @@ entities: api_fieldname: service description: Service name where the certificate is used. entity_fieldname: service - enum: *id015 + enum: *id017 enum_reference: subtenant_trusted_certificate_service_enum in: body parameter_fieldname: service @@ -58057,7 +62515,7 @@ entities: api_fieldname: status description: Status of the certificate. entity_fieldname: status - enum: *id016 + enum: *id018 enum_reference: subtenant_trusted_certificate_status_enum example: ACTIVE in: body @@ -58133,13 +62591,19 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default + value is false.' entity_fieldname: enrollment_mode example: false in: body parameter_fieldname: enrollment_mode required: 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: [] - _key: etag api_fieldname: etag description: API resource entity version. @@ -58351,7 +62815,7 @@ entities: - type type: object - _key: '403' - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden, only available for administrators of commercial accounts. schema: properties: - _key: code @@ -58461,8 +62925,8 @@ entities: - TrustedCertificateResp - TrustedCertificateUpdateReq tags: - - Tenant device security - certificates - - Device security - developer class certificates + - Tenant security and identity - certificates + - Security and identity - developer class certificates - _key: subtenant_user field_renames: [] fields: @@ -58719,11 +63183,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -58731,6 +63203,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -58742,6 +63215,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -58836,6 +63310,8 @@ entities: 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:** @@ -58844,7 +63320,7 @@ entities: 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'' \ @@ -58965,11 +63441,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -58977,20 +63461,22 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type api_fieldname: type description: Identity provider type. entity_fieldname: login_profile_type - enum: &id017 + enum: &id019 - NATIVE - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string - required: &id018 + required: &id020 - id type: object parameter_fieldname: login_profiles @@ -59303,11 +63789,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -59315,6 +63809,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -59326,6 +63821,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -59676,6 +64172,8 @@ entities: - _key: delete description: 'Delete a user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -59684,7 +64182,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -59928,7 +64426,9 @@ entities: x_deprecation: null x_filter: {} - _key: policy_groups - description: 'Retrieve user''s groups. + description: 'Retrieve an array of policy groups associated with a user. + + Note: This endpoint is restricted to administrators. **Example:** @@ -59938,7 +64438,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id}/groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -59963,7 +64463,7 @@ entities: type: string - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -60010,7 +64510,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -60046,7 +64546,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -60076,6 +64576,16 @@ entities: 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: [] + - _key: application_count + description: The number of applications in this group. + example: 0 + format: int32 + type: integer - _key: created_at description: Creation UTC time RFC3339. example: '2018-02-13T09:35:20Z' @@ -60149,8 +64659,8 @@ entities: - _key: order api_fieldname: order 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.' entity_fieldname: order enum: - ASC @@ -60325,12 +64835,14 @@ entities: self: false type: subtenant_policy_group return_type: paginated_response(subtenant_policy_group) - summary: Get user's groups. + summary: Get policy groups for a user. x_deprecation: null x_filter: {} - _key: read description: 'Retrieve user details. + Note: This endpoint is restricted to administrators. + **Example:** @@ -60339,7 +64851,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/users/{user_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -60664,11 +65176,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -60676,6 +65196,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -60687,6 +65208,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -60941,6 +65463,8 @@ entities: - _key: update description: 'Update user details. + Note: This endpoint is restricted to administrators. + **Example:** @@ -60949,7 +65473,7 @@ entities: 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'' \ @@ -61070,11 +65594,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -61082,16 +65614,18 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type api_fieldname: type description: Identity provider type. entity_fieldname: login_profile_type - enum: *id017 + enum: *id019 + example: NATIVE readOnly: true type: string - required: *id018 + required: *id020 type: object parameter_fieldname: login_profiles required: false @@ -61392,11 +65926,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -61404,6 +65946,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -61415,6 +65958,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -61765,6 +66309,8 @@ entities: - _key: validate_email description: 'Validate user email. + Note: This endpoint is restricted to administrators. + **Example:** @@ -61773,7 +66319,7 @@ entities: 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 '' ```' drop_fields: @@ -62044,11 +66590,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -62056,6 +66610,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -62067,6 +66622,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -62098,6 +66654,8 @@ entities: - _key: create description: 'Invite a new or existing user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -62106,7 +66664,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/accouns/{account_id}/user-invitations \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -62167,11 +66725,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -62179,6 +66745,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -62190,6 +66757,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -62302,11 +66870,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -62314,6 +66890,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -62325,6 +66902,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -62518,6 +67096,8 @@ entities: - _key: delete description: 'Delete an active user invitation sent to a new or existing user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -62526,7 +67106,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -62725,6 +67305,8 @@ entities: description: 'Retrieve details of an active user invitation sent for a new or existing user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -62733,7 +67315,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/accounts/{account_id}/user-invitations/{invitation_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -62858,11 +67440,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -62870,6 +67460,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -62881,6 +67472,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -63129,11 +67721,17 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default value + is false.' example: false readOnly: false required: 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: [] - _key: id api_fieldname: id description: Entity ID. @@ -63232,6 +67830,8 @@ entities: - _key: create description: 'Upload new trusted certificates. + Note: This endpoint is restricted to administrators. + **Example:** @@ -63239,7 +67839,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -63288,13 +67888,19 @@ entities: x-nullable: true - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default value + is false.' entity_fieldname: enrollment_mode example: false in: body parameter_fieldname: enrollment_mode required: 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: &id021 [] - _key: is_developer_certificate _override: true api_fieldname: is_developer_certificate @@ -63318,7 +67924,7 @@ entities: api_fieldname: service description: Service name where the certificate is used. entity_fieldname: service - enum: &id019 + enum: &id022 - lwm2m - bootstrap enum_reference: trusted_certificate_service_enum @@ -63330,7 +67936,7 @@ entities: api_fieldname: status description: Status of the certificate. entity_fieldname: status - enum: &id020 + enum: &id023 - ACTIVE - INACTIVE enum_reference: trusted_certificate_status_enum @@ -63400,10 +68006,16 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default + value is false.' entity_fieldname: enrollment_mode 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: [] - _key: etag api_fieldname: etag description: API resource entity version. @@ -63600,7 +68212,7 @@ entities: - type type: object - _key: '403' - description: Forbidden, only available for admins of commercial accounts. + description: Forbidden, only available for administrators of commercial accounts. schema: properties: - _key: code @@ -63714,7 +68326,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -63854,7 +68466,7 @@ entities: - type type: object - _key: '404' - description: Certificate not found. + description: A certificate not found. schema: properties: - _key: code @@ -63921,7 +68533,7 @@ entities: curl -X GET http://api.us-east-1.mbedcloud.com/v3/developer-certificates/THE_CERTIFICATE_ID \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " ```' drop_fields: @@ -64398,7 +69010,7 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'Retrieve trusted certificates in an array. + description: 'Retrieve an array of trusted certificates. **Example:** @@ -64407,7 +69019,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -64429,12 +69041,13 @@ entities: - status__eq - issuer__like - subject__like + - certificate_fingerprint__eq - valid__eq field_renames: [] fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -64480,7 +69093,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -64516,7 +69129,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -64561,9 +69174,15 @@ entities: format: int32 type: integer - _key: enrollment_mode - description: If true, signature is not required. Default value false. + 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: [] - _key: etag description: API resource entity version. example: '1' @@ -64787,6 +69406,8 @@ entities: summary: Get all trusted certificates. x_deprecation: null x_filter: + certificate_fingerprint: + - eq device_execution_mode: - eq - neq @@ -64809,7 +69430,7 @@ entities: valid: - eq - _key: read - description: 'Retrieve a trusted certificate by ID. + description: 'Retrieve a trusted certificate. **Example:** @@ -64819,7 +69440,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -64927,10 +69548,16 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default + value is false.' entity_fieldname: enrollment_mode 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: [] - _key: etag api_fieldname: etag description: API resource entity version. @@ -65127,7 +69754,7 @@ entities: - type type: object - _key: '404' - description: Certificate not found. + description: A certificate not found. schema: properties: - _key: code @@ -65179,7 +69806,7 @@ entities: self: true type: trusted_certificate return_type: trusted_certificate - summary: Get trusted certificate by ID. + summary: Get a trusted certificate. x_deprecation: null x_filter: {} - _key: update @@ -65193,7 +69820,7 @@ entities: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/trusted-certificates/{cert_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -65240,13 +69867,19 @@ entities: x-nullable: true - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default value + is false.' entity_fieldname: enrollment_mode example: false in: body parameter_fieldname: enrollment_mode required: 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: *id021 - _key: id api_fieldname: id description: Entity ID. @@ -65280,7 +69913,7 @@ entities: api_fieldname: service description: Service name where the certificate is used. entity_fieldname: service - enum: *id019 + enum: *id022 enum_reference: trusted_certificate_service_enum in: body parameter_fieldname: service @@ -65290,7 +69923,7 @@ entities: api_fieldname: status description: Status of the certificate. entity_fieldname: status - enum: *id020 + enum: *id023 enum_reference: trusted_certificate_status_enum example: ACTIVE in: body @@ -65360,10 +69993,16 @@ entities: type: integer - _key: enrollment_mode api_fieldname: enrollment_mode - description: If true, signature is not required. Default value false. + description: 'DEPRECATED: Certificate is used in enrollment mode. Default + value is false.' entity_fieldname: enrollment_mode 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: [] - _key: etag api_fieldname: etag description: API resource entity version. @@ -65608,7 +70247,7 @@ entities: - type type: object - _key: '404' - description: Certificate not found. + description: A certificate not found. schema: properties: - _key: code @@ -65719,8 +70358,8 @@ entities: - TrustedCertificateRespList - TrustedCertificateUpdateReq tags: - - Device security - certificates - - Device security - developer class certificates + - Security and identity - certificates + - Security and identity - developer class certificates - _key: update_campaign field_renames: [] fields: @@ -65802,8 +70441,9 @@ entities: type: string - _key: device_filter api_fieldname: device_filter - description: The filter for the devices the campaign is targeting at. - example: id__eq=00000000000000000000000000000000 + description: The filter for the devices the campaign targets. Refer to this using + the filter ID. + example: state__eq=registered readOnly: false required: true type: string @@ -65831,7 +70471,8 @@ entities: - _key: id api_fieldname: id description: The campaign ID. - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 + pattern: '[A-Fa-f0-9]{32}' readOnly: false required: true type: string @@ -65864,7 +70505,7 @@ entities: api_fieldname: root_manifest_id description: The ID of the manifest that will be sent to the device as part of the campaign. - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 readOnly: false required: false type: string @@ -65872,7 +70513,7 @@ entities: api_fieldname: root_manifest_url description: The URL for the manifest that will be sent to the device as part of the campaign. - example: http://example.com/00000000000000000000000000000000 + example: https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102 readOnly: true required: false type: string @@ -65922,7 +70563,7 @@ entities: within 1 minute when then start time has elapsed. example: '2017-05-22T12:37:55.576563Z' format: date-time - readOnly: true + readOnly: false required: false type: string x-nullable: true @@ -65937,10 +70578,10 @@ entities: ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/archive + curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/016e83ddc649000000000001001000b8/archive \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -65971,10 +70612,9 @@ entities: entity_fieldname: id external_param: false in: path - maxLength: 32 - minLength: 32 name: campaign_id parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -65992,12 +70632,196 @@ entities: description: The campaign has been archived. - _key: '400' description: Unable to change the phase of the campaign. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Cannot find the campaign. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '409' description: Cannot archive the campaign while in the current phase. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -66007,13 +70831,13 @@ entities: x_deprecation: null x_filter: {} - _key: create - description: "Create an update campaign.\n
\n**Usage example:**\n```\ncurl\ - \ -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns \\\n-H 'Authorization:\ - \ ' \\\n-H 'content-type: application/json;charset=UTF-8'\ + description: "Create an update campaign.\n\nTo include a filter for targeted devices,\ + \ refer to the filter using `` in the message body.\n
\n**Usage\ + \ example:**\n```\ncurl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns\ + \ \\\n-H 'Authorization: Bearer ' \\\n-H 'content-type: application/json;charset=UTF-8'\ \ \\\n-d '{\n \"campaign_strategy\": \"one-shot\",\n \"description\": \"Campaign\ - \ is for ...\",\n \"device_filter\": \"id__eq=123400000000000000000000000ae45\"\ - ,\n \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\"\ - ,\n}'\n```\n" + \ is for ...\",\n \"device_filter\": \"\",\n \"name\": \"campaign\"\ + ,\n \"root_manifest_id\": \"56780000000000a5b70000000000bd98\"\n}'\n```\n" drop_fields: - object - etag @@ -66033,7 +70857,6 @@ entities: - stopping_at - stopped_at - phase - - when field_renames: [] fields: - _key: approval_required @@ -66092,9 +70915,10 @@ entities: type: string - _key: device_filter api_fieldname: device_filter - description: The filter for the devices the campaign is targeting at. + description: The filter for the devices the campaign targets. Refer to this + using the filter ID. entity_fieldname: device_filter - example: id__eq=00000000000000000000000000000000 + example: state__eq=registered in: body parameter_fieldname: device_filter required: false @@ -66126,11 +70950,23 @@ entities: description: The ID of the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_id - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 in: body parameter_fieldname: root_manifest_id required: false type: string + - _key: when + api_fieldname: when + description: The scheduled start time for the campaign. The campaign will start + within 1 minute when then start time has elapsed. + entity_fieldname: when + example: '2017-05-22T12:37:55.576563Z' + format: date-time + in: body + parameter_fieldname: when + required: false + type: string + x-nullable: true group_id: Device_Update method: post mode: create @@ -66218,9 +71054,10 @@ entities: type: string device_filter: api_fieldname: device_filter - description: The filter for the devices the campaign is targeting at. + description: The filter for the devices the campaign targets. Refer to this + using the filter ID. entity_fieldname: device_filter - example: id__eq=00000000000000000000000000000000 + example: state__eq=registered type: string etag: api_fieldname: etag @@ -66239,7 +71076,8 @@ entities: api_fieldname: id description: The campaign ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 + pattern: '[A-Fa-f0-9]{32}' type: string name: api_fieldname: name @@ -66252,6 +71090,7 @@ entities: api_fieldname: object description: 'Entity name: always ''update-campaign''.' entity_fieldname: object + example: update-campaign type: string phase: api_fieldname: phase @@ -66273,14 +71112,14 @@ entities: description: The ID of the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_id - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 type: string root_manifest_url: api_fieldname: root_manifest_url description: The URL for the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_url - example: http://example.com/00000000000000000000000000000000 + example: https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102 type: string started_at: api_fieldname: started_at @@ -66361,8 +71200,148 @@ entities: validate. ' + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object + - _key: '409' + description: Conflict, a campaign with the same name already exists + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -66380,10 +71359,10 @@ entities: ``` - curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012 + curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/update-campaigns/1123457f9012ab567890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -66414,10 +71393,9 @@ entities: entity_fieldname: id external_param: false in: path - maxLength: 32 - minLength: 32 name: campaign_id parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -66438,10 +71416,148 @@ entities: validate. ' + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Update campaign can't be found. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '409' description: Conflict - Cannot delete the campaign while in the current phase. schema: @@ -66507,10 +71623,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/campaign-device-metadata + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56790120000789012/campaign-device-metadata \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -66555,10 +71671,9 @@ entities: entity_fieldname: id external_param: false in: path - maxLength: 32 - minLength: 32 name: campaign_id parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - _key: include @@ -66693,6 +71808,7 @@ entities: example: 015c3029f6f7000000000001001000c3 in: path parameter_fieldname: campaign_device_metadata_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - _key: mechanism @@ -66717,6 +71833,7 @@ entities: api_fieldname: object description: 'The entity name: always ''update-campaign-device-metadata''.' entity_fieldname: object + example: update-campaign-device-metadata type: string - _key: updated_at api_fieldname: updated_at @@ -66747,6 +71864,7 @@ entities: api_fieldname: object description: 'The entity name: always ''list''.' entity_fieldname: object + example: list type: string - _key: order api_fieldname: order @@ -66787,7 +71905,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -67000,8 +72118,9 @@ entities: maxLength: 2000 type: string device_filter: - description: The filter for the devices the campaign is targeting at. - example: id__eq=00000000000000000000000000000000 + description: The filter for the devices the campaign targets. Refer + to this using the filter ID. + example: state__eq=registered type: string etag: api_fieldname: etag @@ -67016,7 +72135,8 @@ entities: type: string id: description: The campaign ID. - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 + pattern: '[A-Fa-f0-9]{32}' type: string name: description: The campaign name. @@ -67025,6 +72145,7 @@ entities: type: string object: description: 'Entity name: always ''update-campaign''.' + example: update-campaign type: string phase: description: The phase of the campaign. @@ -67042,12 +72163,12 @@ entities: root_manifest_id: description: The ID of the manifest that will be sent to the device as part of the campaign. - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 type: string root_manifest_url: description: The URL for the manifest that will be sent to the device as part of the campaign. - example: http://example.com/00000000000000000000000000000000 + example: https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102 type: string started_at: description: The time the campaign was started. @@ -67124,6 +72245,7 @@ entities: api_fieldname: object description: 'Entity name: always ''list''.' entity_fieldname: object + example: list type: string - _key: order api_fieldname: order @@ -67144,10 +72266,148 @@ entities: validate. ' + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Unable to find content. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -67220,10 +72480,10 @@ entities: ``` - curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012 + curl -X GET https://api.us-east-1.mbedcloud.com/v3/update-campaigns/11234567f9012ab56890120000789012 \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -67273,9 +72533,10 @@ entities: api_fieldname: id description: The campaign ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 in: path parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -67365,9 +72626,10 @@ entities: type: string device_filter: api_fieldname: device_filter - description: The filter for the devices the campaign is targeting at. + description: The filter for the devices the campaign targets. Refer to this + using the filter ID. entity_fieldname: device_filter - example: id__eq=00000000000000000000000000000000 + example: state__eq=registered type: string etag: api_fieldname: etag @@ -67386,7 +72648,8 @@ entities: api_fieldname: id description: The campaign ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 + pattern: '[A-Fa-f0-9]{32}' type: string name: api_fieldname: name @@ -67399,6 +72662,7 @@ entities: api_fieldname: object description: 'Entity name: always ''update-campaign''.' entity_fieldname: object + example: update-campaign type: string phase: api_fieldname: phase @@ -67420,14 +72684,14 @@ entities: description: The ID of the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_id - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 type: string root_manifest_url: api_fieldname: root_manifest_url description: The URL for the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_url - example: http://example.com/00000000000000000000000000000000 + example: https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102 type: string started_at: api_fieldname: started_at @@ -67508,10 +72772,148 @@ entities: validate. ' + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Unable to find campaign. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -67529,10 +72931,10 @@ entities: ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/start + curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/5d645eaec2315a8900002e655cd94fa8/start \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -67563,10 +72965,9 @@ entities: entity_fieldname: id external_param: false in: path - maxLength: 32 - minLength: 32 name: campaign_id parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -67584,12 +72985,196 @@ entities: description: The campaign is starting. - _key: '400' description: Unable to change the phase of the campaign. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Cannot find the campaign. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '409' description: Cannot start the campaign while in the current phase. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -67600,7 +73185,7 @@ entities: x_filter: {} - _key: stop description: 'Stop a campaign. Stopping is a process that requires the campaign - go through several [phases](../updating-firmware/running-update-campaigns.html#stopping). + go through several [phases](https://www.pelion.com/docs/device-management/current/updating-firmware/device-management-update-using-the-apis.html).
@@ -67608,10 +73193,10 @@ entities: ``` - curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012/stop + curl -X POST https://api.us-east-1.mbedcloud.com/v3/update-campaigns/016e83ddc645000000000001001000b5/stop \ - -H ''Authorization: '' + -H ''Authorization: Bearer '' ``` @@ -67642,10 +73227,9 @@ entities: entity_fieldname: id external_param: false in: path - maxLength: 32 - minLength: 32 name: campaign_id parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string group_id: Device_Update @@ -67663,12 +73247,196 @@ entities: description: The campaign is stopping. - _key: '400' description: Unable to change the phase of the campaign. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '401' description: Not authenticated. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '404' description: Cannot find the campaign. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object - _key: '409' description: Cannot stop the campaign while in the current phase. + schema: + properties: + - _key: code + description: HTTP response code + example: 400 + format: int32 + type: integer + - _key: fields + description: Request fields which failed validation. + items: + properties: + - _key: message + description: Message describing the error condition. + type: string + - _key: name + description: Name of the field which caused the error. + type: string + required: + - name + - message + type: object + type: array + - _key: message + description: A human readable informative explanation + example: Validation error + type: string + - _key: object + description: Entity name, always `error`. + enum: + - error + type: string + - _key: request_id + description: ID of the request. + example: 0161991d63150242ac12000600000000 + type: string + - _key: type + description: Error type used to categorise the error. + example: validation_error + type: string + required: + - code + - message + - object + - request_id + - type + type: object return_info: custom: false self: true @@ -67679,10 +73447,10 @@ entities: x_filter: {} - _key: update description: "Modify an update campaign.\n
\n**Usage example:**\n```\ncurl\ - \ -X PUT https://api.us-east-1.mbedcloud.com/v3/update-campaigns/12345678901234567890123456789012\ - \ \\\n-H 'Authorization: ' \\\nd '{\n \"description\":\ - \ \"Campaign is for ...\",\n \"device_filter\": \"id__eq=123400000000000000000000000ae45\"\ - ,\n \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\"\ + \ -X PUT https://api.us-east-1.mbedcloud.com/v3/update-campaigns/1123007f9012ab567890120000789012\ + \ \\\n-H 'Authorization: Bearer ' \\\nd '{\n \"description\": \"Campaign\ + \ is for ...\",\n \"device_filter\": \"123400000000000000000000000ae45\",\n\ + \ \"name\": \"campaign\",\n \"root_manifest_id\": \"5678000000000000000000000000bd98\"\ ,\n}'\n```\n" drop_fields: - object @@ -67703,7 +73471,6 @@ entities: - stopping_at - stopped_at - phase - - when field_renames: [] fields: - _key: approval_required @@ -67747,9 +73514,10 @@ entities: type: string - _key: device_filter api_fieldname: device_filter - description: The filter for the devices the campaign is targeting at. + description: The filter for the devices the campaign targets. Refer to this + using the filter ID. entity_fieldname: device_filter - example: id__eq=00000000000000000000000000000000 + example: state__eq=registered in: body parameter_fieldname: device_filter required: false @@ -67770,9 +73538,10 @@ entities: api_fieldname: id description: The campaign ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 in: path parameter_fieldname: campaign_id + pattern: '[A-Fa-f0-9]{32}' required: true type: string - _key: name @@ -67790,11 +73559,23 @@ entities: description: The ID of the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_id - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 in: body parameter_fieldname: root_manifest_id required: false type: string + - _key: when + api_fieldname: when + description: The scheduled start time for the campaign. The campaign will start + within 1 minute when then start time has elapsed. + entity_fieldname: when + example: '2017-05-22T12:37:55.576563Z' + format: date-time + in: body + parameter_fieldname: when + required: false + type: string + x-nullable: true group_id: Device_Update method: put mode: update @@ -67882,9 +73663,10 @@ entities: type: string device_filter: api_fieldname: device_filter - description: The filter for the devices the campaign is targeting at. + description: The filter for the devices the campaign targets. Refer to this + using the filter ID. entity_fieldname: device_filter - example: id__eq=00000000000000000000000000000000 + example: state__eq=registered type: string etag: api_fieldname: etag @@ -67903,7 +73685,8 @@ entities: api_fieldname: id description: The campaign ID. entity_fieldname: id - example: '00000000000000000000000000000000' + example: 016e83ddc648000000000001001000f5 + pattern: '[A-Fa-f0-9]{32}' type: string name: api_fieldname: name @@ -67916,6 +73699,7 @@ entities: api_fieldname: object description: 'Entity name: always ''update-campaign''.' entity_fieldname: object + example: update-campaign type: string phase: api_fieldname: phase @@ -67937,14 +73721,14 @@ entities: description: The ID of the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_id - example: '00000000000000000000000000000000' + example: 016e83dce36a00000000000100100102 type: string root_manifest_url: api_fieldname: root_manifest_url description: The URL for the manifest that will be sent to the device as part of the campaign. entity_fieldname: root_manifest_url - example: http://example.com/00000000000000000000000000000000 + example: https://api.us-east-1.mbedcloud.com/v3/firmware-manifests/016e83dce36a00000000000100100102 type: string started_at: api_fieldname: started_at @@ -68288,11 +74072,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -68300,6 +74092,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -68311,6 +74104,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -68393,8 +74187,10 @@ entities: group_id: Accounts methods: - _key: create - description: 'Create or invite a new user to the account. Only email address is - used; other attributes are set in the second step. + description: 'Create or invite a new user to the account. The invited user has + to accept the invitation by clicking the link in the invitation email. + + Note: This endpoint is restricted to administrators. **Example:** @@ -68403,7 +74199,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/users?action=invite \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -68515,11 +74311,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -68527,20 +74331,22 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type api_fieldname: type description: Identity provider type. entity_fieldname: login_profile_type - enum: &id021 + enum: &id024 - NATIVE - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string - required: &id022 + required: &id025 - id type: object parameter_fieldname: login_profiles @@ -68828,11 +74634,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -68840,6 +74654,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -68851,6 +74666,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -69139,6 +74955,8 @@ entities: - _key: delete description: 'Delete a user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -69146,7 +74964,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -69380,7 +75198,9 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'Retrieve the details of all users. + description: 'Retrieve an array of users. + + Note: This endpoint is restricted to administrators. **Example:** @@ -69389,7 +75209,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/users \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -69409,7 +75229,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -69446,7 +75266,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -69484,7 +75304,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -69693,11 +75513,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -69705,6 +75533,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -69716,6 +75545,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -69931,7 +75761,7 @@ entities: self: true type: user return_type: paginated_response(user) - summary: Get the details of all users. + summary: Get users. x_deprecation: null x_filter: email: @@ -69943,7 +75773,9 @@ entities: - in - nin - _key: policy_groups - description: 'Retrieve groups of the user. + description: 'Retrieve an array of policy groups associated with a user. + + Note: This endpoint is restricted to administrators. **Example:** @@ -69952,7 +75784,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id}/groups \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -69967,7 +75799,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -70014,7 +75846,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -70050,7 +75882,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -70075,6 +75907,16 @@ entities: 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: [] + - _key: application_count + description: The number of applications in this group. + example: 0 + format: int32 + type: integer - _key: created_at description: Creation UTC time RFC3339. example: '2018-02-13T09:35:20Z' @@ -70311,12 +76153,14 @@ entities: self: false type: policy_group return_type: paginated_response(policy_group) - summary: Get groups of the user. + summary: Get policy groups for a user. x_deprecation: null x_filter: {} - _key: read description: 'Retrieve the details of a user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -70324,7 +76168,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -70615,11 +76459,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -70627,6 +76479,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -70638,6 +76491,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -70876,7 +76730,9 @@ entities: x_deprecation: null x_filter: {} - _key: update - description: 'Update user details + description: 'Update user details. + + Note: This endpoint is restricted to administrators. **Example:** @@ -70885,7 +76741,7 @@ entities: curl -X PUT https://api.us-east-1.mbedcloud.com/v3/users/{user_id} \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -70997,11 +76853,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -71009,16 +76873,18 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type api_fieldname: type description: Identity provider type. entity_fieldname: login_profile_type - enum: *id021 + enum: *id024 + example: NATIVE readOnly: true type: string - required: *id022 + required: *id025 type: object parameter_fieldname: login_profiles required: false @@ -71294,11 +77160,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -71306,6 +77180,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -71317,6 +77192,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -71720,11 +77596,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -71732,6 +77616,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -71743,6 +77628,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -71773,6 +77659,8 @@ entities: - _key: create description: 'Invite a new or existing user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -71780,7 +77668,7 @@ entities: curl -X POST https://api.us-east-1.mbedcloud.com/v3/user-invitations \ - -H ''Authorization: Bearer '' \ + -H ''Authorization: Bearer '' \ -H ''content-type: application/json'' \ @@ -71832,11 +77720,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -71844,6 +77740,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -71855,6 +77752,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -71957,11 +77855,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -71969,6 +77875,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -71980,6 +77887,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -72171,6 +78079,8 @@ entities: - _key: delete description: 'Delete an active user invitation sent to a new or existing user. + Note: This endpoint is restricted to administrators. + **Example:** @@ -72179,7 +78089,7 @@ entities: curl -X DELETE https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -72365,7 +78275,9 @@ entities: x_deprecation: null x_filter: {} - _key: list - description: 'Retrieve details for all the active user invitations. + description: 'Retrieve an array of active user invitations sent by email. + + Note: This endpoint is restricted to administrators. **Example:** @@ -72374,7 +78286,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -72390,7 +78302,7 @@ entities: fields: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 external_param: true @@ -72416,7 +78328,7 @@ entities: - _key: order api_fieldname: order default: ASC - description: 'Record order based on creation time. Acceptable values: ASC, DESC. + description: 'Record order based on creation. Acceptable values: ASC, DESC. Default: ASC.' entity_fieldname: order enum: @@ -72454,7 +78366,7 @@ entities: properties: - _key: after api_fieldname: after - description: The entity ID to fetch after the given one. + description: The entity ID to retrieve after the given one. entity_fieldname: after example: 01619571f3c00242ac12000600000000 pattern: '[a-f0-9]{32}' @@ -72512,11 +78424,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -72524,6 +78444,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -72535,6 +78456,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -72710,7 +78632,7 @@ entities: self: true type: user_invitation return_type: paginated_response(user_invitation) - summary: Get the details of all user invitations. + summary: Get user invitations. x_deprecation: null x_filter: login_profiles: @@ -72718,6 +78640,8 @@ entities: - _key: read description: 'Retrieve the details of an active user invitation. + Note: This endpoint is restricted to administrators. + **Example:** @@ -72726,7 +78650,7 @@ entities: curl -X GET https://api.us-east-1.mbedcloud.com/v3/user-invitations/{invitation_id} \ - -H ''Authorization: Bearer '' + -H ''Authorization: Bearer '' ```' drop_fields: @@ -72832,11 +78756,19 @@ entities: entity: login_profile group: Accounts properties: + - _key: foreign_id + api_fieldname: foreign_id + description: The ID of the user in the identity provider's service. + entity_fieldname: foreign_id + example: fed/user_007 + readOnly: true + type: string - _key: id _override: true api_fieldname: id description: ID of the identity provider. entity_fieldname: id + example: 01619571f3c00242ac12000600000000 readOnly: false type: string - _key: name @@ -72844,6 +78776,7 @@ entities: api_fieldname: name description: Name of the identity provider. entity_fieldname: name + example: Pelion readOnly: false type: string - _key: type @@ -72855,6 +78788,7 @@ entities: - MBED - SAML2 - OIDC + example: NATIVE readOnly: true type: string required: @@ -73055,18 +78989,14 @@ entities: fields: - _key: message api_fieldname: message - description: 'Provides details in case of failure. - - ' - example: message describing the verification failure + description: Provides details in case of failure. + example: Message describing the verification failure readOnly: true required: false type: string - _key: successful api_fieldname: successful - description: 'Indicates whether the certificate issuer was verified successfully. - - ' + description: Indicates whether the certificate issuer was verified successfully. example: false readOnly: true required: false @@ -73290,14 +79220,6 @@ enums: - completed - new - processing -- _key: device_enrollment_denial_order_enum - entity_name: device_enrollment_denial - enum_name: device_enrollment_denial_order_enum - field_name: order - group_id: Devices - values: - - ASC - - DESC - _key: device_enrollment_order_enum entity_name: device_enrollment enum_name: device_enrollment_order_enum @@ -73341,6 +79263,14 @@ enums: values: - ASC - DESC +- _key: firmware_manifest_delivered_payload_type_enum + entity_name: firmware_manifest + enum_name: firmware_manifest_delivered_payload_type_enum + field_name: delivered_payload_type + group_id: Device_Update + values: + - delta + - full - _key: firmware_manifest_order_enum entity_name: firmware_manifest enum_name: firmware_manifest_order_enum @@ -73349,6 +79279,14 @@ enums: values: - ASC - DESC +- _key: firmware_manifest_schema_version_enum + entity_name: firmware_manifest + enum_name: firmware_manifest_schema_version_enum + field_name: manifest_schema_version + group_id: Device_Update + values: + - '1' + - '3' - _key: identity_provider_algorithm_enum entity_name: identity_provider enum_name: identity_provider_algorithm_enum @@ -73879,6 +79817,8 @@ groups: - campaign_statistics_summary_status_enum - campaign_statistics_id_enum - firmware_image_order_enum + - firmware_manifest_schema_version_enum + - firmware_manifest_delivered_payload_type_enum - firmware_manifest_order_enum - _key: Devices entities: @@ -73888,7 +79828,6 @@ groups: - device_enrollment_bulk_create - device_enrollment_bulk_delete - device_enrollment - - device_enrollment_denial enums: - device_lifecycle_status_enum - device_deployed_state_enum @@ -73897,7 +79836,6 @@ groups: - device_enrollment_bulk_create_status_enum - device_enrollment_bulk_delete_status_enum - device_enrollment_order_enum - - device_enrollment_denial_order_enum - _key: Security entities: - pre_shared_key