Atomicwork assets API

The assets API from Atomicwork — 7 operation(s) for assets.

OpenAPI Specification

atomicwork-assets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Atomicwork Public accessManagement assets API
  version: 1.0.0
servers:
- url: https://{tenant}.atomicwork.com
  description: Your Atomicwork tenant
tags:
- name: assets
paths:
  /api/v1/assets:
    post:
      operationId: postapi-v-1-assets
      summary: Create Asset
      tags:
      - assets
      parameters:
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_postapi_v1_assets_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                asset_type_id:
                  type: integer
                  format: int64
                form_fields:
                  $ref: '#/components/schemas/ApiV1AssetsPostRequestBodyContentApplicationJsonSchemaFormFields'
                image_id:
                  type: integer
                  format: int64
              required:
              - asset_type_id
              - form_fields
  /api/v1/assets/attributes:
    get:
      operationId: getapi-v-1-assets-attributes
      summary: Get List of all Asset attributes
      tags:
      - assets
      parameters:
      - name: search_key
        in: query
        description: Search String
        required: false
        schema:
          type: string
      - name: asset_type
        in: query
        description: asset_type
        required: false
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        description: limit
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        description: offset
        required: false
        schema:
          type: integer
          default: 25
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_getapi_v1_assets_attributes_Response_200'
  /api/v1/assets/list:
    post:
      operationId: postapi-v-1-assets-list
      summary: Asset List with views, and filters.
      description: "\n### Filtering\n\nThe request body is an **array of filter objects**. Send an empty array (`[]`) to retrieve all records.\n\nEach filter object has the following fields:\n\n| Field | Type | Description |\n|---|---|---|\n| `attribute` | string | The field to filter on (see Supported attributes below) |\n| `operator` | string | Comparison operator (see Available operators below) |\n| `values` | array | One or more `{ \"value\": <scalar> }` objects |\n\n**Supported attributes**\n\n| Attribute | Typical operator | Description |\n|---|---|---|\n| `status` | `IS_ANY_OF` | Asset status (e.g. `IN_USE`, `AVAILABLE`, `RETIRED`). |\n| `type_id` | `IS_ANY_OF` | Asset type ID. |\n| `assigned_to_id` | `IS_ANY_OF` | User ID the asset is assigned to. |\n\n**Available operators**\n\n| Operator | Meaning |\n|---|---|\n| `EQUALS` | Exact match |\n| `NOT_EQUALS` | Exclude exact match |\n| `IN` / `IS_ANY_OF` | Match any value in the list |\n| `IS_NOT_ANY_OF` | Exclude all listed values |\n| `IS_BETWEEN` | Inclusive range — pass exactly two values: `[start, end]` |\n| `IS_ON_OR_BEFORE` / `IS_ON_OR_AFTER` | Date/time boundary comparisons |\n| `CONTAINS` / `TEXT_CONTAINS` | Substring or set membership |\n| `IS_NULL` / `IS_NOT_NULL` | Null checks — `values` array can be empty |\n| `STARTS_WITH` / `ENDS_WITH` | String prefix/suffix match |\n\n**Example**\n\n```json\n[\n  {\n    \"attribute\": \"status\",\n    \"operator\": \"IS_ANY_OF\",\n    \"values\": [\n      {\n        \"value\": \"IN_USE\"\n      },\n      {\n        \"value\": \"AVAILABLE\"\n      }\n    ]\n  }\n]\n```\n"
      tags:
      - assets
      parameters:
      - name: sort_order
        in: query
        description: ''
        required: false
        schema:
          $ref: '#/components/schemas/ApiV1AssetsListPostParametersSortOrder'
      - name: sort
        in: query
        description: 'Generic multi-column sort, comma-separated `field:DIRECTION` (e.g. `display_name:ASC,created_at:DESC`). Sortable fields are those advertised with `sortable: true` by the asset fields endpoint. Takes precedence over `sort_order`. Invalid/unknown fields -> 400.'
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: ''
        required: true
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        description: ''
        required: false
        schema:
          type: integer
          default: 25
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_postapi_v1_assets_list_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItems'
  /api/v1/assets/users/{user_id}/list:
    get:
      operationId: getapi-v-1-assets-users-user-id-list
      summary: Get List of Assets for a user
      tags:
      - assets
      parameters:
      - name: user_id
        in: path
        description: userId
        required: true
        schema:
          type: integer
          format: int64
      - name: search_key
        in: query
        description: Search String
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: limit
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        description: offset
        required: false
        schema:
          type: integer
          default: 25
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_getapi_v1_assets_users__user_id__list_Response_200'
  /api/v1/assets/types/{asset_type_id}/form-fields:
    get:
      operationId: getapi-v-1-assets-types-asset-type-id-form-fields
      summary: Get Form Fields of an AssetType
      tags:
      - assets
      parameters:
      - name: asset_type_id
        in: path
        description: assetTypeId
        required: true
        schema:
          type: integer
          format: int64
      - name: source
        in: query
        description: 'Optional. When provided (e.g. "KANDJI", "MS_INTUNE", "JAMF"), filters the returned

          form fields to only those mapped to that integration source — used by the per-source

          asset detail view to render only the fields the source contributes. When omitted,

          returns the full field set for the asset type (current behavior).

          '
        required: false
        schema:
          type: string
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_getapi_v1_assets_types__asset_type_id__form_fields_Response_200'
  /api/v1/assets/{asset_id}:
    get:
      operationId: getapi-v-1-assets-asset-id
      summary: Get Asset Details
      tags:
      - assets
      parameters:
      - name: asset_id
        in: path
        description: assetId
        required: true
        schema:
          type: integer
          format: int64
      - name: source
        in: query
        description: 'Optional. When provided (e.g. "KANDJI", "MS_INTUNE", "JAMF"), returns the asset''s

          view from that integration''s source-original ledger row instead of the merged unified

          view. The response''s asset_basic_info.id stays as the unified id (URL is canonical);

          asset_basic_info.source still reflects the unified''s origin; form_fields and per-row

          timestamps reflect the source''s contribution. Returns 404 if the asset has no

          contribution from the requested source. See asset_basic_info.additional_sources for

          the list of valid source values for this asset.

          '
        required: false
        schema:
          type: string
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_getapi_v1_assets__asset_id_Response_200'
    put:
      operationId: putapi-v-1-assets-asset-id
      summary: Update Asset
      tags:
      - assets
      parameters:
      - name: asset_id
        in: path
        description: assetId
        required: true
        schema:
          type: integer
          format: int64
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_putapi_v1_assets__asset_id_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                asset_type_id:
                  type: integer
                  format: int64
                form_fields:
                  $ref: '#/components/schemas/ApiV1AssetsAssetIdPutRequestBodyContentApplicationJsonSchemaFormFields'
                image_id:
                  type: integer
                  format: int64
              required:
              - asset_type_id
              - form_fields
    delete:
      operationId: deleteapi-v-1-assets-asset-id
      summary: Delete Asset
      tags:
      - assets
      parameters:
      - name: asset_id
        in: path
        description: assetId
        required: true
        schema:
          type: integer
          format: int64
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_deleteapi_v1_assets__asset_id_Response_200'
  /api/v1/assets/{asset_id}/activities:
    get:
      operationId: getapi-v-1-assets-asset-id-activities
      summary: Get Asset Activities
      tags:
      - assets
      parameters:
      - name: asset_id
        in: path
        description: assetId
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        description: ''
        required: true
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        description: ''
        required: false
        schema:
          type: integer
          default: 25
      - name: next_page_token
        in: query
        description: ''
        required: false
        schema:
          type: string
      - name: source
        in: query
        description: 'Optional. When provided (e.g. "KANDJI", "MS_INTUNE", "JAMF"), returns the activity

          log of that integration''s source-original ledger row instead of the unified row''s

          activity log. Source-original entries capture each individual sync''s changes;

          unified entries capture derive-driven aggregations. Returns 404 if the asset has no

          contribution from the requested source.

          '
        required: false
        schema:
          type: string
      - name: X-Api-Key
        in: header
        required: true
        schema:
          type: string
      - name: X-Workspace-Id
        in: header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets_getapi_v1_assets__asset_id__activities_Response_200'
