Esper Geofence API

APIs for geofence management

OpenAPI Specification

esper-geofence-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: "# Introduction\nEsper APIs are a set of REST-based APIs that help you programmatically control and monitor Android-based Dedicated Devices running the Esper agent using Esper Manage. With these APIs, you can orchestrate and manage devices that have been provisioned against your Esper Manage environment. Furthermore, these APIs allows you to manage the Android applications installed on your Dedicated Device fleet. To read more about the various capabilities of Esper APIs and Esper managed devices, please visit [esper.io](https://esper.io). This guide describes all the available APIs in detail, along with code samples for you to quickly ramp up to using them.\\\nTo use these APIs you will need to create a developer account with Esper and get access to the Esper Dev Console and the Esper ManageDashboard. You can find out more about Esper and sign up for free at [esper.io/signup](https://esper.io/signup)\\\nWe've done our best to keep this document up to date, but if you find any issues, please reach out to us at developer@esper.io.\n\n# SDK\n\n  You are welcome to use your favorite HTTP/REST library for your programming language in order to call these APIs, or you can use our SDK (currently supporting [python](https://github.com/esper-io/esper-client-py)) to do so.\n\n\n# Authentication\nThe client needs to send authentication details to access the Esper APIs by generating and applying an API key. Be sure to sign up for your free trial account with Esper Dev to generate your key:\n\n# Errors\nThe APIs use standard HTTP status codes to indicate success or failure. All error responses will have a JSON body in the following format:\n\n```\n{\n  \"errors\": [],\n  \"message\": \"error message\",\n  \"status\": 400\n}\n```\n* `errors` -  List of error details\n* `message` - Error description\n* `status` - HTTP status code\n"
  version: 1.0.0
  title: ESPER API REFERENCE Application Geofence API
  termsOfService: https://esper.io/terms-of-service
  contact:
    email: developer@esper.io
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
host: foo-api.esper.cloud
basePath: /api
schemes:
- https
tags:
- name: Geofence
  description: APIs for geofence management
  externalDocs:
    description: Find out more about Geofence
    url: https://docs.esper.io/home/console.html#geofence
paths:
  /v0/enterprise/{enterprise_id}/geofence/:
    get:
      operationId: getAllGeofences
      summary: List Geofences in Enterprise
      description: API to view all the geofences in an enterprise
      produces:
      - application/json
      parameters:
      - name: enterprise_id
        in: path
        description: A UUID string identifying the enterprise.
        required: true
        type: string
        format: uuid
      - name: search
        in: query
        description: A search term.
        required: false
        type: string
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        type: integer
      responses:
        '200':
          description: successful operation
          schema:
            required:
            - count
            - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: url
                x-nullable: true
              previous:
                type: string
                format: url
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/Geofence'
      security:
      - apiKey: []
      tags:
      - Geofence
    post:
      operationId: createGeofence
      summary: Create a geofence
      description: Returns Geofence instance
      produces:
      - application/json
      parameters:
      - name: data
        in: body
        required: true
        schema:
          $ref: '#/definitions/Geofence'
      - name: enterprise_id
        in: path
        description: A UUID string identifying the enterprise.
        required: true
        type: string
        format: uuid
      responses:
        '201':
          description: successful operation
          schema:
            $ref: '#/definitions/Geofence'
      security:
      - apiKey: []
      tags:
      - Geofence
  /v0/enterprise/{enterprise_id}/geofence/{geofence_id}/:
    parameters:
    - name: geofence_id
      in: path
      description: A UUID string identifying the geofence.
      required: true
      type: string
      format: uuid
    - name: enterprise_id
      description: A UUID string identifying the enterprise.
      in: path
      required: true
      type: string
      format: uuid
    get:
      operationId: getGeofence
      summary: Get geofence information
      description: Returns geofence instance
      produces:
      - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Geofence'
      security:
      - apiKey: []
      tags:
      - Geofence
    put:
      operationId: updateGeofence
      summary: Update geofence information
      description: Returns geofence instance
      produces:
      - application/json
      parameters:
      - name: data
        in: body
        required: true
        schema:
          $ref: '#/definitions/Geofence'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Geofence'
      security:
      - apiKey: []
      tags:
      - Geofence
    patch:
      operationId: partialUpdateGeofence
      summary: Partially updates geofence information
      description: Returns geofence instance
      produces:
      - application/json
      parameters:
      - name: data
        in: body
        required: true
        schema:
          $ref: '#/definitions/GeofenceUpdate'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Geofence'
      security:
      - apiKey: []
      tags:
      - Geofence
    delete:
      operationId: deleteGeofence
      summary: Delete a geofence
      description: Empty response
      produces:
      - application/json
      parameters: []
      responses:
        '204':
          description: successful operation
      security:
      - apiKey: []
      tags:
      - Geofence
