> ## Documentation Index
> Fetch the complete documentation index at: https://developer.vanta.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sync all MacOS User Computers

> To send us data related to employee/contractor MacOS computers, you send us `MacosUserComputer` resources. This helps us determine important security properties, like whether devices have encrypted drives, have anti-virus installed or have password managers installed.

This call replaces ALL existing `MacosUserComputer` resources for the given app and `source_id` - this is a "state of the world" sync. In other words, if a `MacosUserComputer` resource is sent for a user in a previous `sync_all` call, but is not included in a later `sync_all` call for that customer, it is assumed to no longer exist and is deleted in Vanta.

** Headers **
```
Authorization: Bearer <access_token>
```

** Scopes **
```
connectors.self:write-resource
```

** Schema **

Expand the `resources` array below for the schema of `MacosUserComputer`.



## OpenAPI

````yaml /reference/build-integrations.json put /v1/resources/macos_user_computer
openapi: 3.0.1
info:
  title: Build integrations
  description: >-
    The API that enables syncing and viewing resources


    **Note for Vanta Gov (FedRAMP) customers:** Select `Vanta Gov (FedRAMP)`
    from the server dropdown to issue requests against
    `https://api.vanta-gov.com`. The OAuth token and authorization URLs shown
    below default to the commercial hosts — Gov customers should replace
    `api.vanta.com` with `api.vanta-gov.com` and `app.vanta.com` with
    `app.vanta-gov.com`.
  termsOfService: https://www.vanta.com/terms
  contact:
    name: API Support
    url: https://help.vanta.com/
    email: support@vanta.com
  license:
    name: Vanta Terms of Service
    url: https://www.vanta.com/terms
  version: 0.0.1
servers:
  - url: https://api.vanta.com
    description: Vanta (Commercial)
  - url: https://api.vanta-gov.com
    description: Vanta Gov (FedRAMP)
security:
  - oauth:
      - connectors.self:read-resource
      - connectors.self:write-resource
tags:
  - name: API Endpoint Vulnerabilities
  - name: Background Checks
  - name: Custom Resources
  - name: Documents
  - name: MacOS User Computers
  - name: Package Vulnerabilities
  - name: Secrets
  - name: Security Tasks
  - name: Static Code Analysis Vulnerabilities
  - name: User Accounts
  - name: User Security Training Statuses
  - name: Vulnerable Components
  - name: Windows User Computers
