Mist Sites Maps - Auto-placement API

### AP Auto-Placement AP Auto-Placement is a feature in Juniper Mist wireless assurance that automatically determines and sets the positions of Access Points (APs) on a floorplan. It saves time and simplifies the deployment process by eliminating the need for manual placement. The autoplacement algorithm calculates the most probable location for each AP based on factors such as signal strength and coverage requirements. The confidence level of the autoplacement is indicated by colors, with green representing high certainty, orange indicating medium certainty, and red suggesting low certainty. In cases where aps are isolated or cannot communicate with nearby aps, they cannot be placed automatically and must be [manually positioned on the floorplan](/#operations/updateSiteDevice). After the autoplacement process is complete, the results can be evaluated and accepted of rejected with the API Call [Confirm Site AP Localization Data](/#operations/confirmSiteApLocalizationData) ### AP Auto-Orientation Ap Auto-Orientation is a feature in juniper mist wireless assurance that allows users to check and correct the orientation of Access Points (APs) on a floorplan. This feature is supported by specific ap models and requires a firmware dependency of version 0.14.28310 or higher and does not require a maintenance window and can be used after performing autoplacement. To use auto-orientation, physically install the APs, claim or adopt them into the Juniper Mist organization, place them on the floorplan, and perform auto-placement, then trigger the [Start Site Ap Auto Orientation API call](/#operations/startSiteApAutoOrientation) After 24 hours, the rotation in degrees of the AP(s) will be updated. users can accept or deny the changes made by the auto-orientation feature with the API Call [Confirm Site AP Localization Data](/#operations/confirmSiteApLocalizationData).

OpenAPI Specification

