# Access Control

Part of the [GeoDynamics API](/api/geodynamics/index.md). Host: `https://api.geodynamics.dev`.

## GET /intellitracer/v1/access/schedule/all

`https://api.geodynamics.dev/intellitracer/v1/access/schedule/all`

Get access schedules

Returns a list of all access schedules.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Responses

#### 200: OK

```json
[
  {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Office hours"
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

## GET /intellitracer/v1/access/exceptionschedules

`https://api.geodynamics.dev/intellitracer/v1/access/exceptionschedules`

Get exceptions

Gets a list of all access schedule exceptions.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Responses

#### 200: OK

```json
[
  {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Office hours",
    "TimeClockIds": [],
    "Dates": [],
    "AccessControl": false,
    "ConstantRelais": false,
    "Pulse": false
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

## POST /intellitracer/v1/access/exceptionschedules

`https://api.geodynamics.dev/intellitracer/v1/access/exceptionschedules`

Privilege required: `Api: Accesscontrol edit`

Update exception

Updates an access schedule exception.

### Request body

### Responses

#### 200: OK

```json
[
  {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Office hours",
    "TimeClockIds": [],
    "Dates": [],
    "AccessControl": false,
    "ConstantRelais": false,
    "Pulse": false
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

## PUT /intellitracer/v1/access/exceptionschedules

`https://api.geodynamics.dev/intellitracer/v1/access/exceptionschedules`

Privilege required: `Api: Accesscontrol edit`

Create exception

Creates an access schedule exception.

### Request body

### Responses

#### 200: OK

```json
[
  {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Office hours",
    "TimeClockIds": [],
    "Dates": [],
    "AccessControl": false,
    "ConstantRelais": false,
    "Pulse": false
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

## GET /intellitracer/v1/access/exceptionschedules/{id}

`https://api.geodynamics.dev/intellitracer/v1/access/exceptionschedules/{id}`

Get exception by Id

Gets an access schedule exception by its Id.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

```json
[
  {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Office hours",
    "TimeClockIds": [],
    "Dates": [],
    "AccessControl": false,
    "ConstantRelais": false,
    "Pulse": false
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

## DELETE /intellitracer/v1/access/exceptionschedules/{id}

`https://api.geodynamics.dev/intellitracer/v1/access/exceptionschedules/{id}`

Privilege required: `Api: Accesscontrol edit`

Delete exception by Id

Deletes an access schedule exception by its Id.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

#### 401: Unauthorized

#### 403: Forbidden

## GET /intellitracer/v2/accessgroup?page={page}&search={search}

`https://api.geodynamics.dev/intellitracer/v2/accessgroup?page={page}&search={search}`

Get access groups

Returns a paged list of access groups.