paths:
  /v1/resources/macos_user_computer:
    put:
      tags:
        - MacOS User Computers
      summary: Sync all MacOS User Computers
      description: >-
        To send us data related to employee/contractor MacOS computers, you send
        us `MacosUserComputer` resources. This helps us determine important
        security properties, like whether devices have encrypted drives, have
        anti-virus installed or have password managers installed.


        This call replaces ALL existing `MacosUserComputer` resources for the
        given app and `source_id` - this is a "state of the world" sync. In
        other words, if a `MacosUserComputer` resource is sent for a user in a
        previous `sync_all` call, but is not included in a later `sync_all` call
        for that customer, it is assumed to no longer exist and is deleted in
        Vanta.


        ** Headers **

        ```

        Authorization: Bearer <access_token>

        ```


        ** Scopes **

        ```

        connectors.self:write-resource

        ```


        ** Schema **


        Expand the `resources` array below for the schema of
        `MacosUserComputer`.
      operationId: put-MacosUserComputer
      requestBody:
        description: List of resources to sync
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - resourceId
                - resources
              properties:
                resourceId:
                  type: string
                  description: >-
                    Vanta generated identifier for the given resource, and can
                    be found on the developer console page. See the list of
                    registered resources and their IDs on
                    https://app.vanta.com/settings/developer-console/<app_id>?tab=resources
                resources:
                  type: array
                  items:
                    properties:
                      displayName:
                        type: string
                        description: >-
                          A human readable label for this resource - will be
                          shown as-is in inventory page.
                      uniqueId:
                        type: string
                        description: A stable global identifier for this resource.
                      externalUrl:
                        type: string
                        description: >-
                          A link to this resource on the partner site. This must
                          be a HTTPS URL.
                      collectedTimestamp:
                        type: string
                        format: date-time
                        description: >-
                          A timestamp that indicates when the data being sent
                          was collected from the host computer. In some cases,
                          you may have staggered data collection for the various
                          data being sent. In that case, feel free to use the
                          latest collected timestamp for the individual data
                          items to populate this field.
                      osName:
                        type: string
                        description: 'The OS name. Example: `MacOS Monterey`.'
                      osVersion:
                        type: string
                        description: 'The OS version. Example: `Version 12.4`.'
                      hardwareUuid:
                        type: string
                        description: The hardware UUID/UDID of the device.
                      serialNumber:
                        type: string
                        description: The hardware serial number of the device.
                      applications:
                        items:
                          properties:
                            name:
                              type: string
                              description: The name of the application.
                            bundleId:
                              type: string
                              description: The bundle identifier of the application.
                            lastOpenedTimestamp:
                              type: string
                              format: date-time
                              description: The last time the application was opened.
                          required:
                            - name
                            - bundleId
                        type: array
                        description: All the installed Mac Apps on the system.
                      browserExtensions:
                        items:
                          properties:
                            extensionId:
                              type: string
                              description: The identifier of the browser extension.
                            name:
                              type: string
                              description: The name of the browser extension.
                            browser:
                              description: >-
                                The type of browser. If you see something not on
                                this list - if the browser is chromium based,
                                use Chrome. Otherwise, skip sending the
                                extension and contact Vanta for a longer term
                                addition to this enum.
                              enum:
                                - CHROME
                                - FIREFOX
                                - OPERA
                                - SAFARI
                                - EDGE
                          required:
                            - extensionId
                            - name
                            - browser
                        type: array
                        description: >-
                          A list of browser extensions on this device. Used to
                          match against known password managers to demonstrate
                          use.
                      drives:
                        items:
                          properties:
                            name:
                              type: string
                              description: The name of the drive.
                            encrypted:
                              type: boolean
                              description: >-
                                Does the drive have some sort of encryption on
                                it.
                            filevaultEnabled:
                              type: boolean
                              description: Does the drive have filevault enabled.
                            isBootVolume:
                              type: boolean
                              description: >-
                                Metadata about the boot volume helps Vanta skip
                                checking volumes that aren't relevant, like USB
                                Drives.
                          required:
                            - name
                            - encrypted
                            - filevaultEnabled
                        type: array
                        description: >-
                          A list of drives on this device. Used to verify
                          encryption status.
                      users:
                        items:
                          properties:
                            username:
                              type: string
                              description: The user's username. Does not have to be unique.
                            screenlockPolicies:
                              items:
                                properties:
                                  requiresPassword:
                                    type: boolean
                                    description: >-
                                      After the screenlock takes effect, does
                                      the user have to enter a password to
                                      access their device.
                                  screenSleepTimeoutMs:
                                    type: integer
                                    format: int32
                                    description: >-
                                      The timeout in milliseconds for screenlock
                                      to trigger.
                                required:
                                  - requiresPassword
                                  - screenSleepTimeoutMs
                              type: array
                              description: >-
                                If the source system cannot easily retrieve
                                screenlock policies, it's OK to skip this data.
                            screenlockSettings:
                              properties:
                                requiresPassword:
                                  type: boolean
                                  description: >-
                                    After the screenlock takes effect, does the
                                    user have to enter a password to access
                                    their device.
                                screenSleepTimeoutMs:
                                  type: integer
                                  format: int32
                                  description: >-
                                    The timeout in milliseconds for screenlock
                                    to trigger.
                              required:
                                - requiresPassword
                                - screenSleepTimeoutMs
                            lastLoginTimestamp:
                              type: string
                              format: date-time
                              description: >-
                                The last time the user logged in to the device,
                                if available.
                          required:
                            - username
                            - screenlockPolicies
                            - screenlockSettings
                        type: array
                        description: >-
                          The human users of the system. If it's not feasible to
                          send only human users, prefer skipping sending users
                          entirely.
                      systemScreenlockPolicies:
                        items:
                          properties:
                            requiresPassword:
                              type: boolean
                              description: >-
                                After the screenlock takes effect, does the user
                                have to enter a password to access their device.
                            screenSleepTimeoutMs:
                              type: integer
                              format: int32
                              description: >-
                                The timeout in milliseconds for screenlock to
                                trigger.
                          required:
                            - requiresPassword
                            - screenSleepTimeoutMs
                        type: array
                        description: >-
                          System screenlock policy settings. Pass an empty list
                          if this is tricky to retrieve for your system. Used
                          for screenlock tests.
                      isManaged:
                        type: boolean
                        description: >-
                          Is the system managed by a Mobile Device Management
                          system.
                      autoUpdatesEnabled:
                        type: boolean
                        description: Does the system have auto-updates enabled.
                      owner:
                        type: string
                        description: >-
                          The email address of the owner of the system, if it's
                          known.
                      passwordPolicy:
                        properties:
                          minimumLengthRequirement:
                            type: integer
                            format: int32
                            description: >-
                              If the system has a password policy, what the
                              minimum password length requirement is.
                        required:
                          - minimumLengthRequirement
                      lastEnrolledTimestamp:
                        type: string
                        format: date-time
                        description: >-
                          A timestamp that indicates when the host computer was
                          last enrolled within your system. If the computer has
                          been un-enrolled and then re-enrolled, send data for
                          the most recent enrollment.
                      isXProtectEnabled:
                        type: boolean
                        description: Is XProtect enabled on the system.
                    required:
                      - displayName
                      - uniqueId
                      - externalUrl
                      - collectedTimestamp
                      - osName
                      - osVersion
                      - hardwareUuid
                      - serialNumber
                      - applications
                      - browserExtensions
                      - drives
                      - users
                      - systemScreenlockPolicies
                      - isManaged
                      - autoUpdatesEnabled
      responses:
        '200':
          description: The current resources synced.
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                properties:
                  success:
                    type: boolean
components:
  securitySchemes:
    oauth:
      type: oauth2
      x-default: vat_llamainapajama
      flows:
        authorizationCode:
          authorizationUrl: https://app.vanta.com/oauth/authorize
          tokenUrl: https://api.vanta.com/oauth/token
          scopes:
            connectors.self:write-resource: Send data to your account.
            connectors.self:read-resource: Read data from your account.

````