mist-sites-maps-auto-placement-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2606.1.1**

    >

    > Date: **July 10, 2026**

    <div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>


    ---

    ## Additional Documentation

    * [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)

    * [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)

    * [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)


    ## Helpful Resources

    * [API Sandbox and Exercises](https://api-class.mist.com/)

    * [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)

    * [Python Script Examples](https://github.com/tmunzer/mist_library)

    * [API Demo Apps](https://apps.mist-lab.fr/)

    * [Juniper Blog](https://blogs.juniper.net/)


    ## Mist Web Browser Extension:

    * Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)

    * Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Admins Sites Maps - Auto-placement API
  version: 2606.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- csrfToken: []
tags:
- description: "### AP Auto-Placement\nAP Auto-Placement is a feature in Juniper Mist wireless assurance that automatically determines and sets the positions of Access Points (APs) on a floorplan.\n\nIt saves time and simplifies the deployment process by eliminating the need for manual placement. \n\nThe autoplacement algorithm calculates the most probable location for each AP based on factors such as signal strength and coverage requirements. \n\nThe confidence level of the autoplacement is indicated by colors, with green representing high certainty, orange indicating medium certainty, and red suggesting low certainty. \nIn cases where aps are isolated or cannot communicate with nearby aps, they cannot be placed automatically and must be [manually positioned on the floorplan](/#operations/updateSiteDevice). \n\nAfter the autoplacement process is complete, the results can be evaluated and accepted of rejected with the API Call [Confirm Site AP Localization Data](/#operations/confirmSiteApLocalizationData)\n\n\n### AP Auto-Orientation\nAp Auto-Orientation is a feature in juniper mist wireless assurance that allows users to check and correct the orientation of Access Points (APs) on a floorplan. \n\nThis feature is supported by specific ap models and requires a firmware dependency of version 0.14.28310 or higher and does not require a maintenance window and can be used after performing autoplacement. \n\nTo use auto-orientation, physically install the APs, claim or adopt them into the Juniper Mist organization, place them on the floorplan, and perform auto-placement, then trigger the [Start Site Ap Auto Orientation API call](/#operations/startSiteApAutoOrientation)\n\nAfter 24 hours, the rotation in degrees of the AP(s) will be updated. users can accept or deny the changes made by the auto-orientation feature with the API Call [Confirm Site AP Localization Data](/#operations/confirmSiteApLocalizationData)."
  name: Sites Maps - Auto-placement
paths:
  /api/v1/sites/{site_id}/maps/{map_id}/apply_autoplacement:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    post:
      description: 'Accept the cached autoplacement and auto-orientation values of a map or subset of APs on a map. Any APs that have autoplacement values are stored in cache for up to 7 days while awaiting acceptance.



        Accepting the autoplacement values overwrites the existing X, Y, and orientation of the accepted APs with their cached autoplacement values.


        Once a decision to accept is made, or the 7-day time-to-live (TTL) expires, the cached values are deleted.'
      operationId: acceptSiteApLocalizationData
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  for: placement
                  macs:
                  - 5c5b35000001
            schema:
              $ref: '#/components/schemas/autoplacement_localization_selector'
        description: Request Body
      responses:
        '200':
          description: Success
        '400':
          description: Map does not exist or belong to specified site / Invalid localization service. Expected [placement, orientation]
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: acceptSiteApLocalizationData
      tags:
      - Sites Maps - Auto-placement
  /api/v1/sites/{site_id}/maps/{map_id}/auto_orient:
    parameters:
    - $ref: '#/components/parameters/map_id'
    - $ref: '#/components/parameters/site_id'
    delete:
      description: This API is called to force stop auto placement for a given map
      operationId: deleteSiteApAutoOrientation
      responses:
        '200':
          description: Auto orient process has stopped for this map
        '400':
          description: Autoplacement was not triggered
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteSiteApAutoOrientation
      tags:
      - Sites Maps - Auto-placement
    get:
      description: This API is called to view the current status of auto orient for a given map.
      operationId: getSiteApAutoOrientation
      responses:
        '200':
          $ref: '#/components/responses/AutoOrientationInfo'
        '400':
          description: Autoplacement was not triggered
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteApAutoOrientation
      tags:
      - Sites Maps - Auto-placement
    post:
      description: 'This API is called to trigger a map for auto orient. For auto orient feature to work, BLE data needs to be collected from the APs on the map. This precess is not disruptive unlike FTM collection. Repeated POST requests to this endpoint while a map is still running will be rejected.



        `force_collection` is set to `false` by default. If `force_collection`==`false`, the API attempts to start orientation with existing data. If no data exists, the API attempts to start collecting orientation data. If `force_collection`==`true`, the API attempts to start collecting orientation data.



        Providing a list of device macs is optional. If provided, auto orientation suggestions will be made only for the specified devices. If no list is provided, all APs associated with the map are considered by default.'
      operationId: startSiteApAutoOrientation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auto_orient'
      responses:
        '200':
          $ref: '#/components/responses/AutoOrientation'
        '400':
          $ref: '#/components/responses/AutoOrientationFailed'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: startSiteApAutoOrientation
      tags:
      - Sites Maps - Auto-placement
  /api/v1/sites/{site_id}/maps/{map_id}/auto_placement:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    delete:
      description: This API is called to force stop auto placement for a given map
      operationId: deleteSiteApAutoplacement
      responses:
        '200':
          description: Autoplacement Process has stopped for this map
        '400':
          description: Autoplacement was not triggered
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteSiteApAutoplacement
      tags:
      - Sites Maps - Auto-placement
    get:
      description: 'This API is called to view the current status of auto placement for a given map.



        #### Status Descriptions


        | Status | Description |

        | --- | --- |

        | `pending` | Autoplacement has not been requested for this map |

        | `inprogress` | Autoplacement is currently processing |

        | `done` | The autoplacement process has completed |

        | `data_needed` | Additional position data is required for autoplacement. Users should verify the requested anchor APs have a position on the map |

        | `invalid_model` | Autoplacement is not supported on the model of the APs on the map |

        | `invalid_version` | Autoplacement is not supported with the APs current firmware version |

        | `error` | There was an error in the autoplacement process |'
      operationId: getSiteApAutoPlacement
      responses:
        '200':
          $ref: '#/components/responses/AutoPlacementInfo'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteApAutoplacement
      tags:
      - Sites Maps - Auto-placement
    post:
      description: "This API is called to trigger auto placement for a map. For the auto placement feature to work, RTT-FTM data needs to be collected from the APs on the map.  \nThis scan is disruptive, and users must be notified of service disruption during the auto placement process. Repeated POST requests to this endpoint while a map is still running will be rejected.\n\n\n`force_collection` is set to `false` by default. If `force_collection` is set to `false`, the API attempts to start localization with existing data. If no data exists, the API attempts to start orchestration.  \nIf `force_collection` is set to `true`, the API attempts to start orchestration.\n\n\nProviding a list of devices is optional. If provided, autoplacement suggestions will be made only for the specified devices. If no list is provided, all APs associated with the map are considered by default."
      operationId: runSiteApAutoplacement
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auto_placement'
      responses:
        '200':
          $ref: '#/components/responses/HTTP200AutoPlacement'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: runSiteApAutoplacement
      tags:
      - Sites Maps - Auto-placement
  /api/v1/sites/{site_id}/maps/{map_id}/clear_auto_orient:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    post:
      description: This API is used to destroy the autoorientations of a map or subset of APs on a map.
      operationId: clearSiteApAutoOrient
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mac_addresses'
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: clearSiteApAutoOrient
      tags:
      - Sites Maps - Auto-placement
  /api/v1/sites/{site_id}/maps/{map_id}/clear_autoplacement:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    post:
      description: 'Reject the cached autoplacement and auto-orientation values of a map or subset of APs on a map. Any APs that have autoplacement values are stored in cache for up to 7 days while awaiting rejection.



        Rejecting the autoplacement values causes the APs to retain their current X, Y, and orientation.


        Once a decision to reject is made, or the 7-day time-to-live (TTL) expires, the cached values are deleted.'
      operationId: clearSiteApAutoplacement
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  for: placement
                  macs:
                  - 5c5b35000001
            schema:
              $ref: '#/components/schemas/autoplacement_localization_selector'
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: clearSiteApAutoplacement
      tags:
      - Sites Maps - Auto-placement
  /api/v1/sites/{site_id}/maps/{map_id}/use_auto_ap_values:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    post:
      deprecated: true
      description: '**Deprecated** — use [Accept Site AP Autoplacement](/#operations/acceptSiteApLocalizationData) to accept cached values, or [Clear Site AP Autoplacement](/#operations/clearSiteApAutoplacement) to reject them.'
      operationId: confirmSiteApLocalizationData
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  accept: false
                  device_macs:
                  - string
                  for: placement
            schema:
              $ref: '#/components/schemas/use_auto_ap_values'
      responses:
        '200':
          description: Success
        '400':
          description: Map does not exist or belong to specified site / Invalid localization service. Expected [placement, orientation]
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: confirmSiteApLocalizationData
      tags:
      - Sites Maps - Auto-placement
components:
  schemas:
    response_auto_orientation_info_status:
      description: "The status of auto orient for a given map. enum:\n  * `pending`: Auto orient has not been requested for this map\n  * `inprogress`: Auto orient is currently processing\n  * `done`: The auto orient process has completed\n  * `error`: There was an error in the auto orient process"
      enum:
      - pending
      - inprogress
      - done
      - error
      type: string
    response_auto_placement_info:
      additionalProperties: false
      description: Auto-placement status response with progress and validation details
      properties:
        end_time:
          description: Timestamp when autoplacement completed or was manually stopped
          type: number
        est_time_left:
          description: (Only when inprogress) estimate of the time to completion
          type: number
        start_time:
          description: Timestamp when autoplacement process was last queued for this map
          type: integer
        status:
          $ref: '#/components/schemas/auto_placement_info_status'
          description: Current autoplacement processing state
      type: object
    response_autoplacement_devices:
      additionalProperties:
        $ref: '#/components/schemas/response_autoplacement_device'
      description: Property key is the AP MAC address. Contains the validation status of each device.
      readOnly: true
      type: object
    auto_orient:
      description: Request options for validating or starting AP auto-orientation
      properties:
        dryrun:
          description: Set to `true` to perform an invalid AP check and provide an estimated run time without enqueuing the run into the auto orient service.
          type: boolean
        force_collection:
          default: false
          description: "If `force_collection`==`false`, the API attempts to start auto orientation with existing BLE data. \nIf `force_collection`==`true`, the API attempts to start BLE orchestration."
          type: boolean
        macs:
          $ref: '#/components/schemas/auto_orient_macs'
          description: AP MAC addresses to include in the auto-orient run
        override:
          description: Set to `true` to run auto orient even if there are invalid APs in the selected APs.
          type: boolean
      type: object
    auto_placement_macs:
      description: List of device macs
      items:
        type: string
      type: array
    auto_orient_macs:
      description: List of device macs
      items:
        type: string
      type: array
    response_http429:
      additionalProperties: false
      description: Standard HTTP 429 rate limit error response
      properties:
        detail:
          description: Human-readable explanation of the rate limit error
          examples:
          - Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
          type: string
      type: object
    response_http401:
      additionalProperties: false
      description: Standard HTTP 401 authentication error response
      properties:
        detail:
          description: Human-readable explanation of the authentication error
          examples:
          - Authentication credentials were not provided.
          type: string
      type: object
    autoplacement_localization_selector:
      description: Request body to apply or clear cached autoplacement or auto-orientation values for a map or subset of APs
      properties:
        for:
          default: placement
          description: 'The selector to choose auto placement or auto orientation. enum: `orientation`, `placement`'
          enum:
          - orientation
          - placement
          type: string
        macs:
          description: List of AP MAC addresses to apply the action to. If omitted, the action applies to all APs on the map
          items:
            type: string
          type: array
      type: object
    auto_placement_info_status:
      description: 'the status of autoplacement for a given map. enum: `done`, `error`, `inprogress`, `pending`'
      enum:
      - done
      - error
      - inprogress
      - pending
      type: string
    response_http403:
      additionalProperties: false
      description: Standard HTTP 403 permission error response
      properties:
        detail:
          description: Human-readable explanation of the permission error
          examples:
          - You do not have permission to perform this action.
          type: string
      type: object
    auto_placement:
      description: Request options for validating or starting AP auto-placement
      properties:
        dryrun:
          default: false
          description: Set to `true` to perform an invalid AP check and provide an estimated run time without enqueuing the run into the auto placement service.
          type: boolean
        force_collection:
          default: false
          description: "* If `force_collection`==`false`: the API attempts to start localization with existing data. \n* If `force_collection`==`true`: maintenance the API attempts to start orchestration."
          type: boolean
        macs:
          $ref: '#/components/schemas/auto_placement_macs'
          description: AP MAC addresses to include in the auto-placement run
        override:
          default: false
          description: Set to `true` to run auto placement even if there are invalid APs in the selected APs.
          type: boolean
      type: object
    response_detail_string:
      additionalProperties: false
      description: Response containing a human-readable detail message
      properties:
        detail:
          description: Human-readable detail message returned by the API
          type: string
      type: object
    response_auto_orientation_device:
      additionalProperties: false
      description: Per-device validation result for auto orientation
      properties:
        reason:
          description: Provides the reason for the status if the AP is invalid.
          type: string
        valid:
          description: Indicates whether the auto orient request is valid for the device.
          type: boolean
      type: object
    response_auto_orientation_info:
      additionalProperties: false
      description: Auto orientation status response
      properties:
        est_time_left:
          description: Only when `status`==`inprogress`, estimate of the time to completion
          type: number
        start_time:
          description: Timestamp when auto orient process was last queued for this map
          type: number
        status:
          $ref: '#/components/schemas/response_auto_orientation_info_status'
          description: Current auto orientation processing state
        stop_time:
          description: Timestamp when auto orient completed or was manually stopped
          type: number
      type: object
    response_http400:
      additionalProperties: false
      description: Standard HTTP 400 bad request error response
      properties:
        detail:
          description: Human-readable explanation of the bad request error
          examples:
          - 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
          type: string
      type: object
    response_autoplacement:
      additionalProperties: false
      description: Auto-placement start response returned after scheduling the run
      properties:
        devices:
          $ref: '#/components/schemas/response_autoplacement_devices'
          description: Per-device validation results for autoplacement, keyed by AP MAC address
        estimated_runtime:
          description: Estimated runtime for the process in seconds.
          readOnly: true
          type: integer
        reason:
          description: Provides the reason for the status.
          readOnly: true
          type: string
        started:
          description: Indicates whether the autoplacement process has started.
          readOnly: true
          type: boolean
        valid:
          description: Indicates whether the autoplacement request is valid.
          readOnly: true
          type: boolean
        wifi_interrupting:
          description: Indicates whether the auto placement process will interrupt WiFi traffic.
          type: boolean
      type: object
    use_auto_ap_values:
      description: Request to accept or reject cached AP placement or orientation values on a map
      properties:
        accept:
          default: false
          description: Whether to accept cached values; false rejects them for the selected APs
          type: boolean
        for:
          $ref: '#/components/schemas/use_auto_ap_values_for'
          description: Localization value type to accept or reject
        macs:
          $ref: '#/components/schemas/use_auto_ap_values_macs'
          description: AP MAC addresses whose cached values are accepted or rejected
      type: object
    response_auto_orientation_devices:
      additionalProperties:
        $ref: '#/components/schemas/response_auto_orientation_device'
      description: Contains the validation status of each device. The property key is the device MAC address.
      type: object
    mac_addresses:
      description: Request containing one or more MAC addresses
      properties:
        macs:
          $ref: '#/components/schemas/mac_addresses_macs'
          description: List of MAC addresses included in the request
      required:
      - macs
      type: object
    use_auto_ap_values_macs:
      description: AP MAC addresses to accept or reject. If omitted, the API applies the decision to the full map.
      items:
        type: string
      type: array
    mac_addresses_macs:
      description: Unique MAC addresses included in a request
      examples:
      - - 683b679ac024
      items:
        type: string
      minItems: 1
      type: array
      uniqueItems: true
    response_auto_orientation:
      additionalProperties: false
      description: Auto orientation start response
      properties:
        devices:
          $ref: '#/components/schemas/response_auto_orientation_devices'
          description: Per-device validation results for auto orientation, keyed by device MAC address
        estimated_runtime:
          description: Estimated runtime for the process in seconds
          type: integer
        reason:
          description: Provides the reason for the status.
          type: string
        started:
          description: Indicates whether the auto orient process has started.
          type: boolean
        valid:
          description: Indicates whether the auto orient request is valid.
          type: boolean
        wifi_interrupting:
          description: Indicates whether the auto orient process will interrupt WiFi traffic.
          type: boolean
      type: object
    response_autoplacement_device:
      additionalProperties: false
      description: Per-AP validation result for autoplacement
      properties:
        reason:
          description: Provides the reason for the status if the AP is invalid.
          readOnly: true
          type: string
        valid:
          description: Indicates whether the ap is valid.
          readOnly: true
          type: boolean
      type: object
    use_auto_ap_values_for:
      default: placement
      description: 'The selector to choose auto placement or auto orientation. enum: `orientation`, `placement`'
      enum:
      - orientation
      - placement
      type: string
    response_http404:
      additionalProperties: false
      description: Standard HTTP 404 not found error response
      properties:
        id:
          description: Missing resource identifier, when the API includes one
          type: string
      type: object
  examples:
    AutoPlacementInfoPending:
      value:
        status: pending
    HTTP200AutoPlacementServicefailedtostartduecontaininginvalidAPs:
      value:
        devices:
          '00000000001':
            valid: true
          '00000000002':
            valid: true
          '00000000003':
            valid: true
          '00000000004':
            reason: Device model AP41 is not supported for auto placement
            valid: false
          '00000000005':
            reason: Device firmware 0.14.28300 does not meet the minimum requirement 0.14.28310
            valid: false
        reason: Map has APs that do not meet the minimum requirements for auto placement
        started: false
        valid: false
    HTTP200AutoPlacementDryrunformapcompleted:
      value:
        devices:
          '00000000001':
            valid: true
          '00000000002':
            valid: true
          '00000000003':
            valid: true
        estimated_runtime: 30
        reason: Map has met the minimum requirements for auto placement
        valid: true
        wifi_interrupting: true
    AutoOrientationFailedExample2:
      value:
        detail: Auto AP orient is already in progress for this Map
    AutoOrientationServiceFailedToStartDueContainingInvalidAPs:
      value:
        devices:
          '00000000001':
            valid: true
          '00000000002':
            valid: true
          '00000000003':
            valid: true
          '00000000004':
            reason: Device model AP41 is not supported for auto orient
            valid: false
          '00000000005':
            reason: Device firmware 0.14.28300 does not meet the minimum requirement 0.14.28310
            valid: false
        reason: Map has APs that do not meet the minimum requirements for auto orient
        started: false
        valid: false
    AutoOrientationUnableToReachTheOrientService:
      value:
        devices:
          '00000000001':
            valid: true
          '00000000002':
            valid: true
          '00000000003':
            valid: true
        estimated_runtime: 300
        reason: Unable to reach auto orient service
        started: false
        valid: true
        wifi_interrupting: true
    HTTP200AutoPlacementServicestartedafteroverridefororchestration:
      value:
        devices:
          '00000000001':
            valid: true
          '00000000002':
            valid: true
          '00000000003':
            valid: true
          '00000000004':
            reason: Device model AP41 is not supported for auto placement
            valid: false
          '00000000005':
            reason: Device firmware 0.14.28300 does not meet the minimum requirement 0.14.28310
            valid: false
        estimated_runtime: 30
        reason: Started collection for auto placement
        started: true
        valid: false
        wifi_interrupting: true
    AutoOrientationDryrunForMapCompleted:
      value:
        devices:
          '00000000001':
            reason: Device meets the minimum requirements for auto orient
            valid: true
          '00000000002':
            reason: Device meets the minimum requirements for auto orient
            valid: true
          '00000000003':
            reason: Device meets the minimum requirements for auto orient
            valid: true
        estimated_runtime: 300
        reason: Map has met the minimum requirements for auto orient
        valid: true
        wifi_interrupting: true
    AutoOrientationInfoInProgress:
      value:
        est_time_left: 300.0
        start_time: 1678900062
        status: inprogress
    AutoOrientationServiceStartedAfterOverrideForLocalizationOrientCollection:
      value:
        devices:
          '00000000001':
            valid: true
          '00000000002':
            valid: true
          '00000000003':
            valid: true
          '00000000004':
            reason: Device model AP32 is not supported for auto orient
            valid: false
          '0000

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist/refs/heads/main/openapi/mist-sites-maps-auto-placement-api-openapi.yml