Pagination and searching is explained in [Pagination](#pagination).

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `page` | number | required | `1` |
| `search` | string | required | `ABC` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | array |
| `PagingFilter` (default = null) | object |

```json
{
  "Data": [
    {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Everyone",
      "Users": [
        {
          "Id": "00000000-0000-0000-0000-000000000000",
          "Code": "012345",
          "Name": "John Doe",
          "Type": 0
        }
      ]
    }
  ],
  "PagingFilter": {
    "Page": 1,
    "Search": "ABC",
    "PageCount": 4,
    "TotalCount": 100,
    "Links": {
      "Base": "https://api.geodynamics.dev",
      "First": "/intellitracer/v2/asset?page=1",
      "Prev": "/intellitracer/v2/asset?page=2",
      "Next": "/intellitracer/v2/asset?page=4",
      "Last": "/intellitracer/v2/asset?page=4"
    }
  }
}
```

#### 401: Unauthorized

#### 403: Forbidden

## GET /intellitracer/v2/accessgroup/{id}

`https://api.geodynamics.dev/intellitracer/v2/accessgroup/{id}`

Get access group

Returns an access group by id.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | object |

```json
{
  "Data": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  }
}
```

#### 401: Unauthorized

#### 403: Forbidden

## DELETE /intellitracer/v2/accessgroup/{id}

`https://api.geodynamics.dev/intellitracer/v2/accessgroup/{id}`

Privilege required: `Api: Accesscontrol edit`

Delete access group

Deletes an access group.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | object |

```json
{
  "Data": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v2/accessgroup

`https://api.geodynamics.dev/intellitracer/v2/accessgroup`

Privilege required: `Api: Accesscontrol edit`

Update access group

Updates an access group.

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `Id` | string | required |
| `Name` | string | required |
| `UserIds` (default = []) | array | optional |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | object |

```json
{
  "Data": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## PUT /intellitracer/v2/accessgroup

`https://api.geodynamics.dev/intellitracer/v2/accessgroup`

Privilege required: `Api: Accesscontrol edit`

Create access group

Creates a new access group.

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `Name` | string | required |
| `UserIds` (default = []) | array | optional |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | object |

```json
{
  "Data": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## PUT /intellitracer/v2/accessgroup/{id}/user

`https://api.geodynamics.dev/intellitracer/v2/accessgroup/{id}/user`

Privilege required: `Api: Accesscontrol edit`

Link users to access group

Links one or more users to an access group.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | object |

```json
{
  "Data": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v2/accessgroup/{id}/user/delete

`https://api.geodynamics.dev/intellitracer/v2/accessgroup/{id}/user/delete`

Privilege required: `Api: Accesscontrol edit`

Unlink users from access group

Unlinks one or more users from an access group.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` (default = null) | object |

```json
{
  "Data": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Everyone",
    "Users": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Code": "012345",
        "Name": "John Doe",
        "Type": 0
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## GET /intellitracer/v1/access/location/all

`https://api.geodynamics.dev/intellitracer/v1/access/location/all`

Get access locations

Returns a list of all access locations.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Responses

#### 200: OK

```json
[
  {
    "Id": "00000000-0000-0000-0000-000000000000",
    "Name": "Entrance",
    "Readers": [
      {
        "ReaderId": "00000000-0000-0000-0000-000000000000",
        "ReaderName": "Entrance"
      }
    ],
    "Relais": [
      {
        "RelaisId": "00000000-0000-0000-0000-000000000000",
        "RelaisName": "Entrance"
      }
    ]
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

## GET /intellitracer/v1/access/location/{id}/useraccess

`https://api.geodynamics.dev/intellitracer/v1/access/location/{id}/useraccess`

Get user access

Returns a list of all users that have access to a location.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

```json
[
  {
    "PersonId": "00000000-0000-0000-0000-000000000000",
    "UserId": "00000000-0000-0000-0000-000000000000",
    "ScheduleId": "00000000-0000-0000-0000-000000000000",
    "IsMaster": false
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v1/access/location/{id}/useraccess

`https://api.geodynamics.dev/intellitracer/v1/access/location/{id}/useraccess`

Privilege required: `Api: Accesscontrol edit`

Grant user access

Grants a user access to a location according to a schema. Provide either a user id or person id to identify a user. The user is added to the group `{LocationName} - {ScheduleName}`. If necessary, a new group is created before granting access.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `PersonId` (default = null)  ID of the person that was granted entry. | string | optional |
| `UserId` (default = null)  ID of the user that was denied entry. | string | optional |
| `AccessScheduleId` (default = null)  ID of the linked access schedule. | string | required |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |

```json
{
  "Success": false,
  "Message": null
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |

```json
{
  "Success": false,
  "Message": null
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v1/access/location/{id}/ciawaccess

`https://api.geodynamics.dev/intellitracer/v1/access/location/{id}/ciawaccess`

Privilege required: `Api: Accesscontrol edit`

Grant user access (ciaw)

Grants a user access to a location according to a schema. Provide a name to identify a user. Provide either a Limosa number or both Rrn number and VAT number to identify a CIAW person. The user is added to the specified user group, linked to the specified RFID tag and linked to the specified CIAW person. If necessary, a new user, RFID tag and/or user group is created before granting access.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `LimosaNumber` (default = 0)  Limosa number, used for foreign employees. | number | optional |
| `RrnNumber` (default = 0)  Rijksregisternummer, used for Belgian employees. | number | optional |
| `Name` Name of the person who was granted access | string | required |
| `BtwNumber` (default = null)  VAT number | string | optional |
| `BadgeNumber` Badge number used for this registration | string | required |
| `LimosaExpirationDate` (default = null) | string | optional |
| `A1ExpirationDate` (default = null) | string | optional |
| `VisaExpirationDate` (default = null)  Date this person's Limosa number expires. | string | optional |
| `OwnStaff` (default = false)  Whether this employee works for the current company or for a different one. | boolean | required |
| `AddToGroup` Add this user to an access group. | string | required |
| `AccessScheduleId` ID of the linked access schedule. | string | required |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |
| `UserId` | string |
| `PersonId` | string |

```json
{
  "Success": false,
  "Message": null,
  "UserId": "00000000-0000-0000-0000-000000000000",
  "PersonId": "00000000-0000-0000-0000-000000000000"
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |
| `UserId` | string |
| `PersonId` | string |

```json
{
  "Success": false,
  "Message": null,
  "UserId": "00000000-0000-0000-0000-000000000000",
  "PersonId": "00000000-0000-0000-0000-000000000000"
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v1/access/location/{id}/removeuseraccess

`https://api.geodynamics.dev/intellitracer/v1/access/location/{id}/removeuseraccess`

Privilege required: `Api: Accesscontrol edit`

Deny user access

Denies a user access to a location. Provide either a user id or person id to identify a user. The user is removed from all groups of the location.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `PersonId` (default = null)  ID of the person that was denied entry. | string | optional |
| `UserId` (default = null)  ID of the user that was denied entry. | string | optional |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |

```json
{
  "Success": false,
  "Message": null
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |

```json
{
  "Success": false,
  "Message": null
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v1/access/location/{id}/removeschedules

`https://api.geodynamics.dev/intellitracer/v1/access/location/{id}/removeschedules`

Privilege required: `Api: Accesscontrol edit`

Remove schedules from access location

Removes a list of schedules from an access location.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |

```json
{
  "Success": false,
  "Message": null
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Success` | boolean |
| `Message` (default = null) | string |

```json
{
  "Success": false,
  "Message": null
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## GET /intellitracer/v2/accesslocation/{id}/accesscontrol/schedule

`https://api.geodynamics.dev/intellitracer/v2/accesslocation/{id}/accesscontrol/schedule`

Get access control schedules by access location

Returns a list of all access control schedules linked to an access location.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` | array |

```json
{
  "Data": [
    {
      "Schedule": {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Office hours"
      },
      "Groups": [
        {
          "Id": "00000000-0000-0000-0000-000000000000",
          "Name": "Everyone"
        }
      ]
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

## PUT /intellitracer/v2/accesslocation/{id}/accesscontrol/schedule

`https://api.geodynamics.dev/intellitracer/v2/accesslocation/{id}/accesscontrol/schedule`

Privilege required: `Api: Accesscontrol edit`

Link access control schedule to access location

Links an access control schedule to an access location.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `id` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

Type: `object`

| Field | Type | Required |
| --- | --- | --- |
| `ScheduleId` | string | required |
| `GroupIds` (default = []) | array | optional |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` | object |

```json
{
  "Data": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## GET /intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}

`https://api.geodynamics.dev/intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}`

Get access control schedule by access location and id

Returns an access control schedule linked to an access location by id.

_Privilege required: `Api: Accesscontrol read` or `Api: Accesscontrol edit`_

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `locationId` | string | required | `00000000-0000-0000-0000-000000000000` |
| `scheduleId` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` | object |

```json
{
  "Data": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  }
}
```

#### 401: Unauthorized

#### 403: Forbidden

## DELETE /intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}

`https://api.geodynamics.dev/intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}`

Privilege required: `Api: Accesscontrol edit`

Unlink access control schedule from access location

Unlinks an access control schedule from an access location.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `locationId` | string | required | `00000000-0000-0000-0000-000000000000` |
| `scheduleId` | string | required | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` | object |

```json
{
  "Data": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## PUT /intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}/group

`https://api.geodynamics.dev/intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}/group`

Privilege required: `Api: Accesscontrol edit`

Link groups to access control schedule

Links one or more groups to an access control schedule.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `locationId` | string | required | `00000000-0000-0000-0000-000000000000` |
| `scheduleId` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` | object |

```json
{
  "Data": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## POST /intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}/group/delete

`https://api.geodynamics.dev/intellitracer/v2/accesslocation/{locationId}/accesscontrol/schedule/{scheduleId}/group/delete`

Privilege required: `Api: Accesscontrol edit`

Unlink groups from access schedule

Unlinks one or more groups from an access control schedule.

### Path parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `locationId` | string | required | `00000000-0000-0000-0000-000000000000` |
| `scheduleId` | string | required | `00000000-0000-0000-0000-000000000000` |

### Request body

### Responses

#### 200: OK

| Field | Type |
| --- | --- |
| `Data` | object |

```json
{
  "Data": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  }
}
```

#### 400: BadRequest

| Field | Type |
| --- | --- |
| `Entity` | object |
| `ValidationResult` | array |

```json
{
  "Entity": {
    "Schedule": {
      "Id": "00000000-0000-0000-0000-000000000000",
      "Name": "Office hours"
    },
    "Groups": [
      {
        "Id": "00000000-0000-0000-0000-000000000000",
        "Name": "Everyone"
      }
    ]
  },
  "ValidationResult": [
    {
      "Message": "",
      "SourceMemberNames": []
    }
  ]
}
```

#### 401: Unauthorized

#### 403: Forbidden

#### 417: ExpectationFailed

## GET /intellitracer/v1/accesslog

`https://api.geodynamics.dev/intellitracer/v1/accesslog`

Privilege required: `Manage access control`

Get access log

Returns the access log for an access location within a date/time range.

### Query parameters

| Name | Type | Required | Example |
| --- | --- | --- | --- |
| `fromDate` | string | required | `2019-01-25T05:00:00+01:00` |
| `toDate` | string | required | `2019-01-25T22:00:00+01:00` |
| `location` | string | optional | `00000000-0000-0000-0000-000000000000` |

### Responses

#### 200: OK

```json
[
  {
    "TimeStamp": "2019-01-25T08:06:45+01:00",
    "UserName": "John Doe",
    "UserId": "00000000-0000-0000-0000-000000000000",
    "LocationName": "Entrance",
    "LocationId": "00000000-0000-0000-0000-000000000000",
    "RelaisName": "Front",
    "ReaderName": "Front",
    "AccessGranted": true,
    "Type": "AccessGranted_MagStripe",
    "BadgeNumber": "00000000"
  }
]
```

#### 401: Unauthorized

#### 403: Forbidden
