openapi: 3.1.0
servers:
  - url: https://console.jumpcloud.com/api
    description: United States (US)
    x-jc-region: us
  - url: https://console.eu.jumpcloud.com/api
    description: European Union (EU)
    x-jc-region: eu
  - url: https://console.in.jumpcloud.com/api
    description: India (IN)
    x-jc-region: in
info:
  contact:
    name: JumpCloud Support
    url: https://jumpcloud.com/support/contact-jumpcloud-support
  description: |
    # Overview

    JumpCloud's V1 API. This set of endpoints allows JumpCloud customers to manage commands, systems, and system users.

    > **Note:** See [JumpCloud Data Centers: Login URLs and Service Endpoints](https://jumpcloud.com/support/jumpcloud-data-centers-login-urls-and-service-endpoints) to learn more.

    ## API Best Practices

    Read the linked Help Article below for guidance on retrying failed requests to JumpCloud's REST API, as well as best practices for structuring subsequent retry requests. Customizing retry mechanisms based on these recommendations will increase the reliability and dependability of your API calls.

    Covered topics include:
    1. Important Considerations
    2. Supported HTTP Request Methods
    3. Response codes
    4. API Key rotation
    5. Paginating
    6. Error handling
    7. Retry rates

    [JumpCloud Help Center - API Best Practices](https://support.jumpcloud.com/support/s/article/JumpCloud-API-Best-Practices)

    # API Key

    ## Access Your API Key

    To locate your API Key:

    1. Log into the [JumpCloud Admin Console](https://console.jumpcloud.com/).
    2. Go to the username drop down located in the top-right of the Console.
    3. Retrieve your API key from API Settings.

    ## API Key Considerations

    This API key is associated to the currently logged in administrator. Other admins will have different API keys.

    **WARNING** Please keep this API key secret, as it grants full access to any data accessible via your JumpCloud console account.

    You can also reset your API key in the same location in the JumpCloud Admin Console.

    ## Recycling or Resetting Your API Key

    In order to revoke access with the current API key, simply reset your API key. This will render all calls using the previous API key inaccessible.

    Your API key will be passed in as a header with the header name "x-api-key".

    ```bash
    curl -H "x-api-key: [YOUR_API_KEY_HERE]" "https://console.jumpcloud.com/api/systemusers"
    ```

    # System Context

    * [Introduction](#introduction)
    * [Supported endpoints](#supported-endpoints)
    * [Response codes](#response-codes)
    * [Authentication](#authentication)
    * [Additional examples](#additional-examples)
    * [Third party](#third-party)

    ## Introduction

    JumpCloud System Context Authorization is an alternative way to authenticate with a subset of JumpCloud's REST APIs. Using this method, a system can manage its information and resource associations, allowing modern auto provisioning environments to scale as needed.

    **Notes:**

     * The following documentation applies to Linux Operating Systems only.
     * Systems that have been automatically enrolled using Apple's Device Enrollment Program (DEP) or systems enrolled using the User Portal install are not eligible to use the System Context API to prevent unauthorized access to system groups and resources. If a script that utilizes the System Context API is invoked on a system enrolled in this way, it will display an error.

    ## Supported Endpoints

    JumpCloud System Context Authorization can be used in conjunction with Systems endpoints found in the V1 API and certain System Group endpoints found in the v2 API.

    * A system may fetch, alter, and delete metadata about itself, including manipulating a system's Group and Systemuser associations,
      * `/api/systems/{system_id}` | [`GET`](https://docs.jumpcloud.com/api/1.0/index.html#operation/systems_get) [`PUT`](https://docs.jumpcloud.com/api/1.0/index.html#operation/systems_put)
    * A system may delete itself from your JumpCloud organization
      * `/api/systems/{system_id}` | [`DELETE`](https://docs.jumpcloud.com/api/1.0/index.html#operation/systems_delete)
    * A system may fetch its direct resource associations under v2 (Groups)
      * `/api/v2/systems/{system_id}/memberof` | [`GET`](https://docs.jumpcloud.com/api/2.0/index.html#operation/graph_systemGroupMembership)
      * `/api/v2/systems/{system_id}/associations` | [`GET`](https://docs.jumpcloud.com/api/2.0/index.html#operation/graph_systemAssociationsList)
      * `/api/v2/systems/{system_id}/users` | [`GET`](https://docs.jumpcloud.com/api/2.0/index.html#operation/graph_systemTraverseUser)
    * A system may alter its direct resource associations under v2 (Groups)
      * `/api/v2/systems/{system_id}/associations` | [`POST`](https://docs.jumpcloud.com/api/2.0/index.html#operation/graph_systemAssociationsPost)
    * A system may alter its System Group associations
      * `/api/v2/systemgroups/{group_id}/members` | [`POST`](https://docs.jumpcloud.com/api/2.0/index.html#operation/graph_systemGroupMembersPost)
        * _NOTE_ If a system attempts to alter the system group membership of a different system the request will be rejected

    ## Response Codes

    If endpoints other than those described above are called using the System Context API, the server will return a `401` response.

    ## Authentication

    To allow for secure access to our APIs, you must authenticate each API request.
    JumpCloud System Context Authorization uses [HTTP Signatures](https://tools.ietf.org/html/draft-cavage-http-signatures-00) to authenticate API requests.
    The HTTP Signatures sent with each request are similar to the signatures used by the Amazon Web Services REST API.
    To help with the request-signing process, we have provided an [example bash script](https://github.com/TheJumpCloud/SystemContextAPI/blob/master/examples/shell/SigningExample.sh). This example API request simply requests the entire system record. You must be root, or have permissions to access the contents of the `/opt/jc` directory to generate a signature.

    Here is a breakdown of the example script with explanations.

    First, the script extracts the systemKey from the JSON formatted `/opt/jc/jcagent.conf` file.

    ```bash
    #!/bin/bash
    conf="`cat /opt/jc/jcagent.conf`"
    regex="systemKey\":\"(\w+)\""

    if [[ $conf =~ $regex ]] ; then
      systemKey="${BASH_REMATCH[1]}"
    fi
    ```

    Then, the script retrieves the current date in the correct format.

    ```bash
    now=`date -u "+%a, %d %h %Y %H:%M:%S GMT"`;
    ```

    Next, we build a signing string to demonstrate the expected signature format. The signed string must consist of the [request-line](https://tools.ietf.org/html/rfc2616#page-35) and the date header, separated by a newline character.

    ```bash
    signstr="GET /api/systems/${systemKey} HTTP/1.1\ndate: ${now}"
    ```

    The next step is to calculate and apply the signature. This is a two-step process:

    1. Create a signature from the signing string using the JumpCloud Agent private key: ``printf "$signstr" | openssl dgst -sha256 -sign /opt/jc/client.key``
    2. Then Base64-encode the signature string and trim off the newline characters: ``| openssl enc -e -a | tr -d '\n'``

    The combined steps above result in:

    ```bash
    signature=`printf "$signstr" | openssl dgst -sha256 -sign /opt/jc/client.key | openssl enc -e -a | tr -d '\n'` ;
    ```

    Finally, we make sure the API call sending the signature has the same Authorization and Date header values, HTTP method, and URL that were used in the signing string.

    ```bash
    curl -iq \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      -H "Date: ${now}" \
      -H "Authorization: Signature keyId=\"system/${systemKey}\",headers=\"request-line date\",algorithm=\"rsa-sha256\",signature=\"${signature}\"" \
      --url https://console.jumpcloud.com/api/systems/${systemKey}
    ```

    ### Input Data

    All PUT and POST methods should use the HTTP Content-Type header with a value of 'application/json'. PUT methods are used for updating a record. POST methods are used to create a record.

    The following example demonstrates how to update the `displayName` of the system.

    ```bash
    signstr="PUT /api/systems/${systemKey} HTTP/1.1\ndate: ${now}"
    signature=`printf "$signstr" | openssl dgst -sha256 -sign /opt/jc/client.key | openssl enc -e -a | tr -d '\n'` ;

    curl -iq \
      -d "{\"displayName\" : \"updated-system-name-1\"}" \
      -X "PUT" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -H "Date: ${now}" \
      -H "Authorization: Signature keyId=\"system/${systemKey}\",headers=\"request-line date\",algorithm=\"rsa-sha256\",signature=\"${signature}\"" \
      --url https://console.jumpcloud.com/api/systems/${systemKey}
    ```

    ### Output Data

    All results will be formatted as JSON.

    Here is an abbreviated example of response output:

    ```json
    {
      "_id": "625ee96f52e144993e000015",
      "agentServer": "lappy386",
      "agentVersion": "0.9.42",
      "arch": "x86_64",
      "displayName": "ubuntu-1204",
      "firstContact": "2013-10-16T19:30:55.611Z",
      "hostname": "ubuntu-1204"
      ...
    ```

    ## Additional Examples

    ### Signing Authentication Example

    This example demonstrates how to make an authenticated request to fetch the JumpCloud record for this system.

    [SigningExample.sh](https://github.com/TheJumpCloud/SystemContextAPI/blob/master/examples/shell/SigningExample.sh)

    ### Shutdown Hook

    This example demonstrates how to make an authenticated request on system shutdown.
    Using an init.d script registered at run level 0, you can call the System Context API as the system is shutting down.

    [Instance-shutdown-initd](https://github.com/TheJumpCloud/SystemContextAPI/blob/master/examples/instance-shutdown-initd) is an example of an init.d script that only runs at system shutdown.

    After customizing the [instance-shutdown-initd](https://github.com/TheJumpCloud/SystemContextAPI/blob/master/examples/instance-shutdown-initd) script, you should install it on the system(s) running the JumpCloud agent.

    1. Copy the modified [instance-shutdown-initd](https://github.com/TheJumpCloud/SystemContextAPI/blob/master/examples/instance-shutdown-initd) to `/etc/init.d/instance-shutdown`.
    2. On Ubuntu systems, run `update-rc.d instance-shutdown defaults`. On RedHat/CentOS systems, run `chkconfig --add instance-shutdown`.

    ## Third Party

    ### Chef Cookbooks

    [https://github.com/nshenry03/jumpcloud](https://github.com/nshenry03/jumpcloud)

    [https://github.com/cjs226/jumpcloud](https://github.com/cjs226/jumpcloud)

    # Multi-Tenant Portal Headers

    Multi-Tenant Organization API Headers are available for JumpCloud Admins to use when making API requests from Organizations that have multiple managed organizations.
    The `x-org-id` is a required header for all multi-tenant admins when making API requests to JumpCloud. This header will define to which organization you would like to make the request.

    **NOTE** Single Tenant Admins do not need to provide this header when making an API request.

    ## Header Value

    `x-org-id`

    ## API Response Codes

    * `400` Malformed ID.
    * `400` x-org-id and Organization path ID do not match.
    * `401` ID not included for multi-tenant admin
    * `403` ID included on unsupported route.
    * `404` Organization ID Not Found.

    ```bash
    curl -X GET https://console.jumpcloud.com/api/v2/directories \
      -H 'accept: application/json' \
      -H 'content-type: application/json' \
      -H 'x-api-key: {API_KEY}' \
      -H 'x-org-id: {ORG_ID}'

    ```

    ## To Obtain an Individual Organization ID via the UI

    As a prerequisite, your Primary Organization will need to be setup for Multi-Tenancy. This provides access to the Multi-Tenant Organization Admin Portal.

    1. Log into JumpCloud [Admin Console](https://console.jumpcloud.com). If you are a multi-tenant Admin, you will automatically be routed to the Multi-Tenant Admin Portal.
    2. From the Multi-Tenant Portal's primary navigation bar, select the Organization you'd like to access.
    3. You will automatically be routed to that Organization's Admin Console.
    4. Go to Settings in the sub-tenant's primary navigation.
    5. You can obtain your Organization ID below your Organization's Contact Information on the Settings page.

    ## To Obtain All Organization IDs via the API

    * You can make an API request to this endpoint using the API key of your Primary Organization.  `https://console.jumpcloud.com/api/organizations/` This will return all your managed organizations.

    ```bash
    curl -X GET \
      https://console.jumpcloud.com/api/organizations/ \
      -H 'Accept: application/json' \
      -H 'Content-Type: application/json' \
      -H 'x-api-key: {API_KEY}'
    ```

    # SDKs

    You can find language specific SDKs that can help you kickstart your Integration with JumpCloud in the following GitHub repositories:

    * [Python](https://github.com/TheJumpCloud/jcapi-python)
    * [Go](https://github.com/TheJumpCloud/jcapi-go)
    * [Ruby](https://github.com/TheJumpCloud/jcapi-ruby)
    * [Java](https://github.com/TheJumpCloud/jcapi-java)
  title: JumpCloud API
  version: '1.0'
paths:
  /application-templates:
    get:
      description: |-
        The endpoint returns all the SSO / SAML Application Templates.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/application-templates \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'

        ```
      operationId: application_templates_list
      parameters:
        - description: The space separated fields included in the returned records. If omitted the default list of fields will be returned.
          in: query
          name: fields
          schema:
            type: string
        - description: The number of records to return at once.
          in: query
          name: limit
          schema:
            type: integer
        - description: The offset into the records to return.
          in: query
          name: skip
          schema:
            type: integer
        - description: The space separated fields used to sort the collection. Default sort is ascending, prefix with - to sort descending.
          in: query
          name: sort
          schema:
            type: string
          allowReserved: true
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/applicationtemplateslist'
      security:
        - x-api-key: []
      summary: List Application Templates
      tags:
        - Application Templates
      x-scopes:
        - applicationtemplates
        - applicationtemplates.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/application-templates?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/application-templates"

            querystring = {"fields":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/application-templates?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    parameters: []
    x-functionalities-tags:
      - application-templates
  /application-templates/{id}:
    get:
      description: |-
        The endpoint returns a specific SSO / SAML Application Template.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/application-templates/{id} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'

        ```
      operationId: application_templates_get
      parameters:
        - description: The space separated fields included in the returned records. If omitted the default list of fields will be returned.
          in: query
          name: fields
          schema:
            type: string
        - description: The number of records to return at once.
          in: query
          name: limit
          schema:
            type: integer
        - description: The offset into the records to return.
          in: query
          name: skip
          schema:
            type: integer
        - description: The space separated fields used to sort the collection. Default sort is ascending, prefix with - to sort descending.
          in: query
          name: sort
          schema:
            type: string
          allowReserved: true
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/applicationtemplate'
      security:
        - x-api-key: []
      summary: Get an Application Template
      tags:
        - Application Templates
      x-scopes:
        - applicationtemplates
        - applicationtemplates.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/application-templates/{id}?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/application-templates/{id}"

            querystring = {"fields":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/application-templates/{id}?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - application-templates
  /applications:
    get:
      description: |-
        The endpoint returns all your SSO / SAML Applications.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/applications \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'

        ```
      operationId: applications_list
      parameters:
        - description: The space separated fields included in the returned records. If omitted the default list of fields will be returned.
          in: query
          name: fields
          schema:
            type: string
        - description: The number of records to return at once.
          in: query
          name: limit
          schema:
            type: integer
        - description: The offset into the records to return.
          in: query
          name: skip
          schema:
            type: integer
        - description: The space separated fields used to sort the collection. Default sort is ascending, prefix with - to sort descending.
          in: query
          name: sort
          schema:
            type: string
            default: name
          allowReserved: true
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/applicationslist'
      security:
        - x-api-key: []
      summary: Applications
      tags:
        - Applications
      x-scopes:
        - applications
        - applications.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/applications?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/applications"

            querystring = {"fields":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/applications?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    post:
      description: The endpoint adds a new SSO / SAML Applications.
      operationId: applications_post
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        $ref: '#/components/requestBodies/application'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/application'
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
      security:
        - x-api-key: []
      summary: Create an Application
      tags:
        - Applications
      x-scopes:
        - applications
        - applications.create
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/applications \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"_id":"string","active":true,"beta":true,"color":"","config":{"spErrorFlow":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signAssertion":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signResponse":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"acsUrl":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"constantAttributes":{"label":"string","mutable":true,"options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":[{"name":"string","readOnly":true,"required":true,"value":"string","visible":true}],"visible":true},"databaseAttributes":{"position":0},"idpCertificate":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpPrivateKey":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"spEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"authClaimConfiguration":{"type":"string","visible":true,"sendAmrClaim":{"type":"string","value":true,"readOnly":true},"authnContextMode":{"type":"string","value":"string"},"singleAuthnContextValue":{"type":"string","value":"string"},"authnContextMappings":{"type":"string","value":[{}]}}},"created":"string","databaseAttributes":[{}],"description":"string","displayLabel":"string","displayName":"string","learnMore":"string","logo":{"color":"","url":"string"},"name":"string","organization":"string","sso":{"type":"string","beta":true,"jit":true,"idpCertExpirationAt":"2019-08-24T14:15:22Z","hidden":true},"ssoUrl":"string","parentApp":"string","referenceApplications":[{"id":"string","orgId":"string"}],"aiReady":true}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/applications"

            payload = {
                "_id": "string",
                "active": True,
                "beta": True,
                "color": "",
                "config": {
                    "spErrorFlow": {
                        "label": "string",
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": True,
                        "visible": True
                    },
                    "signAssertion": {
                        "label": "string",
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": True,
                        "visible": True
                    },
                    "signResponse": {
                        "label": "string",
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": True,
                        "visible": True
                    },
                    "acsUrl": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "constantAttributes": {
                        "label": "string",
                        "mutable": True,
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": [
                            {
                                "name": "string",
                                "readOnly": True,
                                "required": True,
                                "value": "string",
                                "visible": True
                            }
                        ],
                        "visible": True
                    },
                    "databaseAttributes": {"position": 0},
                    "idpCertificate": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "idpEntityId": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "idpPrivateKey": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "spEntityId": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "authClaimConfiguration": {
                        "type": "string",
                        "visible": True,
                        "sendAmrClaim": {
                            "type": "string",
                            "value": True,
                            "readOnly": True
                        },
                        "authnContextMode": {
                            "type": "string",
                            "value": "string"
                        },
                        "singleAuthnContextValue": {
                            "type": "string",
                            "value": "string"
                        },
                        "authnContextMappings": {
                            "type": "string",
                            "value": [{}]
                        }
                    }
                },
                "created": "string",
                "databaseAttributes": [{}],
                "description": "string",
                "displayLabel": "string",
                "displayName": "string",
                "learnMore": "string",
                "logo": {
                    "color": "",
                    "url": "string"
                },
                "name": "string",
                "organization": "string",
                "sso": {
                    "type": "string",
                    "beta": True,
                    "jit": True,
                    "idpCertExpirationAt": "2019-08-24T14:15:22Z",
                    "hidden": True
                },
                "ssoUrl": "string",
                "parentApp": "string",
                "referenceApplications": [
                    {
                        "id": "string",
                        "orgId": "string"
                    }
                ],
                "aiReady": True
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/applications' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"_id":"string","active":true,"beta":true,"color":"","config":{"spErrorFlow":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signAssertion":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signResponse":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"acsUrl":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"constantAttributes":{"label":"string","mutable":true,"options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":[{"name":"string","readOnly":true,"required":true,"value":"string","visible":true}],"visible":true},"databaseAttributes":{"position":0},"idpCertificate":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpPrivateKey":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"spEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"authClaimConfiguration":{"type":"string","visible":true,"sendAmrClaim":{"type":"string","value":true,"readOnly":true},"authnContextMode":{"type":"string","value":"string"},"singleAuthnContextValue":{"type":"string","value":"string"},"authnContextMappings":{"type":"string","value":[{}]}}},"created":"string","databaseAttributes":[{}],"description":"string","displayLabel":"string","displayName":"string","learnMore":"string","logo":{"color":"","url":"string"},"name":"string","organization":"string","sso":{"type":"string","beta":true,"jit":true,"idpCertExpirationAt":"2019-08-24T14:15:22Z","hidden":true},"ssoUrl":"string","parentApp":"string","referenceApplications":[{"id":"string","orgId":"string"}],"aiReady":true}'
    x-functionalities-tags:
      - applications
  /applications/{id}:
    delete:
      description: The endpoint deletes an SSO / SAML Application.
      operationId: applications_delete
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/application'
      security:
        - x-api-key: []
      summary: Delete an Application
      tags:
        - Applications
      x-scopes:
        - applications
        - applications.delete
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url https://console.jumpcloud.com/api/applications/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/applications/{id}"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/applications/{id}' -Method DELETE -Headers $headers
    get:
      description: The endpoint retrieves an SSO / SAML Application.
      operationId: applications_get
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/application'
      security:
        - x-api-key: []
      summary: Get an Application
      tags:
        - Applications
      x-scopes:
        - applications
        - applications.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url https://console.jumpcloud.com/api/applications/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/applications/{id}"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/applications/{id}' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      description: The endpoint updates a SSO / SAML Application. Any fields not provided will be reset or created with default values.
      operationId: applications_put
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        $ref: '#/components/requestBodies/application'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/application'
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
      security:
        - x-api-key: []
      summary: Update an Application
      tags:
        - Applications
      x-scopes:
        - applications
        - applications.update
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url https://console.jumpcloud.com/api/applications/{id} \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"_id":"string","active":true,"beta":true,"color":"","config":{"spErrorFlow":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signAssertion":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signResponse":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"acsUrl":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"constantAttributes":{"label":"string","mutable":true,"options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":[{"name":"string","readOnly":true,"required":true,"value":"string","visible":true}],"visible":true},"databaseAttributes":{"position":0},"idpCertificate":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpPrivateKey":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"spEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"authClaimConfiguration":{"type":"string","visible":true,"sendAmrClaim":{"type":"string","value":true,"readOnly":true},"authnContextMode":{"type":"string","value":"string"},"singleAuthnContextValue":{"type":"string","value":"string"},"authnContextMappings":{"type":"string","value":[{}]}}},"created":"string","databaseAttributes":[{}],"description":"string","displayLabel":"string","displayName":"string","learnMore":"string","logo":{"color":"","url":"string"},"name":"string","organization":"string","sso":{"type":"string","beta":true,"jit":true,"idpCertExpirationAt":"2019-08-24T14:15:22Z","hidden":true},"ssoUrl":"string","parentApp":"string","referenceApplications":[{"id":"string","orgId":"string"}],"aiReady":true}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/applications/{id}"

            payload = {
                "_id": "string",
                "active": True,
                "beta": True,
                "color": "",
                "config": {
                    "spErrorFlow": {
                        "label": "string",
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": True,
                        "visible": True
                    },
                    "signAssertion": {
                        "label": "string",
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": True,
                        "visible": True
                    },
                    "signResponse": {
                        "label": "string",
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": True,
                        "visible": True
                    },
                    "acsUrl": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "constantAttributes": {
                        "label": "string",
                        "mutable": True,
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": [
                            {
                                "name": "string",
                                "readOnly": True,
                                "required": True,
                                "value": "string",
                                "visible": True
                            }
                        ],
                        "visible": True
                    },
                    "databaseAttributes": {"position": 0},
                    "idpCertificate": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "idpEntityId": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "idpPrivateKey": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "spEntityId": {
                        "label": "string",
                        "options": None,
                        "position": 0,
                        "readOnly": True,
                        "required": True,
                        "toggle": None,
                        "tooltip": {
                            "template": "string",
                            "variables": {
                                "icon": "string",
                                "message": "string"
                            }
                        },
                        "type": "string",
                        "value": "string",
                        "visible": True
                    },
                    "authClaimConfiguration": {
                        "type": "string",
                        "visible": True,
                        "sendAmrClaim": {
                            "type": "string",
                            "value": True,
                            "readOnly": True
                        },
                        "authnContextMode": {
                            "type": "string",
                            "value": "string"
                        },
                        "singleAuthnContextValue": {
                            "type": "string",
                            "value": "string"
                        },
                        "authnContextMappings": {
                            "type": "string",
                            "value": [{}]
                        }
                    }
                },
                "created": "string",
                "databaseAttributes": [{}],
                "description": "string",
                "displayLabel": "string",
                "displayName": "string",
                "learnMore": "string",
                "logo": {
                    "color": "",
                    "url": "string"
                },
                "name": "string",
                "organization": "string",
                "sso": {
                    "type": "string",
                    "beta": True,
                    "jit": True,
                    "idpCertExpirationAt": "2019-08-24T14:15:22Z",
                    "hidden": True
                },
                "ssoUrl": "string",
                "parentApp": "string",
                "referenceApplications": [
                    {
                        "id": "string",
                        "orgId": "string"
                    }
                ],
                "aiReady": True
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("PUT", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/applications/{id}' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{"_id":"string","active":true,"beta":true,"color":"","config":{"spErrorFlow":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signAssertion":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"signResponse":{"label":"string","position":0,"readOnly":true,"required":true,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":true,"visible":true},"acsUrl":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"constantAttributes":{"label":"string","mutable":true,"options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":[{"name":"string","readOnly":true,"required":true,"value":"string","visible":true}],"visible":true},"databaseAttributes":{"position":0},"idpCertificate":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"idpPrivateKey":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"spEntityId":{"label":"string","options":null,"position":0,"readOnly":true,"required":true,"toggle":null,"tooltip":{"template":"string","variables":{"icon":"string","message":"string"}},"type":"string","value":"string","visible":true},"authClaimConfiguration":{"type":"string","visible":true,"sendAmrClaim":{"type":"string","value":true,"readOnly":true},"authnContextMode":{"type":"string","value":"string"},"singleAuthnContextValue":{"type":"string","value":"string"},"authnContextMappings":{"type":"string","value":[{}]}}},"created":"string","databaseAttributes":[{}],"description":"string","displayLabel":"string","displayName":"string","learnMore":"string","logo":{"color":"","url":"string"},"name":"string","organization":"string","sso":{"type":"string","beta":true,"jit":true,"idpCertExpirationAt":"2019-08-24T14:15:22Z","hidden":true},"ssoUrl":"string","parentApp":"string","referenceApplications":[{"id":"string","orgId":"string"}],"aiReady":true}'
    x-functionalities-tags:
      - applications
  /cases:
    x-functionalities-tags:
      - cases
  /command/trigger/{triggername}:
    parameters:
      - in: path
        name: triggername
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint allows you to launch a command based on a defined trigger.

        #### Sample Requests

        **Launch a Command via a Trigger**

        ```
        curl --silent \
             -X 'POST' \
             -H "x-api-key: {API_KEY}" \
             "https://console.jumpcloud.com/api/command/trigger/{TriggerName}"
        ```
        **Launch a Command via a Trigger passing a JSON object to the command**
        ```
        curl --silent \
             -X 'POST' \
             -H "x-api-key: {API_KEY}" \
             -H 'Accept: application/json' \
             -H 'Content-Type: application/json' \
             -d '{ "srcip":"192.168.2.32", "attack":"Cross Site Scripting Attempt" }' \
             "https://console.jumpcloud.com/api/command/trigger/{TriggerName}"
        ```
      operationId: command_trigger_webhook_post
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/triggerreturn'
        '401':
          description: ''
      security:
        - x-api-key: []
      summary: Launch a command via a Trigger
      tags:
        - Command Triggers
      x-scopes:
        - commands
        - commands.schedule
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/command/trigger/{triggername} \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/command/trigger/{triggername}"

            payload = {}
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/command/trigger/{triggername}' -Method POST -Headers $headers -ContentType 'application/json' -Body '{}'
    x-functionalities-tags:
      - devices-windows-commands-execution
      - devices-darwin-commands-execution
      - devices-linux-commands-execution
  /commandresults:
    get:
      description: |-
        This endpoint returns all command results.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/commandresults \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key:{API_KEY}'
          ```

        To filter command results use the [**Search API**](#tag/Search/operation/search_commandresults_post)
      operationId: command_results_list
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_sort_sort'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commandresultslist'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: List all Command Results
      tags:
        - Command Results
      x-scopes:
        - commands
        - commands.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/commandresults?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commandresults"

            querystring = {"fields":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commandresults?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' -Method GET -Headers $headers
  /commandresults/{id}:
    delete:
      description: |-
        This endpoint deletes a specific command result.

        #### Sample Request
        ```
        curl -X DELETE https://console.jumpcloud.com/api/commandresults/{id} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          ````
      operationId: command_results_delete
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commandresult'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Delete a Command result
      tags:
        - Command Results
      x-scopes:
        - commands
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url https://console.jumpcloud.com/api/commandresults/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commandresults/{id}"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commandresults/{id}' -Method DELETE -Headers $headers
    get:
      description: |-
        This endpoint returns a specific command result.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/commandresults/{CommandResultID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          ```
      operationId: command_results_get
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commandresult'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: List an individual Command result
      tags:
        - Command Results
      x-scopes:
        - commands
        - commands.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/commandresults/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commandresults/{id}"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commandresults/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - command-results
  /commands:
    get:
      description: |-
        This endpoint returns all commands.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/commands/ \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'

        ```
      operationId: commands_list
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_sort_sort'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commandslist'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: List All Commands
      tags:
        - Commands
      x-scopes:
        - commands
        - commands.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/commands?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commands"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commands?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' -Method GET -Headers $headers
    post:
      description: |-
        This endpoint allows you to create a new command.

        NOTE: the system property in the command is not used. Use a POST to /api/v2/commands/{id}/associations to bind a command to a system.

        #### Sample Request
        ```
        curl -X POST https://console.jumpcloud.com/api/commands/ \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json'
          -H 'x-api-key: {API_KEY}'
          -d '{"name":"Test API Command", "command":"String", "user":"{UserID}", "schedule":"", "timeout":"100"}'
        ```
      operationId: commands_post
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        $ref: '#/components/requestBodies/command'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/command'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Create A Command
      tags:
        - Commands
      x-scopes:
        - commands
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/commands \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"command":"string","commandRunners":["string"],"commandType":"linux","files":["string"],"launchType":"string","listensTo":"string","name":"string","organization":"string","schedule":"string","scheduleRepeatType":"string","sudo":true,"systems":["string"],"template":"string","timeout":"string","trigger":"string","user":"string","shell":"string","timeToLiveSeconds":0,"scheduleYear":0,"filesS3":[{"objectStorageId":"string","name":"string","destination":"string","sha256":"string"}],"description":"string","aiGenerated":true,"templatingRequired":true}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commands"

            payload = {
                "command": "string",
                "commandRunners": ["string"],
                "commandType": "linux",
                "files": ["string"],
                "launchType": "string",
                "listensTo": "string",
                "name": "string",
                "organization": "string",
                "schedule": "string",
                "scheduleRepeatType": "string",
                "sudo": True,
                "systems": ["string"],
                "template": "string",
                "timeout": "string",
                "trigger": "string",
                "user": "string",
                "shell": "string",
                "timeToLiveSeconds": 0,
                "scheduleYear": 0,
                "filesS3": [
                    {
                        "objectStorageId": "string",
                        "name": "string",
                        "destination": "string",
                        "sha256": "string"
                    }
                ],
                "description": "string",
                "aiGenerated": True,
                "templatingRequired": True
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commands' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"command":"string","commandRunners":["string"],"commandType":"linux","files":["string"],"launchType":"string","listensTo":"string","name":"string","organization":"string","schedule":"string","scheduleRepeatType":"string","sudo":true,"systems":["string"],"template":"string","timeout":"string","trigger":"string","user":"string","shell":"string","timeToLiveSeconds":0,"scheduleYear":0,"filesS3":[{"objectStorageId":"string","name":"string","destination":"string","sha256":"string"}],"description":"string","aiGenerated":true,"templatingRequired":true}'
  /commands/{id}:
    delete:
      description: |-
        This endpoint deletes a specific command based on the Command ID.

        #### Sample Request
        ```
        curl -X DELETE https://console.jumpcloud.com/api/commands/{CommandID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'

        ```
      operationId: commands_delete
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/command'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Delete a Command
      tags:
        - Commands
      x-scopes:
        - commands
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url https://console.jumpcloud.com/api/commands/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commands/{id}"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commands/{id}' -Method DELETE -Headers $headers
    get:
      description: |-
        This endpoint returns a specific command based on the command ID.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/commands/{CommandID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
        ```
      operationId: commands_get
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/command'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: List an individual Command
      tags:
        - Commands
      x-scopes:
        - commands
        - commands.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/commands/{id}?fields=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commands/{id}"

            querystring = {"fields":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commands/{id}?fields=SOME_STRING_VALUE' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      description: "This endpoint Updates a command based on the command ID and returns the modified command record.\n\n#### Sample Request\n```\ncurl -X PUT https://console.jumpcloud.com/api/commands/{CommandID} \\\n  -H 'Accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-api-key: {API_KEY}' \\\n  -d '{\n\t\"name\":\"Test API Command\",\n\t\"command\":\"String\",\n\t\"user\":\"{UserID}\",\n\t\"schedule\":\"\",\n\t\"timeout\":\"100\"\n}'\n\n```"
      operationId: commands_put
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        $ref: '#/components/requestBodies/command'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/command'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Update a Command
      tags:
        - Commands
      x-scopes:
        - commands
      x-functionalities-tags:
        - commands
        - devices-windows-commands-crud
        - devices-darwin-commands-crud
        - devices-linux-commands-crud
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url https://console.jumpcloud.com/api/commands/{id} \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"command":"string","commandRunners":["string"],"commandType":"linux","files":["string"],"launchType":"string","listensTo":"string","name":"string","organization":"string","schedule":"string","scheduleRepeatType":"string","sudo":true,"systems":["string"],"template":"string","timeout":"string","trigger":"string","user":"string","shell":"string","timeToLiveSeconds":0,"scheduleYear":0,"filesS3":[{"objectStorageId":"string","name":"string","destination":"string","sha256":"string"}],"description":"string","aiGenerated":true,"templatingRequired":true}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commands/{id}"

            payload = {
                "command": "string",
                "commandRunners": ["string"],
                "commandType": "linux",
                "files": ["string"],
                "launchType": "string",
                "listensTo": "string",
                "name": "string",
                "organization": "string",
                "schedule": "string",
                "scheduleRepeatType": "string",
                "sudo": True,
                "systems": ["string"],
                "template": "string",
                "timeout": "string",
                "trigger": "string",
                "user": "string",
                "shell": "string",
                "timeToLiveSeconds": 0,
                "scheduleYear": 0,
                "filesS3": [
                    {
                        "objectStorageId": "string",
                        "name": "string",
                        "destination": "string",
                        "sha256": "string"
                    }
                ],
                "description": "string",
                "aiGenerated": True,
                "templatingRequired": True
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("PUT", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commands/{id}' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{"command":"string","commandRunners":["string"],"commandType":"linux","files":["string"],"launchType":"string","listensTo":"string","name":"string","organization":"string","schedule":"string","scheduleRepeatType":"string","sudo":true,"systems":["string"],"template":"string","timeout":"string","trigger":"string","user":"string","shell":"string","timeToLiveSeconds":0,"scheduleYear":0,"filesS3":[{"objectStorageId":"string","name":"string","destination":"string","sha256":"string"}],"description":"string","aiGenerated":true,"templatingRequired":true}'
  /files/command/{id}:
    get:
      description: |-
        This endpoint returns the uploaded file(s) associated with a specific command.

        #### Sample Request

        ```
        curl -X GET https://console.jumpcloud.com/api/files/command/{commandID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          ```
      operationId: command_file_get
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - $ref: '#/components/parameters/trait_skip_skip'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commandfilereturn'
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
      security:
        - x-api-key: []
      summary: Get a Command File
      tags:
        - Commands
      x-scopes:
        - commands
        - commands.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/files/command/{id}?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/files/command/{id}"

            querystring = {"fields":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/files/command/{id}?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - command-files
  /organizations:
    get:
      description: |-
        This endpoint returns Organization Details.

        #### Sample Request

        ```
        curl -X GET \
          https://console.jumpcloud.com/api/organizations \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          ```
      operationId: organization_list
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_search_search'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_sort_sort'
        - $ref: '#/components/parameters/trait_sortIgnoreCase_sortIgnoreCase'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizationslist'
      security:
        - x-api-key: []
      summary: Get Organization Details
      tags:
        - Organizations
        - Managed Service Provider
      x-scopes:
        - commandrunner.legacy
        - organizations
        - organizations.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/organizations?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&search=SOME_STRING_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&sortIgnoreCase=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/organizations"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","search":"SOME_STRING_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE","sortIgnoreCase":"SOME_STRING_VALUE"}

            headers = {"x-api-key": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/organizations?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&search=SOME_STRING_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&sortIgnoreCase=SOME_STRING_VALUE' -Method GET -Headers $headers
    x-functionalities-tags:
      - organizations
  /organizations/{id}:
    get:
      description: |-
        This endpoint returns a particular Organization.

        #### Sample Request

        ```
        curl -X GET https://console.jumpcloud.com/api/organizations/{OrganizationID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
        ```
      operationId: organizations_get
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organization'
        '401':
          description: Unauthorized
        '403':
          description: ''
      security:
        - x-api-key: []
      summary: Get an Organization
      tags:
        - Organizations
      x-scopes:
        - organizations
        - organizations.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/organizations/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/organizations/{id}"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {"x-api-key": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/organizations/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      description: |-
        This endpoint allows you to update an Organization.

        Note: `passwordPolicy` settings are only used when `passwordCompliance` is set to "custom". We discourage the use of non-custom passwordCompliance values.

        `emailDisclaimer` can only be modified by paying customers.

        `hasStripeCustomerId` is deprecated and will be removed.

        #### Sample Request

        ```
        curl -X PUT https://console.jumpcloud.com/api/organizations/{OrganizationID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "settings": {
            "contactName": "Admin Name",
            "contactEmail": "admin@company.com",
            "systemUsersCanEdit":true,
            "passwordPolicy": {
              "enableMaxHistory": true,
              "maxHistory": 3
            }
          }
        }'
        ```
      operationId: organization_put
      requestBody:
        content:
          application/json:
            schema:
              properties:
                settings:
                  $ref: '#/components/schemas/organizationsettingsput'
              type: object
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organization'
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Update an Organization
      tags:
        - Organizations
      x-scopes:
        - organizations
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url https://console.jumpcloud.com/api/organizations/{id} \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --data '{"settings":{"contactEmail":"string","contactName":"string","disableLdap":true,"disableUM":true,"duplicateLDAPGroups":true,"emailDisclaimer":"string","enableManagedUID":true,"features":{"directoryInsightsPremium":{"enabled":true,"createdAt":"string","updatedAt":"string"},"systemInsights":{"enableNewDarwin":true,"enableNewLinux":true,"enableNewWindows":true,"enabled":true,"createdAt":"string","updatedAt":"string"},"directoryInsights":{"enabled":true}},"growthData":{},"logo":"string","name":"string","newSystemUserStateDefaults":{"applicationImport":"ACTIVATED","csvImport":"ACTIVATED","manualEntry":"ACTIVATED"},"passwordCompliance":"custom","passwordPolicy":{"allowUnenrolledMFAPasswordReset":true,"allowUsernameSubstring":true,"daysAfterExpirationToSelfRecover":0,"daysBeforeExpirationToForceReset":1,"disallowCommonlyUsedPasswords":true,"disallowCustomBannedPasswords":true,"disallowSequentialOrRepetitiveChars":true,"displayComplexityOnResetScreen":true,"effectiveDate":"string","enableDaysAfterExpirationToSelfRecover":true,"enableDaysBeforeExpirationToForceReset":true,"enableLockoutTimeInSeconds":true,"enableMaxHistory":true,"enableMaxLoginAttempts":true,"enableMinChangePeriodInDays":true,"enableMinLength":true,"enablePasswordExpirationInDays":true,"gracePeriodDate":"string","lockoutTimeInSeconds":0,"maxHistory":1,"maxLoginAttempts":1,"minChangePeriodInDays":0,"minLength":0,"needsLowercase":true,"needsNumeric":true,"needsSymbolic":true,"needsUppercase":true,"passwordExpirationInDays":1},"showIntro":true,"systemUserDefaults":{"restrictedFields":[{"field":"addresses","type":"active_directory","id":"string"}]},"systemUserPasswordExpirationInDays":0,"systemUsersCanEdit":true,"disableGoogleLogin":true,"userPortal":{"idleSessionDurationMinutes":1,"cookieExpirationType":"session"},"deviceIdentificationEnabled":true,"trustedAppConfig":{"trustedApps":[{"name":"Application 1","path":"/someuser/Applications/application1.app","teamid":"FakeTeamID"}]},"maxSystemUsers":0}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/organizations/{id}"

            payload = {"settings": {
                    "contactEmail": "string",
                    "contactName": "string",
                    "disableLdap": True,
                    "disableUM": True,
                    "duplicateLDAPGroups": True,
                    "emailDisclaimer": "string",
                    "enableManagedUID": True,
                    "features": {
                        "directoryInsightsPremium": {
                            "enabled": True,
                            "createdAt": "string",
                            "updatedAt": "string"
                        },
                        "systemInsights": {
                            "enableNewDarwin": True,
                            "enableNewLinux": True,
                            "enableNewWindows": True,
                            "enabled": True,
                            "createdAt": "string",
                            "updatedAt": "string"
                        },
                        "directoryInsights": {"enabled": True}
                    },
                    "growthData": {},
                    "logo": "string",
                    "name": "string",
                    "newSystemUserStateDefaults": {
                        "applicationImport": "ACTIVATED",
                        "csvImport": "ACTIVATED",
                        "manualEntry": "ACTIVATED"
                    },
                    "passwordCompliance": "custom",
                    "passwordPolicy": {
                        "allowUnenrolledMFAPasswordReset": True,
                        "allowUsernameSubstring": True,
                        "daysAfterExpirationToSelfRecover": 0,
                        "daysBeforeExpirationToForceReset": 1,
                        "disallowCommonlyUsedPasswords": True,
                        "disallowCustomBannedPasswords": True,
                        "disallowSequentialOrRepetitiveChars": True,
                        "displayComplexityOnResetScreen": True,
                        "effectiveDate": "string",
                        "enableDaysAfterExpirationToSelfRecover": True,
                        "enableDaysBeforeExpirationToForceReset": True,
                        "enableLockoutTimeInSeconds": True,
                        "enableMaxHistory": True,
                        "enableMaxLoginAttempts": True,
                        "enableMinChangePeriodInDays": True,
                        "enableMinLength": True,
                        "enablePasswordExpirationInDays": True,
                        "gracePeriodDate": "string",
                        "lockoutTimeInSeconds": 0,
                        "maxHistory": 1,
                        "maxLoginAttempts": 1,
                        "minChangePeriodInDays": 0,
                        "minLength": 0,
                        "needsLowercase": True,
                        "needsNumeric": True,
                        "needsSymbolic": True,
                        "needsUppercase": True,
                        "passwordExpirationInDays": 1
                    },
                    "showIntro": True,
                    "systemUserDefaults": {"restrictedFields": [
                            {
                                "field": "addresses",
                                "type": "active_directory",
                                "id": "string"
                            }
                        ]},
                    "systemUserPasswordExpirationInDays": 0,
                    "systemUsersCanEdit": True,
                    "disableGoogleLogin": True,
                    "userPortal": {
                        "idleSessionDurationMinutes": 1,
                        "cookieExpirationType": "session"
                    },
                    "deviceIdentificationEnabled": True,
                    "trustedAppConfig": {"trustedApps": [
                            {
                                "name": "Application 1",
                                "path": "/someuser/Applications/application1.app",
                                "teamid": "FakeTeamID"
                            }
                        ]},
                    "maxSystemUsers": 0
                }}
            headers = {
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("PUT", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/organizations/{id}' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{"settings":{"contactEmail":"string","contactName":"string","disableLdap":true,"disableUM":true,"duplicateLDAPGroups":true,"emailDisclaimer":"string","enableManagedUID":true,"features":{"directoryInsightsPremium":{"enabled":true,"createdAt":"string","updatedAt":"string"},"systemInsights":{"enableNewDarwin":true,"enableNewLinux":true,"enableNewWindows":true,"enabled":true,"createdAt":"string","updatedAt":"string"},"directoryInsights":{"enabled":true}},"growthData":{},"logo":"string","name":"string","newSystemUserStateDefaults":{"applicationImport":"ACTIVATED","csvImport":"ACTIVATED","manualEntry":"ACTIVATED"},"passwordCompliance":"custom","passwordPolicy":{"allowUnenrolledMFAPasswordReset":true,"allowUsernameSubstring":true,"daysAfterExpirationToSelfRecover":0,"daysBeforeExpirationToForceReset":1,"disallowCommonlyUsedPasswords":true,"disallowCustomBannedPasswords":true,"disallowSequentialOrRepetitiveChars":true,"displayComplexityOnResetScreen":true,"effectiveDate":"string","enableDaysAfterExpirationToSelfRecover":true,"enableDaysBeforeExpirationToForceReset":true,"enableLockoutTimeInSeconds":true,"enableMaxHistory":true,"enableMaxLoginAttempts":true,"enableMinChangePeriodInDays":true,"enableMinLength":true,"enablePasswordExpirationInDays":true,"gracePeriodDate":"string","lockoutTimeInSeconds":0,"maxHistory":1,"maxLoginAttempts":1,"minChangePeriodInDays":0,"minLength":0,"needsLowercase":true,"needsNumeric":true,"needsSymbolic":true,"needsUppercase":true,"passwordExpirationInDays":1},"showIntro":true,"systemUserDefaults":{"restrictedFields":[{"field":"addresses","type":"active_directory","id":"string"}]},"systemUserPasswordExpirationInDays":0,"systemUsersCanEdit":true,"disableGoogleLogin":true,"userPortal":{"idleSessionDurationMinutes":1,"cookieExpirationType":"session"},"deviceIdentificationEnabled":true,"trustedAppConfig":{"trustedApps":[{"name":"Application 1","path":"/someuser/Applications/application1.app","teamid":"FakeTeamID"}]},"maxSystemUsers":0}}'
    x-functionalities-tags:
      - organizations
  /radiusservers:
    get:
      description: |-
        This endpoint allows you to get a list of all RADIUS servers in your organization.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/radiusservers/ \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
        ```
      operationId: radius_servers_list
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_sort_sort'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/radiusserverslist'
      security:
        - x-api-key: []
      summary: List Radius Servers
      tags:
        - Radius Servers
      x-scopes:
        - radius
        - radius.readonly
      x-functionalities-tags:
        - radius-read
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/radiusservers?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/radiusservers"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/radiusservers?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' -Method GET -Headers $headers
    post:
      description: |-
        This endpoint allows you to create RADIUS servers in your organization.

        #### Sample Request
        ```
        curl -X POST https://console.jumpcloud.com/api/radiusservers/ \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
            "name": "{test_radius}",
            "networkSourceIp": "{0.0.0.0}",
            "sharedSecret":"{secretpassword}",
            "userLockoutAction": "REMOVE",
            "userPasswordExpirationAction": "MAINTAIN"
        }'
        ```
      operationId: radius_servers_post
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/radiusserverpost'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/radiusserver'
      security:
        - x-api-key: []
      summary: Create a Radius Server
      tags:
        - Radius Servers
      x-scopes:
        - radius
      x-functionalities-tags:
        - radius-create
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/radiusservers \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"authIdp":"JUMPCLOUD","mfa":"DISABLED","name":"string","networkSourceIp":"string","sharedSecret":"string","tagNames":["string"],"userLockoutAction":"string","userPasswordExpirationAction":"string","userPasswordEnabled":true,"userCertEnabled":true,"deviceCertEnabled":true,"caCert":"string","requireTlsAuth":true,"radsecEnabled":true,"requireRadsec":true,"caSource":"NONE"}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/radiusservers"

            payload = {
                "authIdp": "JUMPCLOUD",
                "mfa": "DISABLED",
                "name": "string",
                "networkSourceIp": "string",
                "sharedSecret": "string",
                "tagNames": ["string"],
                "userLockoutAction": "string",
                "userPasswordExpirationAction": "string",
                "userPasswordEnabled": True,
                "userCertEnabled": True,
                "deviceCertEnabled": True,
                "caCert": "string",
                "requireTlsAuth": True,
                "radsecEnabled": True,
                "requireRadsec": True,
                "caSource": "NONE"
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/radiusservers' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"authIdp":"JUMPCLOUD","mfa":"DISABLED","name":"string","networkSourceIp":"string","sharedSecret":"string","tagNames":["string"],"userLockoutAction":"string","userPasswordExpirationAction":"string","userPasswordEnabled":true,"userCertEnabled":true,"deviceCertEnabled":true,"caCert":"string","requireTlsAuth":true,"radsecEnabled":true,"requireRadsec":true,"caSource":"NONE"}'
  /radiusservers/{id}:
    get:
      description: |-
        This endpoint allows you to get a RADIUS server in your organization.

        ####
        ```
        curl -X PUT https://console.jumpcloud.com/api/radiusservers/{ServerID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
        ```
      operationId: radius_servers_get
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/radiusserver'
      security:
        - x-api-key: []
      summary: Get Radius Server
      tags:
        - Radius Servers
      x-scopes:
        - radius
        - radius.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url https://console.jumpcloud.com/api/radiusservers/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/radiusservers/{id}"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/radiusservers/{id}' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - radius-create
    put:
      description: |-
        This endpoint allows you to update RADIUS servers in your organization.

        ####
        ```
        curl -X PUT https://console.jumpcloud.com/api/radiusservers/{ServerID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
            "name": "{name_update}",
            "networkSourceIp": "{0.0.0.0}",
            "sharedSecret": "{secret_password}",
            "userLockoutAction": "REMOVE",
            "userPasswordExpirationAction": "MAINTAIN"
        }'
        ```
      operationId: radius_servers_put
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              examples:
                - name: test radius
                  networkSourceIp: 0.0.0.0
                  sharedSecret: secretradiuspassword
                  tagsNames:
                    - tag1
              properties:
                mfa:
                  enum:
                    - DISABLED
                    - ENABLED
                    - REQUIRED
                    - ALWAYS
                  type: string
                name:
                  type: string
                networkSourceIp:
                  type: string
                tags:
                  items:
                    type: string
                  type: array
                userLockoutAction:
                  type: string
                userPasswordExpirationAction:
                  type: string
                sharedSecret:
                  type: string
                userPasswordEnabled:
                  type: boolean
                userCertEnabled:
                  type: boolean
                deviceCertEnabled:
                  type: boolean
                caCert:
                  type: string
                requireTlsAuth:
                  type: boolean
                radsecEnabled:
                  type: boolean
                requireRadsec:
                  type: boolean
                caSource:
                  default: NONE
                  enum:
                    - NONE
                    - BYOC
                    - JUMPCLOUD_MANAGED
                  type: string
              required:
                - name
                - networkSourceIp
                - sharedSecret
              type: object
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/radiusserverput'
      security:
        - x-api-key: []
      summary: Update Radius Servers
      tags:
        - Radius Servers
      x-scopes:
        - radius
      x-functionalities-tags:
        - radius-update
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url https://console.jumpcloud.com/api/radiusservers/{id} \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"name":"test radius","networkSourceIp":"0.0.0.0","sharedSecret":"secretradiuspassword","tagsNames":["tag1"]}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/radiusservers/{id}"

            payload = {
                "name": "test radius",
                "networkSourceIp": "0.0.0.0",
                "sharedSecret": "secretradiuspassword",
                "tagsNames": ["tag1"]
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("PUT", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/radiusservers/{id}' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{"name":"test radius","networkSourceIp":"0.0.0.0","sharedSecret":"secretradiuspassword","tagsNames":["tag1"]}'
    delete:
      description: |-
        This endpoint allows you to delete RADIUS servers in your organization.
        ```
        curl -X DELETE https://console.jumpcloud.com/api/radiusservers/{ServerID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
        ```
      operationId: radius_servers_delete
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/radiusserverput'
      security:
        - x-api-key: []
      summary: Delete Radius Server
      tags:
        - Radius Servers
      x-scopes:
        - radius
      x-functionalities-tags:
        - radius-delete
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url https://console.jumpcloud.com/api/radiusservers/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/radiusservers/{id}"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/radiusservers/{id}' -Method DELETE -Headers $headers
  /search/organizations:
    post:
      description: |-
        This endpoint will return Organization data based on your search parameters. This endpoint WILL NOT allow you to add a new Organization.

        You can use the supported parameters and pass those in the body of request.

        The parameters must be passed as Content-Type application/json.


        #### Sample Request
        ```
        curl -X POST https://console.jumpcloud.com/api/search/organizations \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "search":{
            "fields" : ["settings.name"],
            "searchTerm": "Second"
            },
          "fields": ["_id", "displayName", "logoUrl"],
          "limit" : 0,
          "skip" : 0
        }'
        ```
      operationId: search_organizations_post
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_skip_skip'
      requestBody:
        $ref: '#/components/requestBodies/search'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizationslist'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Search Organizations
      tags:
        - Search
      x-scopes:
        - commandrunner.legacy
        - organizations
        - organizations.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url 'https://console.jumpcloud.com/api/search/organizations?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --data '{"fields":"string","filter":{},"searchFilter":{}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/search/organizations"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE"}

            payload = {
                "fields": "string",
                "filter": {},
                "searchFilter": {}
            }
            headers = {
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/search/organizations?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"fields":"string","filter":{},"searchFilter":{}}'
    x-functionalities-tags:
      - search
      - organizations
  /search/systems:
    post:
      description: |-
        Return Systems in multi-record format allowing for the passing of the `filter` and `searchFilter` parameters. This WILL NOT allow you to add a new system.

        To support advanced filtering you can use the `filter` and `searchFilter` parameters that can only be passed in the body of POST /api/search/* routes. The `filter` and `searchFilter` parameters must be passed as Content-Type application/json.

        The `filter` parameter is an object with a single property, either `and` or `or` with the value of the property being an array of query expressions.

        This allows you to filter records using the logic of matching ALL or ANY records in the array of query expressions. If the `and` or `or` are not included the default behavior is to match ALL query expressions.

        The `searchFilter` parameter allows text searching on supported fields by specifying a `searchTerm` and a list of `fields` to query on. If any `field` has a partial text match on the `searchTerm` the record will be returned.


        #### Sample Request

        Exact search for a list of hostnames
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systems \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "filter": {
            "or": [
              {"hostname" : "my-hostname"},
              {"hostname" : "other-hostname"}
            ]
          },
          "fields" : "os hostname displayName"
        }'
        ```

        Text search for a hostname or display name
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systems \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter": {
            "searchTerm": "my-host",
            "fields": ["hostname", "displayName"]
          },
          "fields": "os hostname displayName"
        }'
        ```

        Text search for a multiple hostnames.
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systems \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter": {
            "searchTerm": ["my-host", "my-other-host"],
            "fields": ["hostname"]
          },
          "fields": "os hostname displayName"
        }'
        ```

        Combining `filter` and `searchFilter` to search for names that match a given OS
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systems \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter": {
            "searchTerm": "my-host",
            "fields": ["hostname", "displayName"]
          },
          "filter": {
            "or": [
              {"os" : "Ubuntu"},
              {"os" : "Mac OS X"}
            ]
          },
          "fields": "os hostname displayName"
        }'
        ```
      operationId: search_systems_post
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_search_x-eventually-consistent'
      requestBody:
        $ref: '#/components/requestBodies/search'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemsSearchlist'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Search Systems
      tags:
        - Search
      x-scopes:
        - systems
        - systems.readonly
        - commandrunner.legacy
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url 'https://console.jumpcloud.com/api/search/systems?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&filter=SOME_STRING_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-eventually-consistent: SOME_BOOLEAN_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"fields":"string","filter":{},"searchFilter":{}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/search/systems"

            querystring = {"fields":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","filter":"SOME_STRING_VALUE"}

            payload = {
                "fields": "string",
                "filter": {},
                "searchFilter": {}
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-eventually-consistent": "SOME_BOOLEAN_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-eventually-consistent", "SOME_BOOLEAN_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/search/systems?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&filter=SOME_STRING_VALUE' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"fields":"string","filter":{},"searchFilter":{}}'
    x-functionalities-tags:
      - search
  /search/systemusers:
    post:
      description: |-
        Return System Users in multi-record format allowing for the passing of the `filter` and `searchFilter` parameters. This WILL NOT allow you to add a new system user.

        To support advanced filtering you can use the `filter` and `searchFilter` parameters that can only be passed in the body of POST /api/search/* routes. The `filter` and `searchFilter` parameters must be passed as Content-Type application/json.

        The `filter` parameter is an object with a single property, either `and` or `or` with the value of the property being an array of query expressions.

        This allows you to filter records using the logic of matching ALL or ANY records in the array of query expressions. If the `and` or `or` are not included the default behavior is to match ALL query expressions.

        The `searchFilter` parameter allows text searching on supported fields by specifying a `searchTerm` and a list of `fields` to query on. If any `field` has a partial text match on the `searchTerm` the record will be returned.


        #### Sample Request

        Exact search for a list of system users in a department
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systemusers \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "filter" : [{"department" : "IT"}],
          "fields" : "email username sudo"
        }'
        ```

        Text search for system users with and email on a domain
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systemusers \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter" : {
            "searchTerm": "@jumpcloud.com",
            "fields": ["email"]
          },
          "fields" : "email username sudo"
        }'
        ```

        Text search for multiple system users
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systemusers \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter" : {
            "searchTerm": ["john", "sarah"],
            "fields": ["username"]
          },
          "fields" : "email username sudo"
        }'
        ```

        Combining `filter` and `searchFilter` to text search for system users with and email on a domain who are in a list of departments
        ```
        curl -X POST https://console.jumpcloud.com/api/search/systemusers \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter": {
            "searchTerm": "@jumpcloud.com",
            "fields": ["email"]
          },
          "filter": {
            "or": [
              {"department" : "IT"},
              {"department" : "Sales"}
            ]
          },
          "fields" : "email username sudo"
        }'
        ```
      operationId: search_systemusers_post
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - $ref: '#/components/parameters/trait_search_x-eventually-consistent'
      requestBody:
        $ref: '#/components/requestBodies/search'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemUsersSearchlist'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Search System Users
      tags:
        - Search
      x-scopes:
        - users
        - users.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url 'https://console.jumpcloud.com/api/search/systemusers?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-eventually-consistent: SOME_BOOLEAN_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"fields":"string","filter":{},"searchFilter":{}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/search/systemusers"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE"}

            payload = {
                "fields": "string",
                "filter": {},
                "searchFilter": {}
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-eventually-consistent": "SOME_BOOLEAN_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-eventually-consistent", "SOME_BOOLEAN_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/search/systemusers?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"fields":"string","filter":{},"searchFilter":{}}'
    x-functionalities-tags:
      - search
  /search/commands:
    post:
      description: |-
        Return Commands in multi-record format allowing for the passing of the `filter` and `searchFilter` parameters. This WILL NOT allow you to add a new command.
        To support advanced filtering you can use the `filter` and `searchFilter` parameters that can only be passed in the body of POST /api/search/* routes. The `filter` and `searchFilter` parameters must be passed as Content-Type application/json.
        The `filter` parameter is an object with a single property, either `and` or `or` with the value of the property being an array of query expressions.
        This allows you to filter records using the logic of matching ALL or ANY records in the array of query expressions. If the `and` or `or` are not included the default behavior is to match ALL query expressions.
        The `searchFilter` parameter allows text searching on supported fields by specifying a `searchTerm` and a list of `fields` to query on. If any `field` has a partial text match on the `searchTerm` the record will be returned.

        #### Sample Request
        Exact search for a list of commands in a launchType
        ```
        curl -X POST https://console.jumpcloud.com/api/search/commands \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "filter" : [{"launchType" : "repeated"}],
          "fields" : "name launchType sudo"
        }'
        ```
        Text search for commands with name
        ```
        curl -X POST https://console.jumpcloud.com/api/search/commands \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter" : {
            "searchTerm": "List",
            "fields": ["name"]
          },
          "fields" : "name launchType sudo"
        }'
        ```
        Text search for multiple commands
        ```
        curl -X POST https://console.jumpcloud.com/api/search/commands \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter" : {
            "searchTerm": ["List", "Log"],
            "fields": ["name"]
          },
          "fields" : "name launchType sudo"
        }'
        ```
        Combining `filter` and `searchFilter` to text search for commands with name who are in a list of launchType
        ```
        curl -X POST https://console.jumpcloud.com/api/search/commands \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "searchFilter": {
            "searchTerm": "List",
            "fields": ["name"]
          },
          "filter": {
            "or": [
              {"launchType" : "repeated"},
              {"launchType" : "one-time"}
            ]
          },
          "fields" : "name launchType sudo"
        }'
        ```
      operationId: search_commands_post
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        $ref: '#/components/requestBodies/search'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commandslist'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Search Commands
      tags:
        - Search
      x-scopes:
        - commands
        - commands.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url 'https://console.jumpcloud.com/api/search/commands?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"fields":"string","filter":{},"searchFilter":{}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/search/commands"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE"}

            payload = {
                "fields": "string",
                "filter": {},
                "searchFilter": {}
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/search/commands?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"fields":"string","filter":{},"searchFilter":{}}'
    x-functionalities-tags:
      - search
  /search/commandresults:
    post:
      description: |-
        Return Command Results in multi-record format allowing for the passing of the `filter` parameter.

        To support advanced filtering you can use the `filter` and `searchFilter` parameters that can only be passed in the body of POST /api/search/commandresults route. The `filter` parameter must be passed as Content-Type application/json.

        The `filter` parameter is an object with a single property, either `and` or `or` with the value of the property being an array of query expressions.

        This allows you to filter records using the logic of matching ALL or ANY records in the array of query expressions. If the `and` or `or` are not included the default behavior is to match ALL query expressions.


        #### Sample Request

        Exact search for a specific command result
        ```
        curl -X POST https://console.jumpcloud.com/api/search/commandresults \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
          "filter" : "workflowInstanceId:$eq:62f3c599ec4e928499069c7f",
          "fields" : "name workflowId sudo"
        }'
        ```
      operationId: search_commandresults_post
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        $ref: '#/components/requestBodies/search'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commandresultslist'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Search Commands Results
      tags:
        - Search
      x-scopes:
        - commands
        - commands.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url 'https://console.jumpcloud.com/api/search/commandresults?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"fields":"string","filter":{},"searchFilter":{}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/search/commandresults"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE"}

            payload = {
                "fields": "string",
                "filter": {},
                "searchFilter": {}
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/search/commandresults?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"fields":"string","filter":{},"searchFilter":{}}'
    x-functionalities-tags:
      - search
  /systems:
    get:
      description: |-
        This endpoint returns all Systems.

        #### Sample Requests
        ```
        curl -X GET https://console.jumpcloud.com/api/systems \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'

        ```
      operationId: systems_list
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_limit_limit'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - $ref: '#/components/parameters/trait_search_search'
        - $ref: '#/components/parameters/trait_skip_skip'
        - $ref: '#/components/parameters/trait_sort_sort'
        - $ref: '#/components/parameters/trait_filter_filter'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemslist'
      security:
        - x-api-key: []
      summary: List All Systems
      tags:
        - Systems
      x-scopes:
        - systems
        - systems.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/systems?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&search=SOME_STRING_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems"

            querystring = {"fields":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","search":"SOME_STRING_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems?fields=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&search=SOME_STRING_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    x-functionalities-tags:
      - systems
  /systems/{id}:
    delete:
      description: |-
        This endpoint allows you to delete a system. This command will cause the system to uninstall the JumpCloud agent from its self which can can take about a minute. If the system is not connected to JumpCloud the system record will simply be removed.

        #### Sample Request
        ```
        curl -X DELETE https://console.jumpcloud.com/api/systems/{SystemID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          ```
      operationId: systems_delete
      parameters:
        - $ref: '#/components/parameters/trait_systemContextAuth_Date'
        - $ref: '#/components/parameters/trait_systemContextAuth_Authorization'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/system'
      security:
        - x-api-key: []
      summary: Delete a System
      tags:
        - Systems
      x-scopes:
        - systems
        - systems.self
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url https://console.jumpcloud.com/api/systems/{id} \
              --header 'Authorization: SOME_STRING_VALUE' \
              --header 'Date: SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems/{id}"

            headers = {
                "Date": "SOME_STRING_VALUE",
                "Authorization": "SOME_STRING_VALUE",
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("Date", "SOME_STRING_VALUE")
            $headers.Add("Authorization", "SOME_STRING_VALUE")
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems/{id}' -Method DELETE -Headers $headers
    get:
      description: |-
        This endpoint returns an individual system.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/systems/{SystemID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          ```
      operationId: systems_get
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_systemContextAuth_Date'
        - $ref: '#/components/parameters/trait_systemContextAuth_Authorization'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/system'
      security:
        - x-api-key: []
      summary: List an individual system
      tags:
        - Systems
      x-scopes:
        - systems
        - systems.readonly
        - systems.self
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/systems/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'Authorization: SOME_STRING_VALUE' \
              --header 'Date: SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems/{id}"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {
                "Date": "SOME_STRING_VALUE",
                "Authorization": "SOME_STRING_VALUE",
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("Date", "SOME_STRING_VALUE")
            $headers.Add("Authorization", "SOME_STRING_VALUE")
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      description: "This endpoint allows you to update a system.\n\n#### Sample Request \n```\ncurl -X PUT https://console.jumpcloud.com/api/systems/{SystemID} \\\n  -H 'Accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-api-key: {API_KEY}' \\\n  -d '{\n\t\"displayName\":\"Name_Update\",\n\t\"allowSshPasswordAuthentication\":\"true\",\n\t\"allowSshRootLogin\":\"true\",\n\t\"allowMultiFactorAuthentication\":\"true\",\n\t\"allowPublicKeyAuthentication\":\"false\",\n\t\"attributes\":[\n\t\t{\"name\":\"{ATTRIBUTE_NAME}\",\"value\":\"{ATTRIBUTE_VALUE}\"}\n\t]\n}'\n```"
      operationId: systems_put
      parameters:
        - $ref: '#/components/parameters/trait_systemContextAuth_Date'
        - $ref: '#/components/parameters/trait_systemContextAuth_Authorization'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/systemput'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/system'
      security:
        - x-api-key: []
      summary: Update a system
      tags:
        - Systems
      x-scopes:
        - systems
        - systems.self
        - systems.management
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url https://console.jumpcloud.com/api/systems/{id} \
              --header 'Authorization: SOME_STRING_VALUE' \
              --header 'Date: SOME_STRING_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"agentBoundMessages":[{"cmd":"string"}],"allowMultiFactorAuthentication":true,"allowPublicKeyAuthentication":true,"allowSshPasswordAuthentication":true,"allowSshRootLogin":true,"displayName":"string","attributes":[{"name":"string","value":"string"}],"tags":["string"]}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems/{id}"

            payload = {
                "agentBoundMessages": [{"cmd": "string"}],
                "allowMultiFactorAuthentication": True,
                "allowPublicKeyAuthentication": True,
                "allowSshPasswordAuthentication": True,
                "allowSshRootLogin": True,
                "displayName": "string",
                "attributes": [
                    {
                        "name": "string",
                        "value": "string"
                    }
                ],
                "tags": ["string"]
            }
            headers = {
                "Date": "SOME_STRING_VALUE",
                "Authorization": "SOME_STRING_VALUE",
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("PUT", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("Date", "SOME_STRING_VALUE")
            $headers.Add("Authorization", "SOME_STRING_VALUE")
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems/{id}' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{"agentBoundMessages":[{"cmd":"string"}],"allowMultiFactorAuthentication":true,"allowPublicKeyAuthentication":true,"allowSshPasswordAuthentication":true,"allowSshRootLogin":true,"displayName":"string","attributes":[{"name":"string","value":"string"}],"tags":["string"]}'
    x-functionalities-tags:
      - systems
  /systemusers:
    get:
      description: |-
        This endpoint returns all systemusers.

        #### Sample Request

        ```
        curl -X GET https://console.jumpcloud.com/api/systemusers \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
        ```
      operationId: systemusers_list
      parameters:
        - description: The number of records to return at once.
          in: query
          name: limit
          schema:
            type: integer
            default: 10
        - description: The offset into the records to return.
          in: query
          name: skip
          schema:
            type: integer
            default: 0
        - description: |
            The space separated fields used to sort the collection.
            User-entered text fields such as lastname, firstname, and jobTitle are sorted ignoring case.
            Email, status, and category fields use stored ordering.
            Default sort is ascending, prefix with `-` to sort descending.
          in: query
          name: sort
          schema:
            type: string
            default: ''
          allowReserved: true
        - description: |
            The space separated fields included in the returned records.
            If omitted the default list of fields will be returned.
          in: query
          name: fields
          schema:
            type: string
            default: ''
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - $ref: '#/components/parameters/trait_search_search'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemuserslist'
        '401':
          description: ''
      security:
        - x-api-key: []
      summary: List all system users
      tags:
        - Systemusers
      x-scopes:
        - commandrunner.legacy
        - users
        - users.readonly
      x-functionalities-tags:
        - users-read
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/systemusers?limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&search=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers"

            querystring = {"limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE","fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE","search":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers?limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE&search=SOME_STRING_VALUE' -Method GET -Headers $headers
    post:
      description: |-
        "This endpoint allows you to create a new system user.

        #### Default User State
        The `state` of the user can be explicitly passed in or omitted. If
        `state` is omitted from the request, then the user will get created
        using the value returned from the
        [Get an Organization](https://docs.jumpcloud.com/api/1.0/index.html#operation/organizations_get)
        endpoint. The default user state for manually created users is stored in
        `settings.newSystemUserStateDefaults.manualEntry`

        These default state values can be changed in the admin portal settings
        or by using the
        [Update an Organization](https://docs.jumpcloud.com/api/1.0/index.html#operation/organization_put)
        endpoint.

        #### Sample Request

        ```
        curl -X POST https://console.jumpcloud.com/api/systemusers \
        -H 'Accept: application/json' \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: {API_KEY}' \
        -d '{
              "username":"{username}",
              "email":"{email_address}",
              "firstname":"{Name}",
              "lastname":"{Name}"
            }'
        ```
      operationId: systemusers_post
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - in: query
          description: |-
            Pass this query parameter when a client wants all validation errors
            to be returned with a detailed error response for the form field
            specified. The current form fields are allowed:

            * `password`

            #### Password validation flag
            Use the `password` validation flag to receive details on a possible
            bad request response
            ```
            ?fullValidationDetails=password
            ```
            Without the flag, default behavior will be a normal 400 with only
            a single validation string error
            #### Expected Behavior
            Clients can expect a list of validation error mappings for the
            validation query field in the details provided on the response:
            ```
            {
              "code": 400,
              "message": "Password validation fail",
              "status": "INVALID_ARGUMENT",
              "details": [
                  {
                    "fieldViolationsList": [
                      {"field": "password", "description": "specialCharacter"}
                    ],
                    '@type': 'type.googleapis.com/google.rpc.BadRequest',
                  },
              ],
            },
            ```
          name: fullValidationDetails
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/systemuserputpost'
      responses:
        '200':
          description: User added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemuserreturn'
        '400':
          description: User already exists or Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Create a system user
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.create
      x-functionalities-tags:
        - users-create-staged
        - user-create-active
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url 'https://console.jumpcloud.com/api/systemusers?fullValidationDetails=SOME_STRING_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"account_locked":true,"activated":true,"addresses":[{"country":"string","extendedAddress":"string","locality":"string","poBox":"string","postalCode":"string","region":"string","streetAddress":"string","type":"string"}],"allow_public_key":true,"alternateEmail":"string","attributes":[{"name":"string","value":"string"}],"company":"string","costCenter":"string","department":"string","description":"string","disableDeviceMaxLoginAttempts":true,"displayname":"string","email":"string","employeeIdentifier":"string","employeeType":"string","enable_managed_uid":true,"enable_user_portal_multifactor":true,"external_dn":"string","external_password_expiration_date":"2019-08-24T14:15:22Z","external_source_type":"string","externally_managed":true,"firstname":"string","jobTitle":"string","lastname":"string","ldap_binding_user":true,"location":"string","manager":"string","mfa":{"configured":true,"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1},"middlename":"string","password":"string","password_never_expires":true,"passwordless_sudo":true,"phoneNumbers":[{"number":"string","type":"string"}],"public_key":"string","recoveryEmail":{"address":"string"},"relationships":[{"type":"string","value":"string"}],"samba_service_user":true,"state":"STAGED","sudo":true,"suspended":true,"tags":["string"],"unix_guid":1,"unix_uid":1,"username":"string","managedAppleId":"string","delegatedAuthority":{"name":"ActiveDirectory","id":"string"},"restrictedFields":[{"field":"addresses","type":"active_directory","id":"string"}]}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers"

            querystring = {"fullValidationDetails":"SOME_STRING_VALUE"}

            payload = {
                "account_locked": True,
                "activated": True,
                "addresses": [
                    {
                        "country": "string",
                        "extendedAddress": "string",
                        "locality": "string",
                        "poBox": "string",
                        "postalCode": "string",
                        "region": "string",
                        "streetAddress": "string",
                        "type": "string"
                    }
                ],
                "allow_public_key": True,
                "alternateEmail": "string",
                "attributes": [
                    {
                        "name": "string",
                        "value": "string"
                    }
                ],
                "company": "string",
                "costCenter": "string",
                "department": "string",
                "description": "string",
                "disableDeviceMaxLoginAttempts": True,
                "displayname": "string",
                "email": "string",
                "employeeIdentifier": "string",
                "employeeType": "string",
                "enable_managed_uid": True,
                "enable_user_portal_multifactor": True,
                "external_dn": "string",
                "external_password_expiration_date": "2019-08-24T14:15:22Z",
                "external_source_type": "string",
                "externally_managed": True,
                "firstname": "string",
                "jobTitle": "string",
                "lastname": "string",
                "ldap_binding_user": True,
                "location": "string",
                "manager": "string",
                "mfa": {
                    "configured": True,
                    "exclusion": True,
                    "exclusionUntil": "2019-08-24T14:15:22Z",
                    "exclusionDays": 1
                },
                "middlename": "string",
                "password": "string",
                "password_never_expires": True,
                "passwordless_sudo": True,
                "phoneNumbers": [
                    {
                        "number": "string",
                        "type": "string"
                    }
                ],
                "public_key": "string",
                "recoveryEmail": {"address": "string"},
                "relationships": [
                    {
                        "type": "string",
                        "value": "string"
                    }
                ],
                "samba_service_user": True,
                "state": "STAGED",
                "sudo": True,
                "suspended": True,
                "tags": ["string"],
                "unix_guid": 1,
                "unix_uid": 1,
                "username": "string",
                "managedAppleId": "string",
                "delegatedAuthority": {
                    "name": "ActiveDirectory",
                    "id": "string"
                },
                "restrictedFields": [
                    {
                        "field": "addresses",
                        "type": "active_directory",
                        "id": "string"
                    }
                ]
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers?fullValidationDetails=SOME_STRING_VALUE' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"account_locked":true,"activated":true,"addresses":[{"country":"string","extendedAddress":"string","locality":"string","poBox":"string","postalCode":"string","region":"string","streetAddress":"string","type":"string"}],"allow_public_key":true,"alternateEmail":"string","attributes":[{"name":"string","value":"string"}],"company":"string","costCenter":"string","department":"string","description":"string","disableDeviceMaxLoginAttempts":true,"displayname":"string","email":"string","employeeIdentifier":"string","employeeType":"string","enable_managed_uid":true,"enable_user_portal_multifactor":true,"external_dn":"string","external_password_expiration_date":"2019-08-24T14:15:22Z","external_source_type":"string","externally_managed":true,"firstname":"string","jobTitle":"string","lastname":"string","ldap_binding_user":true,"location":"string","manager":"string","mfa":{"configured":true,"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1},"middlename":"string","password":"string","password_never_expires":true,"passwordless_sudo":true,"phoneNumbers":[{"number":"string","type":"string"}],"public_key":"string","recoveryEmail":{"address":"string"},"relationships":[{"type":"string","value":"string"}],"samba_service_user":true,"state":"STAGED","sudo":true,"suspended":true,"tags":["string"],"unix_guid":1,"unix_uid":1,"username":"string","managedAppleId":"string","delegatedAuthority":{"name":"ActiveDirectory","id":"string"},"restrictedFields":[{"field":"addresses","type":"active_directory","id":"string"}]}'
    x-functionalities-tags:
      - users
  /systemusers/{id}:
    delete:
      description: |-
        This endpoint allows you to delete a particular system user.

        #### Sample Request
        ```
        curl -X DELETE https://console.jumpcloud.com/api/systemusers/{UserID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
        ```
      operationId: systemusers_delete
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - in: query
          name: cascade_manager
          description: This is an optional flag that can be enabled on the DELETE call, DELETE /systemusers/{id}?cascade_manager=null. This parameter will clear the Manager attribute on all direct reports and then delete the account.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemuserreturn'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
      security:
        - x-api-key: []
      summary: Delete a system user
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.delete
      x-functionalities-tags:
        - users-delete
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url 'https://console.jumpcloud.com/api/systemusers/{id}?cascade_manager=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}"

            querystring = {"cascade_manager":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("DELETE", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}?cascade_manager=SOME_STRING_VALUE' -Method DELETE -Headers $headers
    get:
      description: |-
        This endpoint returns a particular System User.

        #### Sample Request

        ```
        curl -X GET https://console.jumpcloud.com/api/systemusers/{UserID} \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
        ```
      operationId: systemusers_get
      parameters:
        - $ref: '#/components/parameters/trait_fields_fields'
        - $ref: '#/components/parameters/trait_filter_filter'
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemuserreturn'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: List a system user
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.readonly
      x-functionalities-tags:
        - users-get
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/systemusers/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}"

            querystring = {"fields":"SOME_STRING_VALUE","filter":"SOME_STRING_VALUE"}

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}?fields=SOME_STRING_VALUE&filter=SOME_STRING_VALUE' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      description: "This endpoint allows you to update a system user.\n\n#### Sample Request\n\n```\ncurl -X PUT https://console.jumpcloud.com/api/systemusers/{UserID} \\\n  -H 'Accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-api-key: {API_KEY}' \\\n  -d '{\n\t\"email\":\"{email_address}\",\n\t\"firstname\":\"{Name}\",\n\t\"lastname\":\"{Name}\"\n}'\n```"
      operationId: systemusers_put
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
        - in: query
          description: |-
            This endpoint can take in a query when a client wants all validation errors to be returned with error response for the form field specified, i.e. 'password'
            #### Password validation flag
            Use the "password" validation flag to receive details on a possible bad request response
            Without the `password` flag, default behavior will be a normal 400 with only a validation string message
            ```
            ?fullValidationDetails=password
            ```
            #### Expected Behavior
            Clients can expect a list of validation error mappings for the validation query field in the details provided on the response:
            ```
            {
              "code": 400,
              "message": "Password validation fail",
              "status": "INVALID_ARGUMENT",
              "details": [
                  {
                    "fieldViolationsList": [{ "field": "password", "description": "passwordHistory" }],
                    '@type': 'type.googleapis.com/google.rpc.BadRequest',
                  },
              ],
            },
            ```
          name: fullValidationDetails
          x-functionalities-tags:
            - user-updates
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/systemuserput'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/systemuserreturn'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthorized
      security:
        - x-api-key: []
      summary: Update a system user
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.properties
        - users.properties.update
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url 'https://console.jumpcloud.com/api/systemusers/{id}?fullValidationDetails=SOME_STRING_VALUE' \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"account_locked":true,"addresses":[{"country":"string","extendedAddress":"string","locality":"string","poBox":"string","postalCode":"string","region":"string","streetAddress":"string","type":"string"}],"allow_public_key":true,"alternateEmail":"string","attributes":[{"name":"string","value":"string"}],"company":"string","costCenter":"string","department":"string","description":"string","disableDeviceMaxLoginAttempts":true,"displayname":"string","email":"string","employeeIdentifier":"string","employeeType":"string","enable_managed_uid":true,"enable_user_portal_multifactor":true,"external_dn":"string","external_password_expiration_date":"string","external_source_type":"string","externally_managed":true,"firstname":"string","jobTitle":"string","lastname":"string","ldap_binding_user":true,"location":"string","manager":"string","mfa":{"configured":true,"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1},"middlename":"string","password":"string","password_never_expires":true,"phoneNumbers":[{"number":"string","type":"string"}],"public_key":"string","relationships":[{"type":"string","value":"string"}],"samba_service_user":true,"ssh_keys":[{"name":"string","public_key":"string"}],"state":"ACTIVATED","sudo":true,"suspended":true,"tags":["string"],"unix_guid":1,"unix_uid":1,"username":"string","managedAppleId":"string","delegatedAuthority":{"name":"ActiveDirectory","id":"string"},"restrictedFields":[{"field":"addresses","type":"active_directory","id":"string"}]}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}"

            querystring = {"fullValidationDetails":"SOME_STRING_VALUE"}

            payload = {
                "account_locked": True,
                "addresses": [
                    {
                        "country": "string",
                        "extendedAddress": "string",
                        "locality": "string",
                        "poBox": "string",
                        "postalCode": "string",
                        "region": "string",
                        "streetAddress": "string",
                        "type": "string"
                    }
                ],
                "allow_public_key": True,
                "alternateEmail": "string",
                "attributes": [
                    {
                        "name": "string",
                        "value": "string"
                    }
                ],
                "company": "string",
                "costCenter": "string",
                "department": "string",
                "description": "string",
                "disableDeviceMaxLoginAttempts": True,
                "displayname": "string",
                "email": "string",
                "employeeIdentifier": "string",
                "employeeType": "string",
                "enable_managed_uid": True,
                "enable_user_portal_multifactor": True,
                "external_dn": "string",
                "external_password_expiration_date": "string",
                "external_source_type": "string",
                "externally_managed": True,
                "firstname": "string",
                "jobTitle": "string",
                "lastname": "string",
                "ldap_binding_user": True,
                "location": "string",
                "manager": "string",
                "mfa": {
                    "configured": True,
                    "exclusion": True,
                    "exclusionUntil": "2019-08-24T14:15:22Z",
                    "exclusionDays": 1
                },
                "middlename": "string",
                "password": "string",
                "password_never_expires": True,
                "phoneNumbers": [
                    {
                        "number": "string",
                        "type": "string"
                    }
                ],
                "public_key": "string",
                "relationships": [
                    {
                        "type": "string",
                        "value": "string"
                    }
                ],
                "samba_service_user": True,
                "ssh_keys": [
                    {
                        "name": "string",
                        "public_key": "string"
                    }
                ],
                "state": "ACTIVATED",
                "sudo": True,
                "suspended": True,
                "tags": ["string"],
                "unix_guid": 1,
                "unix_uid": 1,
                "username": "string",
                "managedAppleId": "string",
                "delegatedAuthority": {
                    "name": "ActiveDirectory",
                    "id": "string"
                },
                "restrictedFields": [
                    {
                        "field": "addresses",
                        "type": "active_directory",
                        "id": "string"
                    }
                ]
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("PUT", url, json=payload, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}?fullValidationDetails=SOME_STRING_VALUE' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{"account_locked":true,"addresses":[{"country":"string","extendedAddress":"string","locality":"string","poBox":"string","postalCode":"string","region":"string","streetAddress":"string","type":"string"}],"allow_public_key":true,"alternateEmail":"string","attributes":[{"name":"string","value":"string"}],"company":"string","costCenter":"string","department":"string","description":"string","disableDeviceMaxLoginAttempts":true,"displayname":"string","email":"string","employeeIdentifier":"string","employeeType":"string","enable_managed_uid":true,"enable_user_portal_multifactor":true,"external_dn":"string","external_password_expiration_date":"string","external_source_type":"string","externally_managed":true,"firstname":"string","jobTitle":"string","lastname":"string","ldap_binding_user":true,"location":"string","manager":"string","mfa":{"configured":true,"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1},"middlename":"string","password":"string","password_never_expires":true,"phoneNumbers":[{"number":"string","type":"string"}],"public_key":"string","relationships":[{"type":"string","value":"string"}],"samba_service_user":true,"ssh_keys":[{"name":"string","public_key":"string"}],"state":"ACTIVATED","sudo":true,"suspended":true,"tags":["string"],"unix_guid":1,"unix_uid":1,"username":"string","managedAppleId":"string","delegatedAuthority":{"name":"ActiveDirectory","id":"string"},"restrictedFields":[{"field":"addresses","type":"active_directory","id":"string"}]}'
    x-functionalities-tags:
      - users
  /systemusers/{id}/expire:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: This endpoint allows you to expire a user's password.
      operationId: systemusers_expire
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
            text/plain:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Expire a system user's password
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.password
        - users.password.expire
        - users.update.passwordreset
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/expire \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/expire"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/expire' -Method POST -Headers $headers
    x-functionalities-tags:
      - users
      - users-device-windows-password-expiring
      - users-device-darwin-password-expiring
      - users-device-linux-password-expiring
  /systemusers/{id}/password:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: Force set a user's password.
      operationId: systemusers_password
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  type: string
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
      security:
        - x-api-key: []
      summary: Force set a system user's password
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.password
        - users.password.set
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/password \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"password":"string"}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/password"

            payload = {"password": "string"}
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/password' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"password":"string"}'
    x-functionalities-tags:
      - users
      - users-password-reset
  /systemusers/{id}/mfa/enforce:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint updates a user's MFA properties.

        #### Sample Request
        ```
        curl -X POST \
          https://console.jumpcloud.com/api/systemusers/{UserID}/mfa/enforce \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{
            "enable_user_portal_multifactor": true,
            "mfa": {
              "configured": true,
              "exclusion": true,
              "exclusionUntil": "{date-time}",
              "exclusionDays": 7
            }
          }'
        ```
      operationId: systemusers_mfa_enforce
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enable_user_portal_multifactor:
                  type: boolean
                  description: Whether to require MFA for user portal login
                mfa:
                  $ref: '#/components/schemas/mfa'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
      security:
        - x-api-key: []
      summary: Update a system user's MFA properties
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.mfa
        - users.mfa.enforce
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/mfa/enforce \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"enable_user_portal_multifactor":true,"mfa":{"configured":true,"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/mfa/enforce"

            payload = {
                "enable_user_portal_multifactor": True,
                "mfa": {
                    "configured": True,
                    "exclusion": True,
                    "exclusionUntil": "2019-08-24T14:15:22Z",
                    "exclusionDays": 1
                }
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/mfa/enforce' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"enable_user_portal_multifactor":true,"mfa":{"configured":true,"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1}}'
    x-functionalities-tags:
      - users
      - users-mfa
  /systemusers/{id}/resetmfa:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint resets the user's TOTP key and initiates a new MFA enrollment period. The user will be prompted to set up MFA at their next login. If `Unified MFA is enabled`, this action will also delete the user's existing Push Notification endpoint.
        Warning: The user must complete the setup before the `exclusionUntil` date to avoid being locked out of MFA-protected resources.

        Please refer to our [Knowledge Base Article](https://support.jumpcloud.com/customer/en/portal/articles/2959138-using-multifactor-authentication-with-jumpcloud) on setting up MFA for more information.

        #### Sample Request
        ```
        curl -X POST \
          https://console.jumpcloud.com/api/systemusers/{UserID}/resetmfa \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d '{"exclusion": true, "exclusionUntil": "{date-time}"}'

        ```
      operationId: systemusers_resetmfa
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                exclusion:
                  type: boolean
                exclusionUntil:
                  format: date-time
                  type: string
                exclusionDays:
                  minimum: 1
                  type: number
              type: object
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
            text/plain:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Reset a system user's MFA token
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.mfa.reset
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/resetmfa \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/resetmfa"

            payload = {
                "exclusion": True,
                "exclusionUntil": "2019-08-24T14:15:22Z",
                "exclusionDays": 1
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/resetmfa' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"exclusion":true,"exclusionUntil":"2019-08-24T14:15:22Z","exclusionDays":1}'
    x-functionalities-tags:
      - users
  /systemusers/{id}/mfasync:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint allows you to re-sync a user's mfa enrollment status

        #### Sample Request
        ```
        curl -X POST \
          https://console.jumpcloud.com/api/systemusers/{UserID}/mfasync \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \

        ```
      operationId: systemusers_mfasync
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Sync a systemuser's mfa enrollment status
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.mfa.sync
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/mfasync \
              --header 'x-api-key: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/mfasync"

            headers = {"x-api-key": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/mfasync' -Method POST -Headers $headers
    x-functionalities-tags:
      - users
  /systemusers/{id}/sshkeys:
    get:
      description: This endpoint will return a specific System User's public SSH key.
      operationId: sshkey_list
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/sshkeylist'
                type: array
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
      security:
        - x-api-key: []
      summary: List a system user's public SSH keys
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url https://console.jumpcloud.com/api/systemusers/{id}/sshkeys \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/sshkeys"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/sshkeys' -Method GET -Headers $headers
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: This endpoint will create a specific System User's Public SSH Key.
      operationId: sshkey_post
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sshkeypost'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sshkeylist'
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
      security:
        - x-api-key: []
      summary: Create a system user's Public SSH Key
      tags:
        - Systemusers
      x-scopes:
        - users
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/sshkeys \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"name":"string","public_key":"string"}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/sshkeys"

            payload = {
                "name": "string",
                "public_key": "string"
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/sshkeys' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"name":"string","public_key":"string"}'
    x-functionalities-tags:
      - users
  /systemusers/{id}/totpinfo:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    get:
      description: This endpoint will return info for a specific System User's TOTP enrollment.
      operationId: systemusers_totp_info
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/totpenrollmentinfo'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
      security:
        - x-api-key: []
      summary: Display info about a System User's TOTP enrollment.
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.readonly
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url https://console.jumpcloud.com/api/systemusers/{id}/totpinfo \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/totpinfo"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/totpinfo' -Method GET -Headers $headers
    x-functionalities-tags:
      - users
  /systemusers/{id}/unlock:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: This endpoint allows you to unlock a user's account.
      operationId: systemusers_unlock
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
            text/plain:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Unlock a system user
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.state
        - users.state.unlock
        - users.update.unlock
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/unlock \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/unlock"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/unlock' -Method POST -Headers $headers
    x-functionalities-tags:
      - users
  /systemusers/{systemuser_id}/sshkeys/{id}:
    delete:
      description: This endpoint will delete a specific System User's SSH Key.
      operationId: sshkey_delete
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
            text/plain:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
      security:
        - x-api-key: []
      summary: Delete a system user's Public SSH Keys
      tags:
        - Systemusers
      x-scopes:
        - users
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url https://console.jumpcloud.com/api/systemusers/{systemuser_id}/sshkeys/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{systemuser_id}/sshkeys/{id}"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{systemuser_id}/sshkeys/{id}' -Method DELETE -Headers $headers
    parameters:
      - in: path
        name: systemuser_id
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - users
      - user-portal-ssh-keys
  /systemusers/{id}/state/activate:
    post:
      summary: Activate System User
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.state
        - users.state.activate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      operationId: systemusers_state_activate
      description: |-
        This endpoint changes the state of a STAGED user to ACTIVATED.
        #### Email Flag
        Use the "email" flag to determine whether or not to send a Welcome or
        Activation email to the newly activated user. Sending an empty body
        without the `email` flag, will send an email with default behavior
        (see the "Behavior" section below)
        ```
        {}
        ```
        Sending `email=true` flag will send an email with default behavior (see `Behavior` below)
        ```
        { "email": true }
        ```
        Populated email will override the default behavior and send to the specified email value
        ```
        { "email": "example@example.com" }
        ```
        Sending `email=false` will suppress sending the email
        ```
        { "email": false }
        ```
        #### Behavior
        Users with a password will be sent a Welcome email to:
          - The address specified in `email` flag in the request
          - If no `email` flag, the user's primary email address (default behavior)
        Users without a password will be sent an Activation email to:
          - The address specified in `email` flag in the request
          - If no `email` flag, the user's alternate email address (default behavior)
          - If no alternate email address, the user's primary email address (default behavior)

        #### Sample Request
        ```
        curl -X POST https://console.jumpcloud.com/api/systemusers/{id}/state/activate \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: <api-key>' \
          -d '{ "email": "alternate-activation-email@email.com" }'

        ```
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: object
      security:
        - x-api-key: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/state/activate \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --data '{"email":{}}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/state/activate"

            payload = {"email": {}}
            headers = {
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/state/activate' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"email":{}}'
    x-functionalities-tags:
      - users-state-change
      - users
  /systemusers/{id}/state/suspend:
    post:
      summary: Suspend System User
      tags:
        - Systemusers
      operationId: systemusers_state_suspend
      description: |-
        This endpoint changes the state of a user to SUSPENDED.
        Request body must be empty.
        #### Sample Request
        ```
        curl -X POST https://console.jumpcloud.com/api/systemusers/{id}/state/suspend \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: <api-key>'
        ```
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      x-scopes:
        - users
        - users.state
        - users.state.suspend
      x-functionalities-tags:
        - users
        - users-state-change
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/state/suspend \
              --header 'x-api-key: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/state/suspend"

            headers = {"x-api-key": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/state/suspend' -Method POST -Headers $headers
  /users/resettotp/self:
    parameters: []
    x-functionalities-tags:
      - admin-login-totp-reset
  /users/resettotp/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    post:
      summary: Administrator TOTP Reset Initiation
      tags:
        - Users
        - Managed Service Provider
      x-scopes:
        - administrators
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '412':
          description: Preconditions not met
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: mesasge containing what error occured
                    type: string
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      operationId: admin_totpreset_begin
      security:
        - x-api-key: []
      description: This endpoint initiates a TOTP reset for an admin. This request does not accept a body.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/users/resettotp/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/users/resettotp/{id}"

            headers = {"x-api-key": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/users/resettotp/{id}' -Method POST -Headers $headers
    x-functionalities-tags:
      - admin-login-totp-reset
  /users/{id}:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      description: This endpoint allows you to update a user.
      operationId: users_put
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/userput'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userreturn'
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Update a user
      tags:
        - Users
        - Managed Service Provider
      x-scopes:
        - administrators
      x-functionalities-tags:
        - user-updates
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url https://console.jumpcloud.com/api/users/{id} \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"apiKeyAllowed":true,"email":"user@example.com","enableMultiFactor":true,"firstname":"string","growthData":{},"lastWhatsNewChecked":"2019-08-24","lastname":"string","roleName":"string","roles":["string"]}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/users/{id}"

            payload = {
                "apiKeyAllowed": True,
                "email": "user@example.com",
                "enableMultiFactor": True,
                "firstname": "string",
                "growthData": {},
                "lastWhatsNewChecked": "2019-08-24",
                "lastname": "string",
                "roleName": "string",
                "roles": ["string"]
            }
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("PUT", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/users/{id}' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{"apiKeyAllowed":true,"email":"user@example.com","enableMultiFactor":true,"firstname":"string","growthData":{},"lastWhatsNewChecked":"2019-08-24","lastname":"string","roleName":"string","roles":["string"]}'
  /applications/selection:
    x-functionalities-tags:
      - applications
  /cancelQueuedCommands:
    x-functionalities-tags:
      - queued-commands
  /checkQueuedCommands:
    x-functionalities-tags:
      - queued-commands
  /command/trigger/{name}/{workflowId}:
    parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - devices-windows-commands-execution
      - devices-darwin-commands-execution
      - devices-linux-commands-execution
  /commands/{id}/results:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/trait_limit_limit'
      - $ref: '#/components/parameters/trait_skip_skip'
    get:
      summary: Get results for a specific command
      tags:
        - Commands
      x-scopes:
        - commands
        - commands.readonly
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/commandresult'
      operationId: commands_getResults
      description: |-
        This endpoint returns results for a specific command.

        #### Sample Request
        ```
        curl -X GET https://console.jumpcloud.com/api/commands/{id}/results \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          ````
      security:
        - x-api-key: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://console.jumpcloud.com/api/commands/{id}/results?limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' \
              --header 'x-api-key: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/commands/{id}/results"

            querystring = {"limit":"SOME_INTEGER_VALUE","skip":"SOME_INTEGER_VALUE"}

            headers = {"x-api-key": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers, params=querystring)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/commands/{id}/results?limit=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' -Method GET -Headers $headers
    x-functionalities-tags:
      - command-results
  /files:
    x-functionalities-tags:
      - command-files
  /files/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - command-files
  /idsources:
    x-functionalities-tags:
      - id-sources
  /idsources/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - id-sources
  /idsources/selection:
    x-functionalities-tags:
      - id-sources
  /notifications:
    x-functionalities-tags:
      - org-notifications
  /notifications/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - org-notifications
  /notifications/grouped:
    x-functionalities-tags:
      - org-notifications
  /organizations/{id}/consumptions:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - organizations
  /organizations/{id}/paymentdetails:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - accounts-page-payment-info
  /organizations/{id}/paymentparams:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - accounts-page-payment-info
  /organizations/{id}/subscription:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - accounts-page-payment-info
  /organizations/{organization_id}/applications/{id}/metadata.xml:
    parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
    x-functionalities-tags:
      - organizations
      - applications
  /roles:
    x-functionalities-tags:
      - roles
  /systems-lite:
    x-functionalities-tags:
      - systems
  /systems/updateAuthConf:
    x-functionalities-tags:
      - users-device-windows-authconf-updates
      - users-device-darwin-authconf-updates
      - users-device-linux-authconf-updates
  /systemusers-lite:
    x-functionalities-tags:
      - users
  /systemusers/{id}/reactivate:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    post:
      summary: Reactivate System User
      operationId: systemuser_reactivate
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      description: |-
        This endpoint triggers the sending of a reactivation e-mail to a system user.
        #### Sample Request
        ```shell
        curl -X POST https://console.jumpcloud.com/api/systemusers/{id}/reactivate \
          -H "Accept: application/json" \
          -H "Content-Type: application/json" \
          -H "x-api-key: <api-key>" \
          -d '{ "email": "<activation-email>" }'
        ```
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  format: email
                  type: string
                  description: Email address to which the activation email will be sent. If it is not provided, the activation email will be sent to the system user's email address.
      tags:
        - Systemusers
      x-scopes:
        - users
        - users.notification
        - users.notification.send-activation-email
      security:
        - x-api-key: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systemusers/{id}/reactivate \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE' \
              --data '{"email":"user@example.com"}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systemusers/{id}/reactivate"

            payload = {"email": "user@example.com"}
            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systemusers/{id}/reactivate' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"email":"user@example.com"}'
    x-functionalities-tags:
      - users
      - users-state-change
  /systemusers/reactivate:
    x-functionalities-tags:
      - users
  /userportal/mfa:
    x-functionalities-tags:
      - user-portal-totp
  /userportal/mfa/duo:
    x-functionalities-tags:
      - user-portal-totp
  /userportal/mfa/push:
    x-functionalities-tags:
      - user-portal-totp
  /userportal/mfa/sms:
    x-functionalities-tags:
      - user-portal-totp
  /userportal/mfa/totp:
    x-functionalities-tags:
      - user-portal-totp
  /userportal/mfa/webauthn:
    x-functionalities-tags:
      - user-portal-totp
  /users:
    x-functionalities-tags:
      - admin
  /users/generateApiKey:
    parameters: []
    x-functionalities-tags:
      - admin
  /users/getSelf:
    x-functionalities-tags:
      - admin
  /users/putSelf:
    x-functionalities-tags:
      - admin
  /users/reactivate:
    parameters: []
    x-functionalities-tags:
      - admin
  /users/reactivate/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    get:
      summary: Administrator Password Reset Initiation
      tags:
        - Users
        - Managed Service Provider
      x-scopes:
        - administrators
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      operationId: users_reactivate_get
      description: This endpoint triggers the sending of a reactivation e-mail to an administrator.
      security:
        - x-api-key: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url https://console.jumpcloud.com/api/users/reactivate/{id} \
              --header 'x-api-key: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/users/reactivate/{id}"

            headers = {"x-api-key": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/users/reactivate/{id}' -Method GET -Headers $headers
    x-functionalities-tags:
      - admin
  /users/resetPassword:
    x-functionalities-tags:
      - admin
      - admin-password-reset
  /users/selection:
    x-functionalities-tags:
      - admin
  /runCommand:
    post:
      summary: Run a command
      operationId: commands_run
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  queueIds:
                    type: array
                    items:
                      type: string
                  workflowInstanceId:
                    type: string
      description: |-
        This endpoint allows you to run a command.
        #### Sample Request

        ```
        curl -X POST https://console.jumpcloud.com/api/runCommand \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}'
          -d '{"_id":"{commandID}", "systemIds":["systemId"]}'
        ```
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                _id:
                  description: The ID of the command.
                  type: string
                systemIds:
                  description: An optional list of device IDs to run the command on. If omitted, the command will run on devices bound to the command.
                  type: array
                  items:
                    type: string
      tags:
        - Commands
      x-scopes:
        - commands
        - commands.schedule
        - systems.management
      security:
        - x-api-key: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/runCommand \
              --header 'content-type: application/json' \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --data '{"_id":"string","systemIds":["string"]}'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/runCommand"

            payload = {
                "_id": "string",
                "systemIds": ["string"]
            }
            headers = {
                "x-api-key": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }

            response = requests.request("POST", url, json=payload, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $headers.Add("content-type", "application/json")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/runCommand' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"_id":"string","systemIds":["string"]}'
    x-functionalities-tags:
      - run-command
  /systems/{system_id}/command/builtin/erase:
    parameters:
      - name: system_id
        in: path
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint allows you to run the erase command on the specified device. If a device is offline, the command will be run when the device becomes available. Only supported on Linux and Windows devices. Use Apple MDM security commands for macOS devices.

        #### Sample Request
        ```
        curl -X POST \
          https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/erase \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d {}
        ```
      operationId: systems_commandBuiltinErase
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '201':
          description: Command created
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Erase a System
      tags:
        - Systems
      x-scopes:
        - systems
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/erase \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/erase"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/erase' -Method POST -Headers $headers
    x-functionalities-tags:
      - devices-windows-security-command
      - devices-darwin-security-command
      - devices-linux-security-command
      - devices-ios-security-command
  /systems/{system_id}/command/builtin/lock:
    parameters:
      - name: system_id
        in: path
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint allows you to run the lock command on the specified device. If a device is offline, the command will be run when the device becomes available. Only supported on Linux and Windows devices. Use Apple MDM security commands for macOS devices.

        #### Sample Request
        ```
        curl -X POST \
          https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/lock \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d {}
        ```
      operationId: systems_commandBuiltinLock
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '201':
          description: Command created
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Lock a System
      tags:
        - Systems
      x-scopes:
        - systems
        - systems.management
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/lock \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/lock"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/lock' -Method POST -Headers $headers
    x-functionalities-tags:
      - devices-windows-security-command
      - devices-darwin-security-command
      - devices-linux-security-command
      - devices-ios-security-command
  /systems/{system_id}/command/builtin/restart:
    parameters:
      - name: system_id
        in: path
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint allows you to run the restart command on the specified device. If a device is offline, the command will be run when the device becomes available. Only supported on Linux and Windows devices. Use Apple MDM security commands for macOS devices.

        #### Sample Request
        ```
        curl -X POST \
          https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/restart \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d {}
        ```
      operationId: systems_commandBuiltinRestart
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '201':
          description: Command created
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Restart a System
      tags:
        - Systems
      x-scopes:
        - systems
        - systems.management
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/restart \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/restart"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/restart' -Method POST -Headers $headers
    x-functionalities-tags:
      - devices-windows-security-command
      - devices-darwin-security-command
      - devices-linux-security-command
  /systems/{system_id}/command/builtin/shutdown:
    parameters:
      - name: system_id
        in: path
        required: true
        schema:
          type: string
    post:
      description: |-
        This endpoint allows you to run the shutdown command on the specified device. If a device is offline, the command will be run when the device becomes available. Only supported on Linux and Windows devices. Use Apple MDM security commands for macOS devices.

        #### Sample Request
        ```
        curl -X POST \
          https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/shutdown \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -H 'x-api-key: {API_KEY}' \
          -d {}
        ```
      operationId: systems_commandBuiltinShutdown
      parameters:
        - $ref: '#/components/parameters/trait_multiTenantRequestHeaders_x-org-id'
      responses:
        '201':
          description: Command created
        '400':
          $ref: '#/components/responses/trait_standardErrors_400'
        '401':
          $ref: '#/components/responses/trait_standardErrors_401'
        '403':
          $ref: '#/components/responses/trait_standardErrors_403'
        '404':
          $ref: '#/components/responses/trait_standardErrors_404'
        '409':
          $ref: '#/components/responses/trait_standardErrors_409'
        '500':
          $ref: '#/components/responses/trait_standardErrors_500'
      security:
        - x-api-key: []
      summary: Shutdown a System
      tags:
        - Systems
      x-scopes:
        - systems
        - systems.management
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/shutdown \
              --header 'x-api-key: REPLACE_KEY_VALUE' \
              --header 'x-org-id: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/shutdown"

            headers = {
                "x-org-id": "SOME_STRING_VALUE",
                "x-api-key": "REPLACE_KEY_VALUE"
            }

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Powershell
          source: |-
            $headers=@{}
            $headers.Add("x-org-id", "SOME_STRING_VALUE")
            $headers.Add("x-api-key", "REPLACE_KEY_VALUE")
            $response = Invoke-RestMethod -Uri 'https://console.jumpcloud.com/api/systems/{system_id}/command/builtin/shutdown' -Method POST -Headers $headers
    x-functionalities-tags:
      - devices-darwin-security-command
components:
  schemas:
    attribute:
      type: object
      properties:
        name:
          type: string
        value:
          maxLength: 1024
          type: string
    application:
      properties:
        _id:
          type: string
        active:
          type: boolean
        beta:
          type: boolean
        color:
          enum:
            - ''
            - '#202D38'
            - '#005466'
            - '#3E8696'
            - '#006CAC'
            - '#0617AC'
            - '#7C6ADA'
            - '#D5779D'
            - '#9E2F00'
            - '#FFB000'
            - '#58C469'
            - '#57C49F'
            - '#FF6C03'
          type: string
        config:
          description: Only required for SAML configuration (not required for Bookmarks)
          properties:
            spErrorFlow:
              properties:
                label:
                  type: string
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: boolean
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            signAssertion:
              properties:
                label:
                  type: string
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: boolean
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            signResponse:
              properties:
                label:
                  type: string
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: boolean
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            acsUrl:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            constantAttributes:
              properties:
                label:
                  type: string
                mutable:
                  type: boolean
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type: object
                type:
                  type: string
                value:
                  items:
                    properties:
                      name:
                        type: string
                      readOnly:
                        type: boolean
                      required:
                        type: boolean
                      value:
                        type: string
                      visible:
                        type: boolean
                    type: object
                  type: array
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            databaseAttributes:
              properties:
                position:
                  type: integer
              type: object
            idpCertificate:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            idpEntityId:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            idpPrivateKey:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            spEntityId:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            authClaimConfiguration:
              properties:
                type:
                  type: string
                visible:
                  type: boolean
                sendAmrClaim:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: boolean
                    readOnly:
                      type: boolean
                authnContextMode:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: string
                singleAuthnContextValue:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: string
                authnContextMappings:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: array
                      items:
                        type: object
              type:
                - object
                - 'null'
          type: object
        created:
          type: string
        databaseAttributes:
          type: array
          items:
            type: object
        description:
          maxLength: 256
          type: string
        displayLabel:
          type: string
        displayName:
          type: string
        learnMore:
          type: string
        logo:
          properties:
            color:
              enum:
                - ''
                - '#202D38'
                - '#005466'
                - '#3E8696'
                - '#006CAC'
                - '#0617AC'
                - '#7C6ADA'
                - '#D5779D'
                - '#9E2F00'
                - '#FFB000'
                - '#58C469'
                - '#57C49F'
                - '#FF6C03'
              type: string
            url:
              type: string
          type: object
        name:
          type: string
        organization:
          type: string
        sso:
          $ref: '#/components/schemas/sso'
        ssoUrl:
          type: string
        parentApp:
          type: string
        referenceApplications:
          type: array
          description: Organization-specific copies of this shared SSO application chain. Returned only for all-organizations list requests (x-org-id '-').
          items:
            type: object
            properties:
              id:
                type: string
                description: Application id for the copy in that organization.
              orgId:
                type: string
                description: Organization id for the copy.
            required:
              - id
              - orgId
        aiReady:
          type: boolean
          description: Admin opt-in that this application instance should appear as AI Ready in the User Portal. Informational only — does not grant access. Setting to true requires at least one configured MCP connection. Gated by feature flag DC-4194-app-ai-ready.
      required:
        - config
        - name
        - ssoUrl
      title: Application
      type: object
    applicationslist:
      properties:
        name:
          type: string
        results:
          description: The list of applications.
          items:
            $ref: '#/components/schemas/application'
          type: array
        totalCount:
          description: The total number of applications.
          type: integer
      title: ApplicationsList
      type: object
    applicationtemplate:
      properties:
        _id:
          type: string
        active:
          type: boolean
        beta:
          type: boolean
        status:
          enum:
            - ''
            - end_of_life
            - end_of_support
            - beta
          type: string
        color:
          enum:
            - ''
            - '#202D38'
            - '#005466'
            - '#3E8696'
            - '#006CAC'
            - '#0617AC'
            - '#7C6ADA'
            - '#D5779D'
            - '#9E2F00'
            - '#FFB000'
            - '#58C469'
            - '#57C49F'
            - '#FF6C03'
          type: string
        config:
          properties:
            spErrorFlow:
              properties:
                label:
                  type: string
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: boolean
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            signAssertion:
              properties:
                label:
                  type: string
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: boolean
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            signResponse:
              properties:
                label:
                  type: string
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: boolean
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            acsUrl:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            constantAttributes:
              properties:
                label:
                  type: string
                mutable:
                  type: boolean
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type: object
                type:
                  type: string
                value:
                  items:
                    properties:
                      name:
                        type: string
                      readOnly:
                        type: boolean
                      required:
                        type: boolean
                      value:
                        type: string
                      visible:
                        type: boolean
                    type: object
                  type: array
                visible:
                  type: boolean
              type:
                - object
                - 'null'
            databaseAttributes:
              properties:
                position:
                  type: integer
              type: object
            idpCertificate:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            idpEntityId:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            idpPrivateKey:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            spEntityId:
              properties:
                label:
                  type: string
                options: {}
                position:
                  type: integer
                readOnly:
                  type: boolean
                required:
                  type: boolean
                toggle: {}
                tooltip:
                  properties:
                    template:
                      type: string
                    variables:
                      properties:
                        icon:
                          type: string
                        message:
                          type: string
                      type: object
                  type:
                    - object
                    - 'null'
                type:
                  type: string
                value:
                  type: string
                visible:
                  type: boolean
              type: object
            authClaimConfiguration:
              properties:
                type:
                  type: string
                visible:
                  type: boolean
                sendAmrClaim:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: boolean
                    readOnly:
                      type: boolean
                authnContextMode:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: string
                singleAuthnContextValue:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: string
                authnContextMappings:
                  type: object
                  properties:
                    type:
                      type: string
                    value:
                      type: array
                      items:
                        type: object
              type:
                - object
                - 'null'
          type: object
        displayLabel:
          type: string
        displayName:
          type: string
        isConfigured:
          type: boolean
        jit:
          properties:
            attributes:
              type: object
            createOnly:
              type: boolean
          type: object
        learnMore:
          type: string
        logo:
          properties:
            url:
              type: string
          type: object
        name:
          type: string
        oidc:
          properties:
            grantTypes:
              description: The grant types allowed.
              type: array
              items:
                type: string
                enum:
                  - authorization_code
                  - refresh_token
            redirectUris:
              description: List of allowed redirectUris
              type: array
              items:
                type: string
            tokenEndpointAuthMethod:
              description: Method that the client uses to authenticate when requesting a token. If 'none', then the client must use PKCE. If 'client_secret_post', then the secret is passed in the post body when requesting the token.
              enum:
                - client_secret_basic
                - client_secret_post
                - none
              type: string
            ssoUrl:
              description: The relying party url to trigger an oidc login.
              type: string
          type:
            - object
            - 'null'
        provision:
          properties:
            type:
              type: string
            beta:
              type: boolean
            groups_supported:
              type: boolean
          type:
            - object
            - 'null'
        sso:
          $ref: '#/components/schemas/sso'
        ssoUrl:
          type: string
        test:
          type: string
        keywords:
          type: array
          items:
            type: string
      title: ApplicationTemplate
      type: object
    applicationtemplateslist:
      properties:
        results:
          description: The list of applications.
          items:
            $ref: '#/components/schemas/applicationtemplate'
          type: array
        totalCount:
          description: The total number of applications.
          type: integer
      title: ApplicationTemplatesList
      type: object
    command:
      title: Command
      type: object
      properties:
        command:
          description: The command to execute on the server.
          type: string
        commandRunners:
          description: An array of IDs of the Command Runner Users that can execute this command.
          type: array
          items:
            type: string
        commandType:
          default: linux
          description: The Command OS
          type: string
        files:
          description: An array of file IDs to include with the command.
          type: array
          items:
            type: string
        launchType:
          description: How the command will execute.
          type: string
        listensTo:
          description: ''
          type: string
        name:
          type: string
        organization:
          description: The ID of the organization.
          type: string
        schedule:
          description: |
            A crontab that consists of: [ (seconds) (minutes) (hours) (days of month) (months) (weekdays) ] or [ immediate ]. If you send this as an empty string, it will run immediately.
          type: string
        scheduleRepeatType:
          description: When the command will repeat.
          type: string
        sudo:
          description: ''
          type: boolean
        systems:
          description: Not used. Use /api/v2/commands/{id}/associations to bind commands to systems.
          type: array
          items:
            type: string
        template:
          description: The template this command was created from
          type: string
        timeout:
          description: The time in seconds to allow the command to run for. The maximum value is 86400 seconds (1 day).
          type: string
        trigger:
          description: The name of the command trigger.
          type: string
        user:
          description: The ID of the system user to run the command as. This field is required when creating a command with a commandType of "mac" or "linux".
          type: string
        shell:
          type: string
          description: The shell used to run the command.
        timeToLiveSeconds:
          type: integer
          description: Time in seconds a command can wait in the queue to be run before timing out
        scheduleYear:
          type: integer
          description: The year that a scheduled command will launch in.
        filesS3:
          description: An array of file stored in S3 to include with the command.
          type: array
          items:
            $ref: '#/components/schemas/filesS3'
        description:
          description: Description of the command.
          type: string
        aiGenerated:
          description: Whether this command was generated with AI assistance.
          type: boolean
        templatingRequired:
          description: Whether this command requires templating before execution.
          type: boolean
      required:
        - command
        - commandType
        - name
    commandfilereturn:
      properties:
        results:
          items:
            properties:
              _id:
                description: The ID of the file.
                type: string
              destination:
                description: The location where the file will be stored.
                type: string
              name:
                description: The file name.
                type: string
            type: object
          type: array
        totalCount:
          description: The total number of commands files
          type: integer
      title: CommandFileReturn
      type: object
    commandresult:
      properties:
        _id:
          description: The ID of the command.
          type: string
        command:
          description: The command that was executed on the system.
          type: string
        files:
          description: An array of file ids that were included in the command
          items:
            type: string
          type: array
        name:
          description: The name of the command.
          type: string
        organization:
          description: The ID of the organization.
          type: string
        requestTime:
          description: The time that the command was sent.
          format: date-time
          type:
            - string
            - 'null'
        response:
          properties:
            data:
              properties:
                exitCode:
                  description: The stderr output from the command that ran.
                  type: integer
                output:
                  description: The output of the command that was executed.
                  type: string
              type: object
            error:
              description: The stderr output from the command that ran.
              type: string
            id:
              description: ID of the response.
              type: string
          type: object
        responseTime:
          description: The time that the command was completed.
          format: date-time
          type:
            - string
            - 'null'
        sudo:
          description: If the user had sudo rights
          type: boolean
        system:
          description: The name of the system the command was executed on.
          type: string
        systemId:
          description: The id of the system the command was executed on.
          type: string
        user:
          description: The user the command ran as.
          type: string
        workflowId:
          type: string
        workflowInstanceId:
          type: string
      title: CommandResult
      type: object
    commandresultslist:
      title: CommandResultsList
      type: object
      properties:
        totalCount:
          description: The total number of command results.
          type: integer
        results:
          type: array
          items:
            type: object
            properties:
              command:
                type: string
                description: The command that was executed on the system, truncated to 10k characters.
              exitCode:
                type: integer
                description: The stderr output from the command that ran.
              name:
                type: string
                description: The name of the command.
              requestTime:
                description: The time (UTC) that the command was sent.
                format: date-time
                type:
                  - string
                  - 'null'
              responseTime:
                description: The time (UTC) that the command was completed.
                format: date-time
                type:
                  - string
                  - 'null'
              sudo:
                type: boolean
                description: If the user had sudo rights.
              system:
                type: string
                description: The display name of the system the command was executed on.
              systemId:
                type: string
                description: The id of the system the command was executed on.
              user:
                type: string
                description: The user the command ran as.
              workflowId:
                type: string
                description: The id for the command that ran on the system.
              _id:
                type: string
                description: The ID of the command result.
              response:
                properties:
                  data:
                    properties:
                      exitCode:
                        description: The numeric exit code returned by the executed command.
                        type: integer
                      output:
                        description: The successful command output, truncated to 40 characters.
                        type: string
                    type: object
                  error:
                    description: The error output from the command, truncated to 40 characters.
                    type: string
                type: object
    commandslist:
      properties:
        results:
          items:
            properties:
              _id:
                description: The ID of the command.
                type: string
              command:
                description: The Command to execute, truncated to 10k characters.
                type: string
              commandType:
                description: The Command OS.
                type: string
              launchType:
                description: How the Command is executed.
                type: string
              listensTo:
                type: string
              name:
                description: The name of the Command.
                type: string
              organization:
                description: The ID of the Organization.
                type: string
              schedule:
                description: 'A crontab that consists of: [ (seconds) (minutes) (hours) (days of month) (months) (weekdays) ] or [ immediate ]. If you send this as an empty string, it will run immediately.'
                type: string
              scheduleRepeatType:
                description: When the command will repeat.
                type: string
              trigger:
                description: Trigger to execute command.
                type: string
              description:
                description: Description of the command.
                type: string
              aiGenerated:
                description: Whether this command was generated with AI assistance.
                type: boolean
              templatingRequired:
                description: Whether this command requires templating before execution.
                type: boolean
            type: object
          type: array
        totalCount:
          description: The total number of commands
          type: integer
      title: CommandsList
      type: object
    customEmailSettings:
      type: object
      description: Custom email settings for an organization
      properties:
        enabled:
          description: Used to enable or disable custom emails for an organization.
          type: boolean
    Error:
      properties:
        code:
          format: int32
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Error message
        status:
          type: string
          description: HTTP status description
      title: Error
      type: object
    ErrorDetails:
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            details:
              description: |
                Describes a list of objects with more detailed information of the given error.
                Each detail schema is according to one of the messages defined in Google's API:
                https://github.com/googleapis/googleapis/blob/master/google/rpc/error_details.proto"
              type: array
              items:
                type: object
                additionalProperties: true
                description: Object according to Google's API.
    externallymanagedpropertyinfo:
      type: boolean
      description: The externally_managed property has been deprecated. Whenever a user has their externally_managed field modified their restrictedFields property gets populated with the appropriate value, even if it is already set to a value an administrator manually set.
    fde:
      properties:
        active:
          type: boolean
        keyPresent:
          type: boolean
      title: FDE
      type: object
      description: Indicates if the Full Disk Encryption is active in the system
    filesS3:
      title: FilesS3
      type: object
      required:
        - objectStorageId
        - name
        - destination
        - sha256
      properties:
        objectStorageId:
          type: string
          description: The ID of the file in object storage database.
        name:
          type: string
          description: The name of the file.
        destination:
          type: string
          description: The destination of the file.
        sha256:
          type: string
          description: The SHA256 hash of the file.
    mfa:
      properties:
        configured:
          type: boolean
        exclusion:
          type: boolean
        exclusionUntil:
          format: date-time
          type: string
        exclusionDays:
          minimum: 1
          type: integer
      title: mfa
      type: object
    mfaEnrollmentStatus:
      type: string
      enum:
        - NOT_ENROLLED
        - DISABLED
        - PENDING_ACTIVATION
        - ENROLLMENT_EXPIRED
        - IN_ENROLLMENT
        - PRE_ENROLLMENT
        - ENROLLED
    mfaEnrollment:
      properties:
        totpStatus:
          $ref: '#/components/schemas/mfaEnrollmentStatus'
        webAuthnStatus:
          $ref: '#/components/schemas/mfaEnrollmentStatus'
        pushStatus:
          $ref: '#/components/schemas/mfaEnrollmentStatus'
        smsStatus:
          $ref: '#/components/schemas/mfaEnrollmentStatus'
        overallStatus:
          $ref: '#/components/schemas/mfaEnrollmentStatus'
        jcGoStatus:
          $ref: '#/components/schemas/mfaEnrollmentStatus'
      title: mfaEnrollment
      type: object
    organization:
      properties:
        _id:
          type: string
        created:
          type: string
        customEmailSettings:
          $ref: '#/components/schemas/customEmailSettings'
        displayName:
          type: string
        entitlement:
          $ref: '#/components/schemas/organizationentitlement'
        hasStripeCustomerId:
          type: boolean
        hasCreditCard:
          type: boolean
        lastEstimateCalculationTimeStamp:
          type: string
        lastSfdcSyncStatus:
          type: object
        accountsReceivable:
          type: string
        accessRestriction:
          type: string
        accountType:
          type: string
          description: Salesforce Account Type (`Account_Type__c`) written back to the org via BSS sync. Returned only when requested via the `fields` query parameter.
          enum:
            - Alliance
            - Distributor
            - MSP
            - VAR
            - Direct
            - Indirect
            - Tenant
            - Deleted Organization
            - Partner
            - Customer
            - Prospective Customer
            - Prospective Partner
        logoUrl:
          type:
            - string
            - 'null'
        provider:
          type:
            - string
            - 'null'
        settings:
          $ref: '#/components/schemas/organizationsettings'
        totalBillingEstimate:
          type: integer
      title: Organization
      type: object
    organizationentitlement:
      properties:
        billingModel:
          type: string
        capUserQuantity:
          type: boolean
        maxUserQuantity:
          type: integer
        purchaseChannel:
          type: string
        entitlementProducts:
          type: array
          items:
            type: object
            properties:
              committedUsers:
                type: integer
              contractType:
                type: string
              maxUserCount:
                type: integer
              name:
                type: string
              pricePerUser:
                type: integer
              productCategory:
                type: string
              productCode:
                type: string
              uncommittedUsers:
                type: integer
        isManuallyBilled:
          type: boolean
        pricePerUserSum:
          type: integer
      title: OrganizationEntitlement
      type: object
      x-examples: {}
      description: ''
    organizationsettings:
      title: OrganizationSettings
      type: object
      x-examples: {}
      description: ''
      properties:
        agentVersion:
          type: string
        betaFeatures:
          type: object
        chromeDTCEnabled:
          type: boolean
        contactEmail:
          type: string
        contactName:
          type: string
        disableCommandRunner:
          type: boolean
        disableLdap:
          type: boolean
        disableUM:
          type: boolean
        duplicateLDAPGroups:
          type: boolean
        emailDisclaimer:
          type: string
        enableGoogleApps:
          type: boolean
        enableManagedUID:
          type: boolean
        enableO365:
          type: boolean
        enableUserPortalAgentInstall:
          type: boolean
        features:
          type: object
          properties:
            directoryInsightsPremium:
              type: object
              properties:
                enabled:
                  type: boolean
                createdAt:
                  type: string
                updatedAt:
                  type: string
            systemInsights:
              type: object
              properties:
                enableNewDarwin:
                  type: boolean
                enableNewLinux:
                  type: boolean
                enableNewWindows:
                  type: boolean
                enabled:
                  type: boolean
                createdAt:
                  type: string
                updatedAt:
                  type: string
            directoryInsights:
              type: object
              properties:
                enabled:
                  type: boolean
        growthData:
          description: Object containing Optimizely experimentIds and states corresponding to them
          type: object
        logo:
          type: string
        name:
          type: string
        newSystemUserStateDefaults:
          type: object
          properties:
            applicationImport:
              enum:
                - ACTIVATED
                - STAGED
              type: string
              description: |-
                The default user state for a user created using the
                [Bulk Users Create](https://docs.jumpcloud.com/api/2.0/index.html#operation/bulk_usersCreate)
                endpoint. See endpoint documentation for more details.
            csvImport:
              enum:
                - ACTIVATED
                - STAGED
              type: string
              description: |-
                The default user state for a user created using the
                [Bulk Users Create](https://docs.jumpcloud.com/api/2.0/index.html#operation/bulk_usersCreate)
                endpoint. See endpoint documentation for more details.
            manualEntry:
              enum:
                - ACTIVATED
                - STAGED
              type: string
              description: |-
                The default state for a user that is created using the
                [Create a system user](https://docs.jumpcloud.com/api/1.0/index.html#operation/systemusers_post)
                endpoint. See endpoint documentation for more details.
        passwordCompliance:
          enum:
            - custom
            - pci3
            - windows
          type: string
        passwordPolicy:
          type: object
          properties:
            allowUnenrolledMFAPasswordReset:
              type: boolean
            allowUsernameSubstring:
              type: boolean
            daysAfterExpirationToSelfRecover:
              type: integer
              description: Deprecated field used for the legacy grace period feature.
            daysBeforeExpirationToForceReset:
              minimum: 1
              type: integer
            disallowCommonlyUsedPasswords:
              type: boolean
            disallowCustomBannedPasswords:
              type: boolean
            disallowSequentialOrRepetitiveChars:
              type: boolean
            displayComplexityOnResetScreen:
              type: boolean
            effectiveDate:
              type: string
            enableDaysAfterExpirationToSelfRecover:
              type: boolean
            enableDaysBeforeExpirationToForceReset:
              type: boolean
            enableLockoutTimeInSeconds:
              type: boolean
            enableMaxHistory:
              type: boolean
            enableMaxLoginAttempts:
              type: boolean
            enableMinChangePeriodInDays:
              type: boolean
            enableMinLength:
              type: boolean
            enablePasswordExpirationInDays:
              type: boolean
            gracePeriodDate:
              type: string
            lockoutTimeInSeconds:
              type: integer
              maximum: 5400
              minimum: 300
            maxHistory:
              maximum: 24
              minimum: 1
              type: integer
            maxLoginAttempts:
              minimum: 1
              type: integer
            minChangePeriodInDays:
              type: integer
            minLength:
              type: integer
            needsLowercase:
              type: boolean
            needsNumeric:
              type: boolean
            needsSymbolic:
              type: boolean
            needsUppercase:
              type: boolean
            passwordExpirationInDays:
              minimum: 1
              type: integer
            enableResetLockoutCounter:
              type: boolean
            resetLockoutCounterMinutes:
              minimum: 1
              type: integer
            enableRecoveryEmail:
              type: boolean
        pendingDelete:
          type: boolean
        requireAdminMFA:
          type: boolean
        showIntro:
          type: boolean
        systemUserDefaults:
          type: object
          properties:
            restrictedFields:
              type: array
              items:
                $ref: '#/components/schemas/restrictedField'
        systemUserPasswordExpirationInDays:
          type: integer
        systemUsersCanEdit:
          type: boolean
        disableGoogleLogin:
          type: boolean
        userPortal:
          type: object
          properties:
            idleSessionDurationMinutes:
              maximum: 129600
              minimum: 1
              type: integer
            cookieExpirationType:
              type: string
              default: session
              enum:
                - session
                - date
        deviceIdentificationEnabled:
          type: boolean
        trustedAppConfig:
          $ref: '#/components/schemas/trustedappConfigGet'
        maxSystemUsers:
          type: integer
          minimum: 0
        windowsMDM:
          type: object
          properties:
            enabled:
              type: boolean
              description: Indicates if the Windows MDM is active.
            autoEnroll:
              type: boolean
              description: Indicates if MDM Auto Enroll is active.
    organizationsettingsput:
      title: OrganizationSettingsPut
      type: object
      properties:
        contactEmail:
          type: string
        contactName:
          type: string
        disableLdap:
          type: boolean
        disableUM:
          type: boolean
        duplicateLDAPGroups:
          type: boolean
        emailDisclaimer:
          type: string
        enableManagedUID:
          type: boolean
        features:
          type: object
          properties:
            directoryInsightsPremium:
              type: object
              properties:
                enabled:
                  type: boolean
                createdAt:
                  type: string
                updatedAt:
                  type: string
            systemInsights:
              type: object
              properties:
                enableNewDarwin:
                  type: boolean
                enableNewLinux:
                  type: boolean
                enableNewWindows:
                  type: boolean
                enabled:
                  type: boolean
                createdAt:
                  type: string
                updatedAt:
                  type: string
            directoryInsights:
              type: object
              properties:
                enabled:
                  type: boolean
        growthData:
          description: Object containing Optimizely experimentIds and states corresponding to them
          type: object
        logo:
          type: string
        name:
          type: string
        newSystemUserStateDefaults:
          type: object
          properties:
            applicationImport:
              enum:
                - ACTIVATED
                - STAGED
              type: string
            csvImport:
              enum:
                - ACTIVATED
                - STAGED
              type: string
            manualEntry:
              enum:
                - ACTIVATED
                - STAGED
              type: string
        passwordCompliance:
          enum:
            - custom
            - pci3
            - windows
          type: string
        passwordPolicy:
          type: object
          properties:
            allowUnenrolledMFAPasswordReset:
              type: boolean
            allowUsernameSubstring:
              type: boolean
            daysAfterExpirationToSelfRecover:
              type: integer
              description: Deprecated field used for the legacy grace period feature.
            daysBeforeExpirationToForceReset:
              minimum: 1
              type: integer
            disallowCommonlyUsedPasswords:
              type: boolean
            disallowCustomBannedPasswords:
              type: boolean
            disallowSequentialOrRepetitiveChars:
              type: boolean
            displayComplexityOnResetScreen:
              type: boolean
            effectiveDate:
              type: string
            enableDaysAfterExpirationToSelfRecover:
              type: boolean
            enableDaysBeforeExpirationToForceReset:
              type: boolean
            enableLockoutTimeInSeconds:
              type: boolean
            enableMaxHistory:
              type: boolean
            enableMaxLoginAttempts:
              type: boolean
            enableMinChangePeriodInDays:
              type: boolean
            enableMinLength:
              type: boolean
            enablePasswordExpirationInDays:
              type: boolean
            gracePeriodDate:
              type: string
            lockoutTimeInSeconds:
              type: integer
            maxHistory:
              maximum: 24
              minimum: 1
              type: integer
            maxLoginAttempts:
              minimum: 1
              type: integer
            minChangePeriodInDays:
              type: integer
            minLength:
              type: integer
            needsLowercase:
              type: boolean
            needsNumeric:
              type: boolean
            needsSymbolic:
              type: boolean
            needsUppercase:
              type: boolean
            passwordExpirationInDays:
              minimum: 1
              type: integer
        showIntro:
          type: boolean
        systemUserDefaults:
          type: object
          properties:
            restrictedFields:
              type: array
              items:
                $ref: '#/components/schemas/restrictedField'
        systemUserPasswordExpirationInDays:
          type: integer
        systemUsersCanEdit:
          type: boolean
        disableGoogleLogin:
          type: boolean
        userPortal:
          type: object
          properties:
            idleSessionDurationMinutes:
              maximum: 129600
              minimum: 1
              type: integer
            cookieExpirationType:
              type: string
              enum:
                - session
                - date
        deviceIdentificationEnabled:
          type: boolean
        trustedAppConfig:
          $ref: '#/components/schemas/trustedappConfigPut'
        maxSystemUsers:
          type: integer
          minimum: 0
    organizationslist:
      properties:
        results:
          description: The list of organizations.
          items:
            properties:
              _id:
                description: The ID of the organization.
                type: string
              displayName:
                description: The name of the organization.
                type: string
              logoUrl:
                description: 'The organization logo image URL. '
                type:
                  - string
                  - 'null'
            type: object
          type: array
        totalCount:
          description: 'The total number of organizations. '
          type: integer
      title: OrganizationList
      type: object
    radiusserver:
      properties:
        _id:
          type: string
        authIdp:
          enum:
            - JUMPCLOUD
            - AZURE
          type: string
        mfa:
          enum:
            - DISABLED
            - ENABLED
            - REQUIRED
            - ALWAYS
          type: string
        name:
          type: string
        networkSourceIp:
          type: string
        organization:
          type: string
        sharedSecret:
          type: string
        tagNames:
          items:
            type: string
          type: array
        tags:
          items:
            type: string
          type: array
        userLockoutAction:
          type: string
        userPasswordExpirationAction:
          type: string
        userPasswordEnabled:
          type: boolean
        userCertEnabled:
          type: boolean
        deviceCertEnabled:
          type: boolean
        caCert:
          type: string
        requireTlsAuth:
          type: boolean
        radsecEnabled:
          type: boolean
        requireRadsec:
          type: boolean
        caSource:
          default: NONE
          enum:
            - NONE
            - BYOC
            - JUMPCLOUD_MANAGED
          type: string
      title: RadiusServer
      type: object
    radiusserverpost:
      properties:
        authIdp:
          enum:
            - JUMPCLOUD
            - AZURE
          type: string
        mfa:
          enum:
            - DISABLED
            - ENABLED
            - REQUIRED
            - ALWAYS
          type: string
        name:
          type: string
        networkSourceIp:
          type: string
        sharedSecret:
          description: RADIUS shared secret between the server and client.
          type: string
        tagNames:
          items:
            type: string
          type: array
        userLockoutAction:
          type: string
        userPasswordExpirationAction:
          type: string
        userPasswordEnabled:
          type: boolean
        userCertEnabled:
          type: boolean
        deviceCertEnabled:
          type: boolean
        caCert:
          type: string
        requireTlsAuth:
          type: boolean
        radsecEnabled:
          type: boolean
        requireRadsec:
          type: boolean
        caSource:
          default: NONE
          enum:
            - NONE
            - BYOC
            - JUMPCLOUD_MANAGED
          type: string
      required:
        - networkSourceIp
        - name
        - sharedSecret
      title: RadiusServerPost
      type: object
    radiusserverput:
      properties:
        _id:
          type: string
        authIdp:
          enum:
            - JUMPCLOUD
            - AZURE
          type: string
        mfa:
          enum:
            - DISABLED
            - ENABLED
            - REQUIRED
            - ALWAYS
          type: string
        name:
          type: string
        networkSourceIp:
          type: string
        tagNames:
          items:
            type: string
          type: array
        userLockoutAction:
          type: string
        userPasswordExpirationAction:
          type: string
        userPasswordEnabled:
          type: boolean
        userCertEnabled:
          type: boolean
        deviceCertEnabled:
          type: boolean
        caCert:
          type: string
        requireTlsAuth:
          type: boolean
        radsecEnabled:
          type: boolean
        requireRadsec:
          type: boolean
        caSource:
          default: NONE
          enum:
            - NONE
            - BYOC
            - JUMPCLOUD_MANAGED
          type: string
      title: RadiusServerPut
      type: object
    radiusserverslist:
      properties:
        results:
          items:
            $ref: '#/components/schemas/radiusserver'
          type: array
        totalCount:
          type: integer
      title: RadiusServersList
      type: object
    restrictedField:
      type: object
      properties:
        field:
          maxLength: 32
          type: string
          enum:
            - addresses
            - company
            - costCenter
            - department
            - description
            - displayname
            - email
            - employeeIdentifier
            - employeeType
            - firstname
            - jobTitle
            - lastname
            - location
            - middlename
            - password
            - phoneNumbers
            - sudo
            - username
        type:
          maxLength: 128
          type: string
          enum:
            - active_directory
            - federated_identity_provider
            - scim
        id:
          maxLength: 24
          type: string
    search:
      properties:
        fields:
          type: string
        filter:
          type: object
        searchFilter:
          type: object
      title: Search
      type: object
    sshkeylist:
      properties:
        _id:
          description: The ID of the SSH key.
          type: string
        create_date:
          description: The date the SSH key was created.
          type: string
        name:
          description: The name of the SSH key.
          type: string
        public_key:
          description: The Public SSH key.
          type: string
      title: SSHKeyList
      type: object
    sshkeypost:
      properties:
        name:
          description: The name of the SSH key.
          type: string
        public_key:
          description: The Public SSH key.
          type: string
      required:
        - public_key
        - name
      title: SSHKeyPost
      type: object
    sso:
      properties:
        type:
          type: string
        beta:
          type: boolean
        jit:
          type: boolean
        idpCertExpirationAt:
          format: date-time
          type: string
        idpCertificateUpdatedAt:
          readOnly: true
          format: date-time
          type: string
        idpPrivateKeyUpdatedAt:
          readOnly: true
          format: date-time
          type: string
        spCertificateUpdatedAt:
          readOnly: true
          format: date-time
          type: string
        hidden:
          type: boolean
      type: object
    system:
      title: System
      type: object
      properties:
        _id:
          type: string
        active:
          type: boolean
        agentHasFullDiskAccess:
          type: boolean
        agentVersion:
          type: string
        allowMultiFactorAuthentication:
          type: boolean
        allowPublicKeyAuthentication:
          type: boolean
        allowSshPasswordAuthentication:
          type: boolean
        allowSshRootLogin:
          type: boolean
        amazonInstanceID:
          type: string
        arch:
          type: string
        archFamily:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/attribute'
        connectionHistory:
          type: array
          items:
            type: object
        created:
          type: string
          format: date-time
        description:
          type: string
        desktopCapable:
          type: boolean
        displayName:
          type: string
        fde:
          $ref: '#/components/schemas/fde'
        fileSystem:
          type:
            - string
            - 'null'
        hasServiceAccount:
          type: boolean
        hostname:
          type: string
        hwVendor:
          type: string
        isPolicyBound:
          type: boolean
        lastContact:
          type:
            - string
            - 'null'
          format: date-time
        modifySSHDConfig:
          type: boolean
        networkInterfaces:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
              family:
                type: string
                enum:
                  - IPv4
                  - IPv6
              internal:
                type: boolean
              name:
                type: string
        organization:
          type: string
        os:
          type: string
        osVersionDetail:
          type: object
          properties:
            osName:
              type: string
            releaseName:
              type: string
            major:
              type: string
            minor:
              type: string
            patch:
              type: string
            majorNumber:
              type: integer
            minorNumber:
              type: integer
            patchNumber:
              type: integer
            revision:
              type: string
            distributionName:
              type: string
            version:
              type: string
        policyStats:
          type: object
          properties:
            duplicate:
              type: integer
            failed:
              type: integer
            pending:
              type: integer
            success:
              type: integer
            total:
              type: integer
            unsupportedOs:
              type: integer
        provisionMetadata:
          type: object
          properties:
            provisioner:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - administrator
                    - mdm
                    - user
                  default: administrator
                provisionerId:
                  type: string
        primarySystemUser:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
        remoteIP:
          type: string
        serialNumber:
          type: string
        sshRootEnabled:
          type: boolean
        sshdParams:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              value:
                type: string
        systemInsights:
          type: object
          properties:
            state:
              enum:
                - enabled
                - disabled
                - deferred
              type: string
        systemTimezone:
          type: integer
        tags:
          type: array
          items:
            type: string
        templateName:
          type: string
        version:
          type: string
        mdm:
          type: object
          properties:
            vendor:
              type: string
              enum:
                - unknown
                - none
                - internal
                - external
            internal:
              type: object
              properties:
                deviceId:
                  type: string
                windowsDeviceId:
                  type: string
            profileIdentifier:
              type: string
            dep:
              type: boolean
            userApproved:
              type: boolean
            enrollmentType:
              type: string
              enum:
                - unknown
                - automated device
                - device
                - user
            providerId:
              type: string
            windows:
              type: object
              properties:
                upn:
                  type: string
            lostModeStatus:
              type: string
            deviceLockStatus:
              type: integer
              enum:
                - 0
                - 1
                - 2
                - 3
                - 4
        builtInCommands:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                const: security
              name:
                type: string
                enum:
                  - erase
                  - lock
                  - restart
                  - shutdown
          readOnly: true
        osFamily:
          type: string
        domainInfo:
          type: object
          properties:
            partOfDomain:
              type: boolean
            domainName:
              type: string
        userMetrics:
          type: array
          items:
            type: object
            properties:
              userName:
                type: string
              admin:
                type: boolean
              managed:
                type: boolean
              suspended:
                type: boolean
              secureTokenEnabled:
                type: boolean
        serviceAccountState:
          type: object
          properties:
            hasSecureToken:
              type: boolean
            passwordODValid:
              type: boolean
            passwordAPFSValid:
              type: boolean
        azureAdJoined:
          type: boolean
        displayManager:
          type: string
        secureLogin:
          type: object
          properties:
            supported:
              type: boolean
            enabled:
              type: boolean
        remoteAssistAgentVersion:
          type: string
    systemSearch:
      title: System
      type: object
      properties:
        _id:
          type: string
        active:
          type: boolean
        agentHasFullDiskAccess:
          type: boolean
        agentVersion:
          type: string
        allowMultiFactorAuthentication:
          type: boolean
        allowPublicKeyAuthentication:
          type: boolean
        allowSshPasswordAuthentication:
          type: boolean
        allowSshRootLogin:
          type: boolean
        amazonInstanceID:
          type: string
        arch:
          type: string
        archFamily:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/attribute'
        connectionHistory:
          type: array
          items:
            type: object
        created:
          type: string
          format: date-time
        description:
          type: string
        desktopCapable:
          type: boolean
        displayName:
          type: string
        fde:
          $ref: '#/components/schemas/fde'
        fileSystem:
          type:
            - string
            - 'null'
        hasServiceAccount:
          type: boolean
        hostname:
          type: string
        hwVendor:
          type: string
        isPolicyBound:
          type: boolean
        lastContact:
          type:
            - string
            - 'null'
          format: date-time
        modifySSHDConfig:
          type: boolean
        networkInterfaces:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
              family:
                type: string
                enum:
                  - IPv4
                  - IPv6
              internal:
                type: boolean
              name:
                type: string
        organization:
          type: string
        os:
          type: string
        osVersionDetail:
          type: object
          properties:
            osName:
              type: string
            releaseName:
              type: string
            major:
              type: string
            minor:
              type: string
            patch:
              type: string
            majorNumber:
              type: integer
            minorNumber:
              type: integer
            patchNumber:
              type: integer
            revision:
              type: string
            distributionName:
              type: string
            version:
              type: string
        policyStats:
          type: object
          properties:
            duplicate:
              type: integer
            failed:
              type: integer
            pending:
              type: integer
            success:
              type: integer
            total:
              type: integer
            unsupportedOs:
              type: integer
        provisionMetadata:
          type: object
          properties:
            provisioner:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - administrator
                    - mdm
                    - user
                  default: administrator
                provisionerId:
                  type: string
        primarySystemUser:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
        remoteIP:
          type: string
        serialNumber:
          type: string
        sshRootEnabled:
          type: boolean
        sshdParams:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              value:
                type: string
        systemInsights:
          type: object
          properties:
            state:
              enum:
                - enabled
                - disabled
                - deferred
              type: string
        systemTimezone:
          type: integer
        tags:
          type: array
          items:
            type: string
        templateName:
          type: string
        version:
          type: string
        mdm:
          type: object
          properties:
            vendor:
              type: string
              enum:
                - unknown
                - none
                - internal
                - external
            internal:
              type: object
              properties:
                deviceId:
                  type: string
                windowsDeviceId:
                  type: string
            profileIdentifier:
              type: string
            dep:
              type: boolean
            userApproved:
              type: boolean
            enrollmentType:
              type: string
              enum:
                - unknown
                - automated device
                - device
                - user
            providerId:
              type: string
            windows:
              type: object
              properties:
                upn:
                  type: string
            lostModeStatus:
              type: string
            deviceLockStatus:
              type: integer
              enum:
                - 0
                - 1
                - 2
                - 3
                - 4
        builtInCommands:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                const: security
              name:
                type: string
                enum:
                  - erase
                  - lock
                  - restart
                  - shutdown
          readOnly: true
        osFamily:
          type: string
        domainInfo:
          type: object
          properties:
            partOfDomain:
              type: boolean
            domainName:
              type: string
        userMetrics:
          type: array
          items:
            type: object
            properties:
              userName:
                type: string
              admin:
                type: boolean
              managed:
                type: boolean
              suspended:
                type: boolean
              secureTokenEnabled:
                type: boolean
        serviceAccountState:
          type: object
          properties:
            hasSecureToken:
              type: boolean
            passwordODValid:
              type: boolean
            passwordAPFSValid:
              type: boolean
        azureAdJoined:
          type: boolean
        displayManager:
          type: string
        secureLogin:
          type: object
          properties:
            supported:
              type: boolean
            enabled:
              type: boolean
        remoteAssistAgentVersion:
          type: string
        primarySystemUser._id:
          type: string
        primarySystemUser.attributes:
          type: array
          items:
            $ref: '#/components/schemas/attribute'
        primarySystemUser.company:
          maxLength: 1024
          type: string
        primarySystemUser.costCenter:
          maxLength: 1024
          type: string
        primarySystemUser.delegatedAuthority.id:
          type: string
          description: ObjectId of the primary user's Active Directory delegated authority connection
        primarySystemUser.department:
          maxLength: 1024
          type: string
        primarySystemUser.description:
          maxLength: 1024
          type: string
        primarySystemUser.email:
          maxLength: 1024
          type: string
        primarySystemUser.employeeType:
          maxLength: 1024
          type: string
        primarySystemUser.jobTitle:
          maxLength: 1024
          type: string
        primarySystemUser.location:
          maxLength: 1024
          type: string
        primarySystemUser.manager:
          type: string
          description: Relation with another systemuser to identify the last as a manager.
        primarySystemUser.state:
          enum:
            - STAGED
            - ACTIVATED
            - SUSPENDED
          type: string
        memberof:
          type: array
          items:
            type: string
        primarySystemUser.memberof:
          type: array
          items:
            type: string
    systemput:
      properties:
        agentBoundMessages:
          items:
            properties:
              cmd:
                type: string
            type: object
          type: array
        allowMultiFactorAuthentication:
          type: boolean
        allowPublicKeyAuthentication:
          type: boolean
        allowSshPasswordAuthentication:
          type: boolean
        allowSshRootLogin:
          type: boolean
        displayName:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/attribute'
        tags:
          items:
            type: string
          type: array
      title: SystemPut
      type: object
    systemslist:
      properties:
        results:
          description: The list of systems.
          items:
            $ref: '#/components/schemas/system'
          type: array
        totalCount:
          description: The total number of systems.
          type: integer
      title: SystemsList
      type: object
    systemsSearchlist:
      properties:
        results:
          description: The list of systems.
          items:
            $ref: '#/components/schemas/systemSearch'
          type: array
        totalCount:
          description: The total number of systems.
          type: integer
      title: SystemsList
      type: object
    systemuserput:
      title: SystemUserPut
      type: object
      properties:
        account_locked:
          type: boolean
        addresses:
          description: type, poBox, extendedAddress, streetAddress, locality, region, postalCode, country
          type: array
          items:
            type: object
            properties:
              country:
                maxLength: 1024
                type: string
              extendedAddress:
                maxLength: 1024
                type: string
              locality:
                maxLength: 1024
                type: string
              poBox:
                maxLength: 1024
                type: string
              postalCode:
                maxLength: 1024
                type: string
              region:
                maxLength: 1024
                type: string
              streetAddress:
                maxLength: 1024
                type: string
              type:
                maxLength: 1024
                type: string
        allow_public_key:
          type: boolean
        alternateEmail:
          type: string
        attributes:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              value:
                maxLength: 1024
                type: string
        company:
          maxLength: 1024
          type: string
        costCenter:
          maxLength: 1024
          type: string
        department:
          maxLength: 1024
          type: string
        description:
          maxLength: 1024
          type: string
        disableDeviceMaxLoginAttempts:
          type: boolean
        displayname:
          maxLength: 1024
          type: string
        email:
          maxLength: 1024
          type: string
        employeeIdentifier:
          description: 'Must be unique per user. '
          maxLength: 256
          type: string
        employeeType:
          maxLength: 1024
          type: string
        enable_managed_uid:
          type: boolean
        enable_user_portal_multifactor:
          type: boolean
        external_dn:
          type: string
        external_password_expiration_date:
          type: string
        external_source_type:
          type: string
        externally_managed:
          $ref: '#/components/schemas/externallymanagedpropertyinfo'
        firstname:
          maxLength: 1024
          type: string
        jobTitle:
          maxLength: 1024
          type: string
        lastname:
          maxLength: 1024
          type: string
        ldap_binding_user:
          type: boolean
        location:
          maxLength: 1024
          type: string
        manager:
          type: string
          description: Relation with another systemuser to identify the last as a manager.
        mfa:
          $ref: '#/components/schemas/mfa'
        middlename:
          maxLength: 1024
          type: string
        password:
          type: string
        password_never_expires:
          type: boolean
        phoneNumbers:
          type: array
          items:
            type: object
            properties:
              number:
                maxLength: 1024
                type: string
              type:
                maxLength: 1024
                type: string
        public_key:
          type: string
        relationships:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              value:
                type: string
        samba_service_user:
          type: boolean
        ssh_keys:
          type: array
          items:
            $ref: '#/components/schemas/sshkeypost'
        state:
          enum:
            - ACTIVATED
            - SUSPENDED
          type: string
        sudo:
          type: boolean
        suspended:
          type: boolean
        tags:
          type: array
          items:
            type: string
        unix_guid:
          minimum: 1
          type: integer
        unix_uid:
          minimum: 1
          type: integer
        username:
          maxLength: 1024
          type: string
        managedAppleId:
          type: string
          maxLength: 1024
        delegatedAuthority:
          type:
            - object
            - 'null'
          description: Used by auth to determine password delegation authority
          properties:
            name:
              type: string
              description: Authority name
              const: ActiveDirectory
            id:
              type: string
              description: ObjectId of the target Active Directory connection
        restrictedFields:
          type: array
          items:
            $ref: '#/components/schemas/restrictedField'
    systemuserputpost:
      title: SystemUserPost
      type: object
      properties:
        account_locked:
          type: boolean
        activated:
          type: boolean
        addresses:
          type: array
          items:
            type: object
            properties:
              country:
                type: string
              extendedAddress:
                type: string
              locality:
                type: string
              poBox:
                type: string
              postalCode:
                type: string
              region:
                type: string
              streetAddress:
                type: string
              type:
                type: string
        allow_public_key:
          type: boolean
        alternateEmail:
          type: string
        attributes:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              value:
                maxLength: 1024
                type: string
        company:
          type: string
        costCenter:
          type: string
        department:
          type: string
        description:
          maxLength: 1024
          type: string
        disableDeviceMaxLoginAttempts:
          type: boolean
        displayname:
          type: string
        email:
          maxLength: 1024
          type: string
        employeeIdentifier:
          description: 'Must be unique per user. '
          maxLength: 256
          type: string
        employeeType:
          type: string
        enable_managed_uid:
          type: boolean
        enable_user_portal_multifactor:
          type: boolean
        external_dn:
          type: string
        external_password_expiration_date:
          format: date-time
          type: string
        external_source_type:
          type: string
        externally_managed:
          $ref: '#/components/schemas/externallymanagedpropertyinfo'
        firstname:
          type: string
        jobTitle:
          type: string
        lastname:
          type: string
        ldap_binding_user:
          type: boolean
        location:
          type: string
        manager:
          type: string
          description: Relation with another systemuser to identify the last as a manager.
        mfa:
          $ref: '#/components/schemas/mfa'
        middlename:
          type: string
        password:
          type: string
        password_never_expires:
          type: boolean
        passwordless_sudo:
          type: boolean
        phoneNumbers:
          type: array
          items:
            type: object
            properties:
              number:
                type: string
              type:
                type: string
        public_key:
          type: string
        recoveryEmail:
          type: object
          properties:
            address:
              type: string
        relationships:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              value:
                type: string
        samba_service_user:
          type: boolean
        state:
          enum:
            - STAGED
            - ACTIVATED
            - SUSPENDED
          type: string
        sudo:
          type: boolean
        suspended:
          type: boolean
        tags:
          type: array
          items:
            type: string
        unix_guid:
          minimum: 1
          type: integer
        unix_uid:
          minimum: 1
          type: integer
        username:
          type: string
        managedAppleId:
          type: string
          maxLength: 1024
        delegatedAuthority:
          type:
            - object
            - 'null'
          description: Used by auth to determine password delegation authority
          properties:
            name:
              type: string
              description: Authority name
              const: ActiveDirectory
            id:
              type: string
              description: ObjectId of the target Active Directory connection
        restrictedFields:
          type: array
          items:
            $ref: '#/components/schemas/restrictedField'
      required:
        - email
        - username
    systemuserreturn:
      title: SystemUserReturn
      type: object
      properties:
        _id:
          type: string
        account_locked:
          type: boolean
        account_locked_date:
          type:
            - string
            - 'null'
        activated:
          type: boolean
        admin:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
            roleName:
              type: string
            roleNames:
              type: array
              items:
                type: string
        addresses:
          type: array
          items:
            type: object
            properties:
              country:
                maxLength: 1024
                type: string
              extendedAddress:
                maxLength: 1024
                type: string
              id:
                type: string
              locality:
                maxLength: 1024
                type: string
              poBox:
                maxLength: 1024
                type: string
              postalCode:
                maxLength: 1024
                type: string
              region:
                maxLength: 1024
                type: string
              streetAddress:
                maxLength: 1024
                type: string
              type:
                maxLength: 1024
                type: string
        allow_public_key:
          type: boolean
        alternateEmail:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/attribute'
        badLoginAttempts:
          minimum: 0
          type: integer
        company:
          maxLength: 1024
          type: string
        costCenter:
          maxLength: 1024
          type: string
        created:
          type: string
        department:
          maxLength: 1024
          type: string
        description:
          maxLength: 1024
          type: string
        disableDeviceMaxLoginAttempts:
          type: boolean
        displayname:
          maxLength: 1024
          type: string
        email:
          maxLength: 1024
          type: string
        employeeIdentifier:
          description: 'Must be unique per user. '
          maxLength: 256
          type: string
        employeeType:
          maxLength: 1024
          type: string
        enable_managed_uid:
          type: boolean
        enable_user_portal_multifactor:
          type: boolean
        external_dn:
          type: string
        external_password_expiration_date:
          type: string
        external_source_type:
          type: string
        externally_managed:
          $ref: '#/components/schemas/externallymanagedpropertyinfo'
        firstname:
          maxLength: 1024
          type: string
        jobTitle:
          maxLength: 1024
          type: string
        lastname:
          maxLength: 1024
          type: string
        ldap_binding_user:
          type: boolean
        location:
          maxLength: 1024
          type: string
        manager:
          type: string
          description: Relation with another systemuser to identify the last as a manager.
        mfa:
          $ref: '#/components/schemas/mfa'
        mfaEnrollment:
          $ref: '#/components/schemas/mfaEnrollment'
        middlename:
          maxLength: 1024
          type: string
        organization:
          type: string
        password_date:
          type:
            - string
            - 'null'
        password_expiration_date:
          type:
            - string
            - 'null'
        password_expired:
          type: boolean
        password_never_expires:
          type: boolean
        passwordless_sudo:
          type: boolean
        phoneNumbers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              number:
                maxLength: 1024
                type: string
              type:
                maxLength: 1024
                type: string
        public_key:
          type: string
        recoveryEmail:
          type: object
          properties:
            address:
              type: string
            verified:
              type: boolean
            verifiedAt:
              type: string
        relationships:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              value:
                type: string
        samba_service_user:
          type: boolean
        ssh_keys:
          type: array
          items:
            $ref: '#/components/schemas/sshkeylist'
        state:
          enum:
            - STAGED
            - ACTIVATED
            - SUSPENDED
          type: string
        sudo:
          type: boolean
        suspended:
          type: boolean
        tags:
          type: array
          items:
            type: string
        totp_enabled:
          type: boolean
        unix_guid:
          minimum: 1
          type: integer
        unix_uid:
          minimum: 1
          type: integer
        username:
          maxLength: 1024
          type: string
        managedAppleId:
          type: string
          maxLength: 1024
        creationSource:
          type: string
          maxLength: 1024
        delegatedAuthority:
          type:
            - object
            - 'null'
          description: Used by auth to determine password delegation authority
          properties:
            name:
              type: string
              description: Authority name
              const: ActiveDirectory
            id:
              type: string
              description: ObjectId of the target Active Directory connection
        restrictedFields:
          type: array
          items:
            $ref: '#/components/schemas/restrictedField'
    systemuserslist:
      properties:
        results:
          description: The list of system users.
          items:
            $ref: '#/components/schemas/systemuserreturn'
          type: array
        totalCount:
          description: The total number of system users.
          type: integer
      title: SystemUsersList
      type: object
    systemuserSearchReturn:
      title: SystemUserSearchReturn
      type: object
      properties:
        _id:
          type: string
        account_locked:
          type: boolean
        account_locked_date:
          type:
            - string
            - 'null'
        activated:
          type: boolean
        admin:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
            roleName:
              type: string
            roleNames:
              type: array
              items:
                type: string
        addresses:
          type: array
          items:
            type: object
            properties:
              country:
                maxLength: 1024
                type: string
              extendedAddress:
                maxLength: 1024
                type: string
              id:
                type: string
              locality:
                maxLength: 1024
                type: string
              poBox:
                maxLength: 1024
                type: string
              postalCode:
                maxLength: 1024
                type: string
              region:
                maxLength: 1024
                type: string
              streetAddress:
                maxLength: 1024
                type: string
              type:
                maxLength: 1024
                type: string
        allow_public_key:
          type: boolean
        alternateEmail:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/attribute'
        badLoginAttempts:
          minimum: 0
          type: integer
        company:
          maxLength: 1024
          type: string
        costCenter:
          maxLength: 1024
          type: string
        created:
          type: string
        delegatedAuthority:
          type:
            - object
            - 'null'
          description: Used by auth to determine password delegation authority
          properties:
            name:
              type: string
              description: Authority name
              const: ActiveDirectory
            id:
              type: string
              description: ObjectId of the target Active Directory connection
        department:
          maxLength: 1024
          type: string
        description:
          maxLength: 1024
          type: string
        disableDeviceMaxLoginAttempts:
          type: boolean
        displayname:
          maxLength: 1024
          type: string
        email:
          maxLength: 1024
          type: string
        employeeIdentifier:
          description: 'Must be unique per user. '
          maxLength: 256
          type: string
        employeeType:
          maxLength: 1024
          type: string
        enable_managed_uid:
          type: boolean
        enable_user_portal_multifactor:
          type: boolean
        external_dn:
          type: string
        external_password_expiration_date:
          type: string
        external_source_type:
          type: string
        externally_managed:
          $ref: '#/components/schemas/externallymanagedpropertyinfo'
        firstname:
          maxLength: 1024
          type: string
        jobTitle:
          maxLength: 1024
          type: string
        lastname:
          maxLength: 1024
          type: string
        ldap_binding_user:
          type: boolean
        location:
          maxLength: 1024
          type: string
        manager:
          type: string
          description: Relation with another systemuser to identify the last as a manager.
        mfa:
          $ref: '#/components/schemas/mfa'
        mfaEnrollment:
          $ref: '#/components/schemas/mfaEnrollment'
        middlename:
          maxLength: 1024
          type: string
        organization:
          type: string
        password_date:
          type:
            - string
            - 'null'
        password_expiration_date:
          type:
            - string
            - 'null'
        password_expired:
          type: boolean
        password_never_expires:
          type: boolean
        passwordless_sudo:
          type: boolean
        phoneNumbers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              number:
                maxLength: 1024
                type: string
              type:
                maxLength: 1024
                type: string
        public_key:
          type: string
        recoveryEmail:
          type: object
          properties:
            address:
              type: string
            verified:
              type: boolean
            verifiedAt:
              type: string
        relationships:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              value:
                type: string
        samba_service_user:
          type: boolean
        ssh_keys:
          type: array
          items:
            $ref: '#/components/schemas/sshkeylist'
        state:
          enum:
            - STAGED
            - ACTIVATED
            - SUSPENDED
          type: string
        sudo:
          type: boolean
        suspended:
          type: boolean
        tags:
          type: array
          items:
            type: string
        totp_enabled:
          type: boolean
        unix_guid:
          minimum: 1
          type: integer
        unix_uid:
          minimum: 1
          type: integer
        username:
          maxLength: 1024
          type: string
        managedAppleId:
          type: string
          maxLength: 1024
        creationSource:
          type: string
          maxLength: 1024
        restrictedFields:
          type: array
          items:
            $ref: '#/components/schemas/restrictedField'
        memberof:
          type: array
          items:
            type: string
    systemUsersSearchlist:
      properties:
        results:
          description: The list of system users.
          items:
            $ref: '#/components/schemas/systemuserSearchReturn'
          type: array
        totalCount:
          description: The total number of system users.
          type: integer
      title: SystemUsersSearchList
      type: object
    totpenrollmentinfo:
      properties:
        enrollmentDate:
          description: The TOTP enrollment date of the user.
          type: string
          format: date-time
    triggerreturn:
      properties:
        triggered:
          items:
            type: string
          type: array
      title: TriggerReturn
      type: object
    userput:
      title: UserPut
      type: object
      properties:
        apiKeyAllowed:
          type: boolean
        email:
          format: email
          maxLength: 1024
          type: string
        enableMultiFactor:
          type: boolean
        firstname:
          type: string
        growthData:
          type: object
        lastWhatsNewChecked:
          format: date
          type: string
        lastname:
          type: string
        roleName:
          type: string
        roles:
          type: array
          items:
            type: string
    userreturn:
      title: UserReturn
      type: object
      properties:
        _id:
          type: string
        apiKeyAllowed:
          type: boolean
        apiKeyHash:
          type: object
          properties:
            createdAt:
              type: string
              format: date-time
            expireAt:
              type: string
              format: date-time
            prefix:
              type: string
        apiKeySet:
          type: boolean
        apiKeyUpdatedAt:
          type: string
          format: date-time
        created:
          type: string
          format: date-time
        disableIntroduction:
          type: boolean
        email:
          type: string
        enableMultiFactor:
          type: boolean
        firstname:
          type: string
        growthData:
          type: object
          properties:
            onboardingState:
              type: object
              additionalProperties: true
            experimentStates:
              type: object
              additionalProperties: true
        isEnterprise:
          type: boolean
        lastWhatsNewChecked:
          type: string
          format: date-time
        lastname:
          type: string
        organization:
          type: string
        passwordUpdatedAt:
          type: string
          format: date-time
        provider:
          type: string
        role:
          type: string
        roles:
          type: array
          items:
            type: string
        roleName:
          type: string
        roleNames:
          type: array
          items:
            type: string
        usersTimeZone:
          type: string
        suspended:
          type: boolean
        sessionCount:
          type: integer
        totpEnrolled:
          type: boolean
        totpUpdatedAt:
          type: string
          format: date-time
    trustedappConfigGet:
      type: object
      title: trustedappConfigGet
      description: Object containing information about the list of trusted applications for the organization
      properties:
        checksum:
          type: string
          description: Checksum to validate the trustedApp configuration for the organization
          examples:
            - thisIsAnExampleChecksum1234
        trustedApps:
          type: array
          description: 'List of authorized apps for the organization '
          minItems: 1
          items:
            type: object
            description: Represents an application that is going to be trusted by the organization
            properties:
              name:
                type: string
                examples:
                  - Application 1
                description: Name of the trusted application
              path:
                type: string
                description: Absolute path for the app's location in user's device
                examples:
                  - /someuser/Applications/application1.app
              teamid:
                type: string
                description: App's Team ID
                examples:
                  - FakeTeamID
            required:
              - name
      required:
        - checksum
        - trustedApps
    trustedappConfigPut:
      type: object
      title: trustedappConfigPut
      description: Object containing information about the list of trusted applications for the organization
      properties:
        trustedApps:
          type: array
          description: 'List of authorized apps for the organization '
          minItems: 1
          items:
            type: object
            description: Represents an application that is going to be trusted by the organization
            properties:
              name:
                type: string
                examples:
                  - Application 1
                description: Name of the trusted application
              path:
                type: string
                description: Absolute path for the app's location in user's device
                examples:
                  - /someuser/Applications/application1.app
              teamid:
                type: string
                description: App's Team ID
                examples:
                  - FakeTeamID
            required:
              - name
      required:
        - trustedApps
  parameters:
    trait_fields_fields:
      description: |
        Use a space seperated string of field parameters to include the data in the response. If omitted, the default list of fields will be returned.
      in: query
      name: fields
      schema:
        type: string
        default: ''
    trait_filter_filter:
      description: |-
        A filter to apply to the query. See the supported operators below. For more complex searches,
        see the related `/search/<domain>` endpoints,
        e.g. `/search/systems`.

        **Filter structure**: The filter syntax follows a consistent pattern of `<field>:<operator>:<value>` (e.g. `department:$eq:Finance`)

        **field** = Populate with a valid field from an endpoint response.

        **operator** = Supported operators are:
        - `$eq` - equals (exact match)
        - `$in` - equals (multiple match terms). Separate terms by `|` character: `<field>:$in:<term one>|<term two>`
          - any item with `<field>` that matches ANY of the match terms will be returned
          - to use a literal `|` character inside a match term, it must be "escaped" using a backslash `\` (`"\|"`)
            - for `GET` endpoints, only ONE backslash is needed: `costCenter:$in:Atlanta\|Tampa|Chicago`
            - for `POST` endpoints, TWO backslashes are needed due to the nature of JSON: `costCenter:$in:Atlanta\\|Tampa|Chicago`
            - resulting match terms: `"Atlanta|Tampa", "Chicago"`
        - `$ne` - does not equal
        - `$nin` - does not equal (multiple match terms). Separate terms by `|` character: `<field>:$nin:<term one>|<term two>`
          - any item with `<field>` that DOES NOT match ANY of the match terms will be returned
          - refer to above `$in` documentation on using literal `|` character in match terms
        - `$lt` - is less than
        - `$lte` - is less than or equal to
        - `$gt` - is greater than
        - `$gte` - is greater than or equal to
        - `$sw` - Finds items where the field value begins with the specified term.

        **Eventually Consistent Operators** = These advanced operators support multiple-term matching and **require the `x-eventually-consistent` API request header** to be set as `true`. Terms within the `value` must be separated by the `|` character.
        - `$sw` - Matches any item where the field value **begins** with **any one** of the provided terms. E.g `<field>:$sw:<term one>|<term two>`
        - `$ew` - Matches any item where the field value **ends** with **any one** of the provided terms. E.g `<field>:$ew:<term one>|<term two>`
        - `$co` - Matches any item where the field value **contains** **any one** of the provided terms. E.g `<field>:$co:<term one>|<term two>`
        - `$nco` - Matches any item where the field value **does not contain** any of the provided terms. E.g `<field>:$nco:<term one>|<term two>`

        _Note: v1 operators differ from v2 operators._

        _Note: For v1 operators, excluding the `$` will result in undefined behavior **and is not recommended.**_

        **value** = Populate with the value you want to search for. **Case sensitive**.

        **Examples**
        - `GET /users?filter=username:$eq:testuser`
        - `GET /systemusers?filter=department:$in:Finance|IT|Shipping & Receiving` - an item with `{ department: "IT" }` will match
        - `GET /systemusers?filter=department:$in:Finance \| Sales|IT` - an item with `{ department: "Finance | Sales" }` will match
        - `GET /systemusers?filter=department:$ne:Accounting`
        - `GET /systemusers?filter=department:$nin:Finance|IT|Shipping & Receiving` - an item with `{ department: "HR" }` will match
        - `GET /systemusers?filter=password_expiration_date:$lte:2021-10-24`
        - `GET /systems?filter[0]=firstname:$eq:foo&filter[1]=lastname:$eq:bar` - this will AND the filters together.
        - `GET /systems?filter[or][0]=lastname:$eq:foo&filter[or][1]=lastname:$eq:bar` - this will OR the filters together.
        - `GET /systemusers?filter=department:$sw:Shipping` - an item with `{ department: "Shipping & Receiving" }` will match
        - `GET /systemusers?filter=department:$sw:Shipping\|Receiving` - an item with `{ department: "Shipping|Receiving Item" }` will match
        - `GET /systemusers?filter=department:$sw:Shipping|Receiving` - an item with `{ department: "Shipping Item" }` will match or an item with `{ department: "Receiving Item" }` will match. **Use it with `x-eventually-consistent` header set to `true`:**
      in: query
      name: filter
      schema:
        type: string
    trait_limit_limit:
      description: The number of records to return at once. Limited to 100.
      in: query
      name: limit
      schema:
        type: integer
        default: 10
    trait_multiTenantRequestHeaders_x-org-id:
      description: ''
      in: header
      name: x-org-id
      schema:
        type: string
        default: ''
    trait_search_search:
      description: A nested object containing a `searchTerm` string or array of strings and a list of `fields` to search on.
      in: query
      name: search
      schema:
        type: string
    trait_skip_skip:
      description: The offset into the records to return.
      in: query
      name: skip
      schema:
        type: integer
        minimum: 0
        default: 0
    trait_sort_sort:
      description: |
        Use space separated sort parameters to sort the collection.
        Default sort is ascending. Prefix with `-` to sort descending.
      in: query
      name: sort
      schema:
        type: string
        default: ''
    trait_sortIgnoreCase_sortIgnoreCase:
      description: |
        Use space separated sort parameters to sort the collection, ignoring case.
        Default sort is ascending. Prefix with `-` to sort descending.
      in: query
      name: sortIgnoreCase
      schema:
        type: string
        default: ''
    trait_systemContextAuth_Authorization:
      description: Authorization header for the System Context API
      in: header
      name: Authorization
      schema:
        type: string
    trait_systemContextAuth_Date:
      description: Current date header for the System Context API
      in: header
      name: Date
      schema:
        type: string
    trait_search_x-eventually-consistent:
      description: EXPERIMENTAL! Use to acknowledge eventually consistent data in response.
      in: header
      name: x-eventually-consistent
      schema:
        type: boolean
        default: false
  responses:
    trait_standardErrors_400:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    trait_standardErrors_401:
      description: Unauthenticated
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    trait_standardErrors_403:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    trait_standardErrors_404:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    trait_standardErrors_409:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    trait_standardErrors_500:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  requestBodies:
    application:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/application'
    command:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/command'
    search:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/search'
  securitySchemes:
    x-api-key:
      in: header
      name: x-api-key
      type: apiKey
tags:
  - name: Active Directory
  - name: Application Templates
  - name: Applications
  - name: Billing
  - name: Command Results
  - name: Command Triggers
  - name: Commands
  - name: Managed Service Provider
  - name: Notifications
  - name: Organizations
  - name: Radius Servers
  - name: Search
  - name: Support
  - name: Systems
  - name: Systemusers
  - name: User Portal
  - name: Users
x-tagGroups:
  - name: API Reference
    tags:
      - Application Templates
      - Applications
      - Command Results
      - Command Triggers
      - Commands
      - Managed Service Provider
      - Organizations
      - Radius Servers
      - Search
      - Systems
      - Systemusers
      - Users
x-scopes:
  - administrators
  - applications
  - applications.create
  - applications.delete
  - applications.readonly
  - applications.update
  - applicationtemplates
  - applicationtemplates.readonly
  - commandrunner.legacy
  - commands
  - commands.readonly
  - commands.schedule
  - organizations
  - organizations.readonly
  - radius
  - radius.readonly
  - systems
  - systems.management
  - systems.readonly
  - systems.self
  - users
  - users.create
  - users.delete
  - users.mfa
  - users.mfa.enforce
  - users.mfa.reset
  - users.mfa.sync
  - users.notification
  - users.notification.send-activation-email
  - users.password
  - users.password.expire
  - users.password.set
  - users.properties
  - users.properties.update
  - users.readonly
  - users.state
  - users.state.activate
  - users.state.suspend
  - users.state.unlock
  - users.update.passwordreset
  - users.update.unlock