definitions:
  Geofence:
    required:
    - name
    - latitude
    - longitude
    type: object
    properties:
      id:
        title: Geofence id
        description: id of the geofence
        type: string
        format: uuid
        readOnly: true
      name:
        title: Geofence name
        description: Name of the geofence
        type: string
      description:
        title: Geofence description
        description: A description about the geofence
        type: string
      enterprise:
        title: Enterprise id
        description: id of the enterprise resource
        type: string
        format: uuid
        readOnly: true
      latitude:
        title: Geofence latitude
        description: Latitude corresponding to the geofence
        type: string
        format: decimal
      longitude:
        title: Geofence longitude
        description: Longitude corresponding to the geofence
        type: string
        format: decimal
      radius:
        title: Geofence radius
        description: The radius within which the geofence should be applied
        type: integer
      radius_unit:
        title: Unit of radius
        description: The unit in which the radius is taken, eg - kilometers, meters etc
        type: string
        enum:
        - KILOMETERS
        - METERS
        - MILES
      device_actions:
        title: Device Actions
        description: The actions to be performed on the device
        type: array
        items:
          type: string
          enum:
          - LOCK_DOWN
          - BEEP
      device_count:
        title: Device count
        description: Number of devices
        type: integer
        readOnly: true
      created_by:
        title: Created by
        description: The user who created the geofence
        type: string
        readOnly: true
      created_on:
        title: Creation date and time
        description: Date and time of when the geofence was created
        type: string
        format: date-time
        readOnly: true
      updated_on:
        title: Updation date and time
        description: Date and time of when the geofence was updated
        type: string
        format: date-time
        readOnly: true
  GeofenceUpdate:
    type: object
    properties:
      name:
        title: Geofence name
        description: Name of the geofence
        type: string
      description:
        title: Geofence description
        description: A description about the geofence
        type: string
      latitude:
        title: Geofence latitude
        description: Latitude corresponding to the geofence
        type: string
        format: decimal
      longitude:
        title: Geofence longitude
        description: Longitude corresponding to the geofence
        type: string
        format: decimal
      radius:
        title: Geofence radius
        description: The radius within which the geofence should be applied
        type: integer
      radius_unit:
        title: Unit of radius
        description: The unit in which the radius is taken, eg - kilometers, meters etc
        type: string
        enum:
        - KILOMETERS
        - METERS
        - MILES
      device_actions:
        title: Device Actions
        description: The actions to be performed on the device
        type: array
        items:
          type: string
          enum:
          - LOCK_DOWN
          - BEEP
securityDefinitions:
  apiKey:
    description: "#### API KEY - Access Token\nAccess token for APIs passed as authorization header in calls. You need to generate this from your Esper Dev Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper Dev account. Please follow the instructions [here](https://docs.esper.io/home/module/genapikey.html) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n    curl -X GET \\\n      https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n      -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n      -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication scheme [here](https://console-docs.esper.io/API/generate.html).\n"
    name: Authorization
    type: apiKey
    in: header
x-tagGroups:
- name: API Reference
  tags:
  - Enterprise
  - Application
  - Application V1
  - Device
  - Device Group
  - Commands
  - Group Commands
  - Token
  - Commands V2
  - Enterprise Policy
  - Geofence
  - Reports
  - Subscription
  - Content