components:
  schemas:
    ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsValuesItemsValue:
      type: object
      properties: {}
      title: ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsValuesItemsValue
    ApiV1AssetsPostRequestBodyContentApplicationJsonSchemaFormFields:
      type: object
      properties: {}
      title: ApiV1AssetsPostRequestBodyContentApplicationJsonSchemaFormFields
    ApiV1AssetsAssetIdPutRequestBodyContentApplicationJsonSchemaFormFields:
      type: object
      properties: {}
      title: ApiV1AssetsAssetIdPutRequestBodyContentApplicationJsonSchemaFormFields
    ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItems:
      type: object
      properties:
        attribute:
          type: string
        operator:
          $ref: '#/components/schemas/ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsOperator'
        values:
          type: array
          items:
            $ref: '#/components/schemas/ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsValuesItems'
      title: ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItems
    ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsValuesItems:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsValuesItemsValue'
        nested_filter:
          description: Any type
      title: ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsValuesItems
    Assets_getapi_v1_assets__asset_id_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_getapi_v1_assets__asset_id_Response_200
    Assets_putapi_v1_assets__asset_id_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_putapi_v1_assets__asset_id_Response_200
    Assets_getapi_v1_assets__asset_id__activities_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_getapi_v1_assets__asset_id__activities_Response_200
    Assets_deleteapi_v1_assets__asset_id_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_deleteapi_v1_assets__asset_id_Response_200
    Assets_getapi_v1_assets_types__asset_type_id__form_fields_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_getapi_v1_assets_types__asset_type_id__form_fields_Response_200
    Assets_postapi_v1_assets_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_postapi_v1_assets_Response_200
    ApiV1AssetsListPostParametersSortOrder:
      type: string
      enum:
      - CREATED_AT_DESC
      - CREATED_AT_ASC
      - UPDATED_AT_DESC
      - NAME_ASC
      - NAME_DESC
      title: ApiV1AssetsListPostParametersSortOrder
    ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsOperator:
      type: string
      enum:
      - EQUALS
      - NOT_EQUALS
      - CONTAINS
      - NOT_CONTAINS
      - IN
      - NOT_IN
      - GREATER_THAN
      - LESS_THAN
      - GREATER_THAN_EQUALS
      - LESS_THAN_EQUALS
      - IS_BETWEEN
      - IS_NULL
      - IS_NOT_NULL
      - STARTS_WITH
      - ENDS_WITH
      - TEXT_CONTAINS
      - TEXT_DOES_NOT_CONTAINS
      - IS_ANY_OF
      - IS_NOT_ANY_OF
      - IS_EXACTLY
      - IS_ON_OR_BEFORE
      - IS_ON_OR_AFTER
      - IS_WITHIN
      title: ApiV1AssetsListPostRequestBodyContentApplicationJsonSchemaItemsOperator
    Assets_postapi_v1_assets_list_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_postapi_v1_assets_list_Response_200
    Assets_getapi_v1_assets_attributes_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_getapi_v1_assets_attributes_Response_200
    Assets_getapi_v1_assets_users__user_id__list_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Assets_getapi_v1_assets_users__user_id__list_Response_200
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key