client

package
v0.0.0-...-e0fae37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(b bool) *bool

Helper function to one-line a bool to *bool conversion. Required because a nullable value is needed to identify disincluded parameters in options structs.

func Float64

func Float64(f float64) *float64

Helper function to one-line a Int64 to *Int64 conversion. Required because a nullable value is needed to identify disincluded parameters in options structs.

func Int

func Int(i int) *int

Helper function to one-line a Int64 to *Int64 conversion. Required because a nullable value is needed to identify disincluded parameters in options structs.

func Ptr

func Ptr[T any](v T) *T

Helper function to one-line get a pointer to any literal. Required because a nullable value is needed to identify disincluded parameters in options structs. Individual functions for bool, int64, and float64 are retained.

Types

type AccessClient

type AccessClient struct {
	// contains filtered or unexported fields
}

func (*AccessClient) ActivateAccessCard

func (c *AccessClient) ActivateAccessCard(card_id string, options *ActivateAccessCardOptions) (*Card, error)

Given the card ID and Verkada defined user ID or user defined external ID, activate a specific access card for a user.

Verkada API Docs - Activate Access Card

func (*AccessClient) ActivateAccessScenario

func (c *AccessClient) ActivateAccessScenario(scenario_id string) (*ActivateAccessScenarioResponse, error)

Activates a scenario with the given scenario_id.

To use this API, you need an API Key having "Read/Write" permission for "Access Control" endpoints. "Manage via API" must also be enabled for scenarios in your organization.

Verkada API Docs - Activate Access Scenario

func (*AccessClient) ActivateLicensePlate

func (c *AccessClient) ActivateLicensePlate(license_plate_number string, options *ActivateLicensePlateOptions) (*LicensePlate, error)

Given the Verkada defined user ID (OR user defined external ID) and Licence Plate Number, activate a users Licence Plate Credential.

Verkada API Docs - Activate License Plate

func (*AccessClient) ActivateUserBLE

func (c *AccessClient) ActivateUserBLE(options *ActivateUserBLEOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), activate bluetooth unlock capability for a user.

Verkada API Docs - Activate BLE for Access User

func (*AccessClient) ActivateUserRemoteUnlock

func (c *AccessClient) ActivateUserRemoteUnlock(options *ActivateUserRemoteUnlockOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), activate remote unlock capability for a user.

Verkada API Docs - Activate Remote Unlock for User

func (*AccessClient) AddAccessCard

func (c *AccessClient) AddAccessCard(format string, options *AddAccessCardOptions, body *AddAccessCardBody) (*Card, error)

Create and add an access card for a specified user_id or external_id and org_id. All cards require one of:

  • card_number
  • card_number_hex
  • card_number_base36.

Verkada API Docs - Delete Access Card

func (*AccessClient) AddAccessScheduleEvent

func (c *AccessClient) AddAccessScheduleEvent(access_level_id string, end_time string, start_time string, weekday string) (*AccessScheduleEvent, error)

Add a new Access Schedule Event to an Access Level having the specified access_level_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Add Access Schedule Event to Access Level

func (*AccessClient) AddExceptionToCalendar

func (c *AccessClient) AddExceptionToCalendar(calendar_id string, date string, start_time, end_time string, body *AddExceptionToCalendarBody) (*DoorException, error)

Add a new Exception to a Door Exception Calendar having the specified calendar_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Add Exception to Door Exception Calendar

func (*AccessClient) AddMFACode

func (c *AccessClient) AddMFACode(code string, options *AddMFACodeOptions) (*AddMFACodeResponse, error)

Add an MFA code credential to a user given a specified user_id or external_id and org_id.

Verkada API Docs - Add MFA Code to User

func (*AccessClient) AddUserLicensePlate

func (c *AccessClient) AddUserLicensePlate(license_plate_number string, options *AddUserLicensePlateOptions, body *AddUserLicensePlatedBody) (*LicensePlate, error)

Add a license plate credential to a user given a specified user_id or external_id and org_id. The plate number must be a string of 6 alphanumeric values.

Verkada API Docs - Add License Plate from User

func (*AccessClient) AddUserToAccessGroup

func (c *AccessClient) AddUserToAccessGroup(group_id string, body *AddUserToAccessGroupBody) (*AddUserToAccessGroupResponse, error)

Add an access user to an access group with the Verkada defined group ID and either the user defined External ID or the Verkada defined user ID.

Verkada API Docs - Add User to Access Group

func (*AccessClient) AdminUnlockDoor

func (c *AccessClient) AdminUnlockDoor(door_id string) (*AdminUnlockDoorResponse, error)

Sends a request to unlock a door with door_id irrespective of any user's door access privileges.

Verkada API Docs - Unlock Door as Admin

func (*AccessClient) CreateAccessGroup

func (c *AccessClient) CreateAccessGroup(name string) (*AccessGroup, error)

Create an access group within the given organization using the given name. The name of the access group must be unique within the organization.

Verkada API Docs - Create Access Group

func (*AccessClient) CreateAccessLevel

func (c *AccessClient) CreateAccessLevel(access_groups []string, access_schedule_events []AccessScheduleEvent, doors []string, name string, sites []string) (*AccessLevel, error)

Create a new Access Level.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Create Access Level

func (*AccessClient) CreateDoorExceptionCalendar

func (c *AccessClient) CreateDoorExceptionCalendar(name string, body *CreateDoorExceptionCalendarBody) (*DoorExceptionCalendar, error)

Create a new Door Exception Calendar.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Create Door Exception Calendar

func (*AccessClient) DeactivateAccessCard

func (c *AccessClient) DeactivateAccessCard(card_id string, options *DeactivateAccessCardOptions) (*Card, error)

Given the card ID and Verkada defined user ID or user defined external ID, deactivate a specific access card for a user.

Verkada API Docs - Deactivate Access Card

func (*AccessClient) DeactivateAccessScenario

func (c *AccessClient) DeactivateAccessScenario(scenario_id string) (*DeactivateAccessScenarioResponse, error)

Releases a scenario with the given scenario_id.

To use this API, you need an API Key having "Read/Write" permission for "Access Control" endpoints. "Manage via API" must also be enabled for scenarios in your organization.

Verkada API Docs - Release Access Scenario

func (*AccessClient) DeactivateLicensePlate

func (c *AccessClient) DeactivateLicensePlate(license_plate_number string, options *DeactivateLicensePlateOptions) (*LicensePlate, error)

Given the Verkada defined user ID (OR user defined external ID) and Licence Plate Number, deactivate a users Licence Plate Credential.

Verkada API Docs - Deactivate License Plate

func (*AccessClient) DeactivateUserBLE

func (c *AccessClient) DeactivateUserBLE(options *DeactivateUserBLEOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), deactivate bluetooth unlock capability for a user.

Verkada API Docs - Deactivate BLE for Access User

func (*AccessClient) DeactivateUserRemoteUnlock

func (c *AccessClient) DeactivateUserRemoteUnlock(options *DeactivateUserRemoteUnlockOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), deactivate remote unlock capability for a user.

Verkada API Docs - Deactivate Remote Unlock for User

func (*AccessClient) DeleteAccessCard

func (c *AccessClient) DeleteAccessCard(card_id string, options *DeleteAccessCardOptions) (*DeleteAccessCardResponse, error)

Deletes an access card of a specified access user given their user_id or external_id, the org_id, and the card_id.

Verkada API Docs - Delete Access Card

func (*AccessClient) DeleteAccessGroups

func (c *AccessClient) DeleteAccessGroups(group_id string) (*DeleteAccessGroupResponse, error)

Delete an access group with the given group identifier within the given organization.

Verkada API Docs - Delete Access Group

func (*AccessClient) DeleteAccessLevel

func (c *AccessClient) DeleteAccessLevel(access_level_id string) (*DeleteAccessLevelResponse, error)

Delete an Access Level having the specified access_level_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Delete Access Level

func (*AccessClient) DeleteAccessScheduleEvent

func (c *AccessClient) DeleteAccessScheduleEvent(access_level_id string, event_id string) (*DeleteAccessScheduleEventResponse, error)

Delete an Access Schedule Event having access_schedule_event_id on an Access Level having the specified access_level_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Delete Access Schedule Event on Access Level

func (*AccessClient) DeleteDoorExceptionCalendar

func (c *AccessClient) DeleteDoorExceptionCalendar(calendar_id string) (*DeleteDoorExceptionCalendarResponse, error)

Delete a Door Exception Calendar having the specified calendar_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Delete Door Exception Calendar

func (*AccessClient) DeleteExceptionFromCalendar

func (c *AccessClient) DeleteExceptionFromCalendar(calendar_id string, exception_id string) (*DeleteExceptionFromCalendarResponse, error)

Delete an Exception having the specified exception_id on a Door Exception Calendar having the specified calendar_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Delete Exception on Door Exception Calendar

func (*AccessClient) DeleteMFACode

func (c *AccessClient) DeleteMFACode(code string, options *DeleteMFACodeOptions) (*DeleteMFACodeResponse, error)

Deletes an MFA code credential from a specified user by providing the user_id or external_id, the org_id, and the mfa_code.

Verkada API Docs - Delete MFA Code from User

func (*AccessClient) DeleteProfilePhoto

func (c *AccessClient) DeleteProfilePhoto(options *DeleteProfilePhotoOptions) (*DeleteProfilePhotoResponse, error)

Delete a profile photo for the specified user.

Verkada API Docs - Delete Profile Photo

func (*AccessClient) DeleteUserLicensePlate

func (c *AccessClient) DeleteUserLicensePlate(license_plate_number string, options *DeleteUserLicensePlateOptions) (*DeleteUserLicensePlateResponse, error)

Deletes a license plate credential from a specified user by providing the user_id or the external_id, the org_id, and the license_plate_number.

Verkada API Docs - Delete License Plate from User

func (*AccessClient) GetAccessEvents

func (c *AccessClient) GetAccessEvents(options *GetAccessEventsOptions) (*GetAccessEventsResponse, error)

Returns events for an organization within a specified time range.

Verkada API Docs - Get Access Events

func (*AccessClient) GetAccessGroup

func (c *AccessClient) GetAccessGroup(group_id string) (*AccessGroup, error)

Retrieves an access group specified by its Verkada-defined unique identifier (Group ID).

Verkada API Docs - Get Access Group

func (*AccessClient) GetAccessInformationObject

func (c *AccessClient) GetAccessInformationObject(options *GetAccessInformationObjectOptions) (*AccessInformationObject, error)

Given the Verkada created User Id, user defined External Id, email address, or employee ID, retrieve the Access Object Information for the specified user.

Verkada API Docs - Get Access Information Object

func (*AccessClient) GetAccessLevel

func (c *AccessClient) GetAccessLevel(access_level_id string) (*AccessLevel, error)

Retrieves an Access Level having the specified access_level_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Get Access Level

func (*AccessClient) GetAccessScheduleEvent

func (c *AccessClient) GetAccessScheduleEvent(access_level_id string, event_id string) (*AccessScheduleEvent, error)

Retrieve an Access Schedule Event having access_schedule_event_id on an Access Level having the specified access_level_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Get Access Schedule Event Details

func (*AccessClient) GetAllAccessGroups

func (c *AccessClient) GetAllAccessGroups() (*GetAllAccessGroupsResponse, error)

Retrieves a list of all access groups in a given organization.

Verkada API Docs - Get All Access Groups

func (*AccessClient) GetAllAccessLevels

func (c *AccessClient) GetAllAccessLevels() (*GetAllAccessLevelsResponse, error)

Retrieves a list of all Access Levels that the API Token is authorized to access.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for Access Levels that you want to retrieve. "Manage via API" must also be enabled for all doors listed in doors that you want to retrieve.

Verkada API Docs - Get All Available Access Levels

func (*AccessClient) GetAllAccessScenarios

func (c *AccessClient) GetAllAccessScenarios(options *GetAllAccessScenariosOptions) (*GetAllAccessScenariosResponse, error)

Lists all access scenarios for the organization.

To use this API, you need an API Key with "Read" permission for "Access Scenario Management" endpoints or an API Key with "Read" permission for "Access Control" endpoints.

Verkada API Docs - Get All Access Scenarios

func (*AccessClient) GetAllAccessUsers

func (c *AccessClient) GetAllAccessUsers() (*GetAllAccessUsersResponse, error)

This returns a list of All Access User Objects for all access members in an organization.

Verkada API Docs - Get All Access Users

func (*AccessClient) GetAllDoorExceptionCalendars

Retrieves a list of all Door Exception Calendars that the API Token is authorized to access. The response can optionally be filtered to include Door Exception Calendars that were last updated after a provided date and time.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for Door Exception Calendars that you want to retrieve. "Manage via API" must also be enabled for all doors listed in doors that you want to retrieve.

Verkada API Docs - Get All Available Door Exception Calendars

func (*AccessClient) GetDoorExceptionCalendar

func (c *AccessClient) GetDoorExceptionCalendar(calendar_id string) (*DoorExceptionCalendar, error)

Retrieve a Door Exception Calendar having the specified calendar_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Get Door Exception Calendar

func (*AccessClient) GetDoors

func (c *AccessClient) GetDoors(options *GetDoorsOptions) (*GetDoorsResponse, error)

Retrieves a list of all doors in the organization. The response can optionally be filtered to doors within sites with the requested site_ids or to the specific doors represented by the specified door_ids. Only one of site_ids or door_ids can be used to filter the response for a single request (not both).

Verkada API Docs - Get Doors

func (*AccessClient) GetExceptionFromCalendar

func (c *AccessClient) GetExceptionFromCalendar(calendar_id string, exception_id string) (*DoorException, error)

Retrieve an Exception having the specified exception_id on a Door Exception Calendar having the specified calendar_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Get Exception on Door Exception Calendar

func (*AccessClient) GetProfilePhoto

func (c *AccessClient) GetProfilePhoto(options *GetProfilePhotoOptions, filename string) error

Retrieve a profile photo for the specified user.

Verkada API Docs - Get Profile Photo

func (*AccessClient) RemoveUserEntryCode

func (c *AccessClient) RemoveUserEntryCode(options *RemoveUserEntryCodeOptions) (*RemoveUserEntryCodeResponse, error)

Given the user defined external ID or Verkada defined user ID (but not both), remove the entry code of a user.

Verkada API Docs - Remove Entry Code for User

func (*AccessClient) RemoveUserFromAccessGroup

func (c *AccessClient) RemoveUserFromAccessGroup(group_id string, options *RemoveUserFromAccessGroupOptions) (*RemoveUserFromAccessGroupResponse, error)

Remove an access user to an access group with the Verkada defined group ID and the user defined either by their User ID or their External ID.

Verkada API Docs - Remove User From Access Group

func (*AccessClient) SendPassInvite

func (c *AccessClient) SendPassInvite(options *SendPassInviteOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), send out a Pass App invite.

Verkada API Docs - Send Pass App Invite for User

func (*AccessClient) SetStartDate

func (c *AccessClient) SetStartDate(start_date string, options *SetStartDateOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), set the start date for an access users credentials to become valid. Before this time, all methods of access specified for this access user will invalid.

Verkada API Docs - Set Start Date for User

func (*AccessClient) SetUserEndDate

func (c *AccessClient) SetUserEndDate(end_date string, options *SetUserEndDateOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), set the end date for an access users credentials to become invalid. After this time, all methods of access will be revoked.

Verkada API Docs - Set End Date for User

func (*AccessClient) SetUserEntryCode

func (c *AccessClient) SetUserEntryCode(entry_code string, options *SetUserEntryCodeOptions) (*AccessInformationObject, error)

Given the user defined external ID or Verkada defined user ID (but not both), set the entry code for a user.

Verkada API Docs - Set Entry Code for User

func (*AccessClient) UpdateAccessLevel

func (c *AccessClient) UpdateAccessLevel(access_level_id string, access_groups []string, access_schedule_events []AccessScheduleEvent, doors []string, name string, sites []string) (*AccessLevel, error)

Updates an Access Level having the specified access_level_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Update Access Level

func (*AccessClient) UpdateAccessScheduleEvent

func (c *AccessClient) UpdateAccessScheduleEvent(access_level_id string, event_id string, end_time string, start_time string, weekday string) (*AccessScheduleEvent, error)
Update an Access Schedule Event having access_schedule_event_id on an Access Level having the specified access_level_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites listed in sites for the Access Level. "Manage via API" must also be enabled for all doors listed in doors.

Verkada API Docs - Update Access Schedule Event on Access Level

func (*AccessClient) UpdateDoorExceptionCalendar

func (c *AccessClient) UpdateDoorExceptionCalendar(calendar_id string, name string, body *UpdateDoorExceptionCalendarBody) (*DoorExceptionCalendar, error)

Update a Door Exception Calendar having the specified calendar_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Update Door Exception Calendar

func (*AccessClient) UpdateExceptionOnCalendar

func (c *AccessClient) UpdateExceptionOnCalendar(calendar_id string, exception_id string, date string, start_time, end_time string, body *AddExceptionToCalendarBody) (*DoorException, error)

Update an Exception having the specified exception_id on a Door Exception Calendar having the specified calendar_id.

To use this API, you need an API Key having permission "Door Access Management" for all sites including doors listed in doors for the Door Exception Calendar. Manage via API must also be enabled for all doors listed in doors.

Verkada API Docs - Update Exception on Door Exception Calendar

func (*AccessClient) UploadProfilePhoto

func (c *AccessClient) UploadProfilePhoto(options *UploadProfilePhotoOptions, filename string) error

Upload a profile photo for the specified user.

Verkada API Docs - Upload Profile Photo

func (*AccessClient) UserUnlockDoor

func (c *AccessClient) UserUnlockDoor(door_id string, options *UserUnlockDoorOptions) (*UserUnlockDoorResponse, error)

Sends a request to unlock a door with door_id as the user with the specified user_id or external_id. The unlock request will only be granted if the user with the specified user_id has door access permissions for that door_id through an Access Level in Verkada Command.

Verkada API Docs - Unlock Door as User

type AccessGroup

type AccessGroup struct {
	Group_id string   `json:"group_id"`
	Name     string   `json:"name"`
	User_ids []string `json:"user_ids"`
}

type AccessGroupAddition

type AccessGroupAddition struct {
	Group_id          string   `json:"group_id"`
	Name              string   `json:"name"`
	Successful_adds   []string `json:"successful_adds"`
	Unsuccessful_adds []string `json:"unsuccessful_adds"`
}

type AccessGroupMetadata

type AccessGroupMetadata struct {
	Group_id string `json:"group_id"`
	Name     string `json:"name"`
}

type AccessInformationObject

type AccessInformationObject struct {
	Access_groups   []AccessGroup  `json:"access_groups"`
	Ble_unlock      bool           `json:"ble_unlock"`
	Cards           []Card         `json:"cards"`
	End_date        string         `json:"end_date"`
	Entry_code      string         `json:"entry_code"`
	External_id     string         `json:"external_id"`
	HasProfilePhoto bool           `json:"has_profile_photo"`
	License_plates  []LicensePlate `json:"license_plates"`
	Mfa_codes       []struct {
		Code string `json:"code"`
	} `json:"mfa_codes"`
	Profile_photo_last_updated string `json:"profile_photo_last_updated"`
	Remote_unlock              bool   `json:"remote_unlock"`
	Start_date                 string `json:"start_date"`
	User_id                    string `json:"user_id"`
}

type AccessLevel

type AccessLevel struct {
	Access_groups          []string              `json:"access_groups"`
	Access_level_id        string                `json:"access_level_id,omitempty"`
	Access_schedule_events []AccessScheduleEvent `json:"access_schedule_events"`
	Doors                  []string              `json:"doors"`
	Last_updated_at        int64                 `json:"last_updated_at,omitempty"`
	Name                   string                `json:"name"`
	Sites                  []string              `json:"sites"`
}

type AccessScenario

type AccessScenario struct {
	Doors_to_lock                   []string `json:"doors_to_lock"`
	Message                         string   `json:"message"`
	Name                            string   `json:"name"`
	Scenario_id                     string   `json:"scenario_id"`
	Site_count                      int      `json:"site_count"`
	Sites                           []string `json:"sites"`
	State                           string   `json:"state"`
	Type                            string   `json:"type"`
	User_groups_with_disable_access []string `json:"user_groups_with_disable_access"`
	User_groups_with_door_access    []string `json:"user_groups_with_door_access"`
	User_groups_with_enable_access  []string `json:"user_groups_with_enable_access"`
}

type AccessScheduleEvent

type AccessScheduleEvent struct {
	Access_schedule_event_id string `json:"access_schedule_event_id"`
	Door_status              string `json:"door_status,omitempty"`
	End_time                 string `json:"end_time"`
	Start_time               string `json:"start_time"`
	Weekday                  string `json:"weekday"`
}

type AccessUser

type AccessUser struct {
	Company_name               string `json:"company_name"`
	Department                 string `json:"department"`
	Department_id              string `json:"department_id"`
	Email                      string `json:"email"`
	Employee_id                string `json:"employee_id"`
	Employee_title             string `json:"employee_title"`
	External_id                string `json:"external_id"`
	Full_name                  string `json:"full_name"`
	Has_profile_photo          bool   `json:"has_profile_photo"`
	Profile_photo_last_updated string `json:"profile_photo_last_updated"`
	User_id                    string `json:"user_id"`
}

type ActivateAccessCardOptions

type ActivateAccessCardOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	// contains filtered or unexported fields
}

type ActivateAccessScenarioResponse

type ActivateAccessScenarioResponse struct {
}

type ActivateLicensePlateOptions

type ActivateLicensePlateOptions struct {
	User_id              string `name:"user_id"`
	External_id          string `name:"external_id"`
	License_plate_number string `name:"license_plate_number"`
}

type ActivateUserBLEOptions

type ActivateUserBLEOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type ActivateUserRemoteUnlockOptions

type ActivateUserRemoteUnlockOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type AddAccessCardBody

type AddAccessCardBody struct {
	Active             bool
	Card_number        string
	Card_number_base36 string
	Card_number_hex    string
	Facility_code      string
}

type AddAccessCardOptions

type AddAccessCardOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type AddExceptionToCalendarBody

type AddExceptionToCalendarBody struct {
	All_day_default           bool
	Door_status               string
	Double_badge              bool
	Double_badge_group_ids    []string
	First_person_in           bool
	First_person_in_group_ids []string
	Recurrence_rule           *RecurrenceRule
}

type AddMFACodeOptions

type AddMFACodeOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type AddMFACodeResponse

type AddMFACodeResponse struct {
	Code string `json:"code"`
}

type AddUserLicensePlateOptions

type AddUserLicensePlateOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type AddUserLicensePlatedBody

type AddUserLicensePlatedBody struct {
	Active bool
	Name   string
}

type AddUserToAccessGroupBody

type AddUserToAccessGroupBody struct {
	External_id string `json:"external_id,omitempty"`
	User_id     string `json:"user_id,omitempty"`
}

type AddUserToAccessGroupOptions

type AddUserToAccessGroupOptions struct {
	// contains filtered or unexported fields
}

type AddUserToAccessGroupResponse

type AddUserToAccessGroupResponse struct {
}

type AdminUnlockDoorResponse

type AdminUnlockDoorResponse struct {
	Door_id         string `json:"door_id"`
	Unlock_duration int    `json:"unlock_duration"`
}

type AuditLogsDevice

type AuditLogsDevice struct {
	Details          any    `json:"details"`
	Device_id        string `json:"device_id"`
	Device_name      string `json:"device_name"`
	Device_site_name string `json:"device_site_name"`
	Device_type      string `json:"device_type"`
}

type CameraClient

type CameraClient struct {
	// contains filtered or unexported fields
}

func (*CameraClient) CreateLPOI

func (c *CameraClient) CreateLPOI(license_plate string, description string) (*CreateLPOIResponse, error)

Creates a License Plate of Interest for an organization using a specified description and license plate number.

Verkada API Docs - Create a License Plate of Interest

func (*CameraClient) CreateLPOIByCSV

func (c *CameraClient) CreateLPOIByCSV(filename string) (*CreateLPOIByCSVResponse, error)

Create LPOI listed in a .csv file

Verkada API Docs - Create License Plates of Interest by CSV

func (*CameraClient) CreatePOI

func (c *CameraClient) CreatePOI(filename string, label string) (*POIProfile, error)

Creates a Person of Interest for an organization using a specified base64 encoded string of face image and label. File must be a .png or .jpg/.jpeg.

Verkada API Docs - Update a Person of Interest

func (*CameraClient) DeleteLPOI

func (c *CameraClient) DeleteLPOI(license_plate string) (*DeleteLPOIResponse, error)

Deletes a license plate from License Plates of Interest using a specified license plate number.

Verkada API Docs - Delete a License Plate of Interest

func (*CameraClient) DeleteLPOIByCSV

func (c *CameraClient) DeleteLPOIByCSV(filename string) (*DeleteLPOIByCSVResponse, error)

Delete LPOI listed in a .csv file

[Verkada API Docs - Delete License Plates of Interest by CSV]

func (*CameraClient) DeletePOI

func (c *CameraClient) DeletePOI(person_id string, options *DeletePOIOptions) (*POIProfile, error)

Deletes a Person of Interest from an organization using a specified person ID.

Verkada API Docs - Delete a Person of Interest

func (*CameraClient) GetAlerts

func (c *CameraClient) GetAlerts(options *GetAlertsOptions) (*GetAlertsResponse, error)

Returns alerts for an organization within a specified time range. Event types include:

  • Camera online
  • Camera offline
  • Tamper
  • People and Vehicle Detections
  • Crowd
  • Person of Interest
  • License Plate of Interest
  • Line Crossing
  • Loitering

Verkada API Docs - Get Alerts

func (*CameraClient) GetAllLPOI

func (c *CameraClient) GetAllLPOI(options *GetAllLPOIOptions) (*GetAllLPOIResponse, error)

Returns creation time, description, and license plate number for all License Plates of Interest for an organization.

Verkada API Docs - Get All License Plates of Interest

func (*CameraClient) GetAllPOI

func (c *CameraClient) GetAllPOI(options *GetAllPOIOptions) (*GetAllPOIResponse, error)

Returns the time of creation, label, last time seen, and person ID for each Person of Interest for an organization.

Verkada API Docs - Get All Person of Interest

func (*CameraClient) GetCBSettings

func (c *CameraClient) GetCBSettings(camera_id string) (*GetCBSettingsResponse, error)

Retrieve important information on cloud backup for a camera. Includes enabled status, time to save, time to upload, and upload progress.

Verkada API Docs - Get Cloud Backup Settings

func (*CameraClient) GetCameraAudioStatus

func (c *CameraClient) GetCameraAudioStatus(camera_id string) (*GetCameraAudioStatusResponse, error)

Return the software enabled status of the specified camera.

Verkada API Docs - Get Camera Audio Status

func (*CameraClient) GetCameraDevices

func (c *CameraClient) GetCameraDevices(options *GetCameraDevicesOptions) (*GetCameraDevicesResponse, error)

Returns details of all cameras within the organization.

Verkada API Docs - Get Camera Data

func (*CameraClient) GetDashBoardWidgetTrendData

func (c *CameraClient) GetDashBoardWidgetTrendData(dashboard_id string, body *GetDashboardWidgetTrendDataOptions) (*GetDashboardWidgetTrendDataResponse, error)

Returns all data for a particular dashboard's widgets over a specified time range.

Verkada API Docs - Get Dashboard Widget Trend Data

func (*CameraClient) GetDashboardOTData

func (c *CameraClient) GetDashboardOTData(dashboard_id string, options *GetDashboardOTDataOptions) (*GetDashboardOTDataResponse, error)

Returns all occupancy trends data for a particular dashboard over a specified time range.

Verkada API Docs - Get Dashboard Occupancy Trend Data

func (*CameraClient) GetLatestThumbnailImage

func (c *CameraClient) GetLatestThumbnailImage(camera_id string, options *GetLatestThumbnailImageOptions, filename string) error

Returns the latest thumbnail from a specified camera in either low resolution or high resolution.

Verkada API Docs - Get Latest Thumbnail Image

func (*CameraClient) GetLicensePlateTS

func (c *CameraClient) GetLicensePlateTS(camera_id string, license_plate string, options *GetLicensePlateTSOptions) (*GetLicensePlateTSResponse, error)

Returns the timestamps for a certain license plate. Only works for cameras that are LPR enabled.

Verkada API Docs - Get Timestamps for a License Plate

func (*CameraClient) GetLinkToFootage

func (c *CameraClient) GetLinkToFootage(camera_id string, options *GetLinkToFootageOptions) (*GetLinkToFootageResponse, error)

Returns link to video footage for a specified camera which will play footage from a specified timestamp.

Verkada API Docs - Get Link to Footage

func (*CameraClient) GetMaxCounts

func (c *CameraClient) GetMaxCounts(camera_id string, options *GetMaxCountsOptions) (*GetMaxCountsResponse, error)

Returns the max count of people and vehicles within a specified time range. Only supported for Verkada cameras in or after the 2nd generation, e.g. CD42 or CD43, not CD41

Verkada API Docs - Get Max People/Vehicle Counts

func (*CameraClient) GetOTCameras

func (c *CameraClient) GetOTCameras() (*GetOTCamerasResponse, error)

Returns a list of of each camera in the organization that supports occupancy trends with its line preset identifiers.

Verkada API Docs - Get Occupancy Trends Cameras

func (*CameraClient) GetOTData

func (c *CameraClient) GetOTData(camera_id string, preset_id string, options *GetOTDataOptions) (*GetOTDataResponse, error)

Returns all occupancy trends data for a particular camera over a specified time range.

Verkada API Docs - Get Occupancy Trend Data

func (*CameraClient) GetObjectCounts

func (c *CameraClient) GetObjectCounts(camera_id string, options *GetObjectCountsOptions) (*GetObjectCountsResponse, error)

Returns the count of people and vehicles within a specified time range.

Verkada API Docs - Get People/Vehicle Counts

func (*CameraClient) GetSeenPlates

func (c *CameraClient) GetSeenPlates(camera_id string, options *GetSeenPlatesOptions) (*GetSeenPlatesResponse, error)

Returns the timestamps, detected license plate numbers, and images of all license plates seen by a camera. Only works for cameras that are LPR enabled.

Verkada API Docs - Get Seen License Plates

func (*CameraClient) GetStreamingToken

func (c *CameraClient) GetStreamingToken() (*GetStreamingTokenResponse, error)

It returns a JWT (JSON Web Token) which provides access to the streaming endpoint for 30 minutes. This is a prerequisite to stream live or historical footage.

Verkada API Docs - Get Streaming Token

func (*CameraClient) GetThumbnailImage

func (c *CameraClient) GetThumbnailImage(camera_id string, options *GetThumbnailImageOptions, filename string) error

Returns a low-resolution or high-resolution thumbnail from a specified camera at or near a specified time.

Verkada API Docs - Get Thumbnail Image

func (c *CameraClient) GetThumbnailLink(camera_id string, options *GetThumbnailLinkOptions) (*GetThumbnailLinkResponse, error)

Returns a link to thumbnail image from a specified camera at a specified time.

Verkada API Docs - Get Thumbnail Link

func (*CameraClient) SetMQTTConfig

func (c *CameraClient) SetMQTTConfig(broker_cert string, broker_host_port string, camera_id string, body *SetMQTTConfigBody) (*SetMQTTConfigResponse, error)

Sets the MQTT config for a particular camera.

Verkada API Docs - Set Object Position MQTT Config

func (*CameraClient) StreamFootage

func (c *CameraClient) StreamFootage(org_id string, camera_id string, jwt string, options *GetFootageOptions, filename string) (*StreamFootageResponse, error)

The Streaming API allows users to stream both live and historical footage from cameras using the HLS (HTTP Live Streaming) protocol. The response type includes a formatted link to retrieve the HLS playlist. This link can be fed into video players to automatically retrieve the footage, e.g. "Open Network" function in VLC.

This method will also attempt to write the resulting HLS file to the file given in the "filename" parameter.

  • If a file is desired, ensure the filename ends with ".m3u8"
  • If no file is desired, input an empty string for filename.

Verkada API Docs - Stream Footage

func (*CameraClient) UpdateCBSettings

func (c *CameraClient) UpdateCBSettings(camera_id string, days_to_preserve string, enabled int, time_to_preserve string, upload_timeslot string, video_quality string, video_to_upload string) (*UpdateCBSettingsResponse, error)

Update important information on cloud backup for a camera. Includes enabled status, time to save, and time to upload.

Verkada API Docs - Update Cloud Backup Settings

func (*CameraClient) UpdateCameraAudio

func (c *CameraClient) UpdateCameraAudio(camera_id string, enabled bool) (*UpdateCameraAudioResponse, error)

Update the software enabled status of the specified camera.

Verkada API Docs - Update Camera Audio Status

func (*CameraClient) UpdateLPOI

func (c *CameraClient) UpdateLPOI(license_plate string, description string) (*UpdateLPOIResponse, error)

Updates a license plate description from License Plates of Interest using a specified license plate number.

Verkada API Docs - Update a License of Interest

func (*CameraClient) UpdatePOI

func (c *CameraClient) UpdatePOI(person_id string, label string) (*POIProfile, error)

Updates a label of Person of Interest for an organization using a specified person ID.

Verkada API Docs - Update a Person of Interest

type CameraPreset

type CameraPreset struct {
	CameraId string `json:"cameraId"`
	PresetId string `json:"presetId"`
}

type Card

type Card struct {
	Active             bool   `json:"active"`
	Card_id            string `json:"card_id"`
	Card_number        string `json:"card_number"`
	Card_number_base36 string `json:"card_number_base36"`
	Card_number_hex    string `json:"card_number_hex"`
	Facility_code      string `json:"facility_code"`
	Type               string `json:"type"`
}

type ClassicAlarmsClient

type ClassicAlarmsClient struct {
	// contains filtered or unexported fields
}

func (*ClassicAlarmsClient) GetAlarmDevices

func (c *ClassicAlarmsClient) GetAlarmDevices(site_id string, options *GetAlarmDevicesOptions) (*GetAlarmDevicesResponse, error)

Gets information about the all the devices in an alarm site specified by site_id.

This method is for Classic Alarms sites and devices ONLY.

Verkada API Docs - Get Alarm Devices

func (*ClassicAlarmsClient) GetAlarmSites

func (c *ClassicAlarmsClient) GetAlarmSites(site_ids []string, options *GetAlarmSitesOptions) (*GetAlarmSitesResponse, error)

Returns information about a list of alarm sites

This method is for Classic Alarms sites ONLY.

[Verkada API Docs - GGet Site Information]

type Client

type Client struct {
	Key            string
	TokenContainer auth.TokenContainer

	AutoPaginate  bool
	Helix         *HelixClient
	Camera        *CameraClient
	Core          *CoreClient
	Sensor        *SensorClient
	Guest         *GuestClient
	Access        *AccessClient
	ClassicAlarms *ClassicAlarmsClient
	VX            *VXClient
	// contains filtered or unexported fields
}

A Client contains the overarching information needed to make API calls. All API requests are made via an underlying http.Client. {Product}Client fields are used to organize which methods apply to which products. The API Key is used to obtain a TokenContainer for a short-lived auth token and its expiration.

func New

func New(options *ClientOptions) (*Client, error)

New returns a Client and any errors relating to configuration options. Region (and therefore base URL for requests) is set at Client creation and cannot be changed. Auto-pagination can be enabled so that paginated responses are combined into one response.

func (*Client) MakeVerkadaRequest

func (c *Client) MakeVerkadaRequest(method string, url string, params any, body any, target any, retry int) error

Used by all methods that don't require file upload or download. Handles auth token refresh automatically based on the Client's API key.

Exported so custom requests can be made and can also be used in case new endpoints are not reflected in the package.

func (*Client) MakeVerkadaRequestForFile

func (c *Client) MakeVerkadaRequestForFile(method string, url string, params any, filename string, retry int) error

Used by all methods that require file download (typically csv or pictures). Handles auth token refresh automatically based on the Client's API key.

Exported so custom requests can be made and can also be used in case new endpoints are not reflected in the package.

func (*Client) MakeVerkadaRequestWithFile

func (c *Client) MakeVerkadaRequestWithFile(method string, url string, params any, filename string, filetype string, target any, retry int) error

Used by all methods that require file upload (typically csv or pictures). Handles auth token refresh automatically based on the Client's API key.

Exported so custom requests can be made and can also be used in case new endpoints are not reflected in the package.

type ClientOptions

type ClientOptions struct {
	Region       string
	AutoPaginate bool
	APIKey       string
}

Potential options for initiating a new Client. Made into a type struct to allow for future non-breaking option additions.

It is recommended to use a .env file for auth.GetEnvFromFile() or os.Setenv() for the API key. The field here is provided in case environment variables are not provided.

type CoreClient

type CoreClient struct {
	// contains filtered or unexported fields
}

func (*CoreClient) CreateUser

func (c *CoreClient) CreateUser(body *CreateUserBody) (*CreateUserResponse, error)

Creates a user for in an organization. External ID required. Otherwise, the newly created user will contain a user ID which can be used for identification.

Requires at least one of:

  • First name
  • Last name
  • Email

Verkada API Docs - Create User

func (*CoreClient) DeleteUser

func (c *CoreClient) DeleteUser(options *DeleteUserOptions) (*DeleteUserResponse, error)

Deletes a user for an organization based on either provided user ID or an external ID set during creation.

Verkada API Docs - Verkada API Docs - Delete User

func (*CoreClient) GetAuditLogs

func (c *CoreClient) GetAuditLogs(options *GetAuditLogsOptions) (*GetAuditLogsResponse, error)

Returns audit logs for an organization within a specified time range.

Verkada API Docs - Verkada API Docs - Get Audit Logs

func (*CoreClient) GetUser

func (c *CoreClient) GetUser(options *GetUserOptions) (*GetUserResponse, error)

Returns a user for an organization based on either provided user ID or an external ID set during creation.

Verkada API Docs - Get User

func (*CoreClient) UpdateUser

func (c *CoreClient) UpdateUser(options *UpdateUserOptions, body *UpdateUserBody) (*UpdateUserResponse, error)

Updates a user's metadata for an organization based on either provided user ID or an external ID set during creation.

Verkada API Docs - Update User

type CreateAccessGroupBody

type CreateAccessGroupBody struct {
	Name string `json:"name"`
}

type CreateDoorExceptionCalendarBody

type CreateDoorExceptionCalendarBody struct {
	Doors      []string
	Exceptions []DoorException
}

type CreateHelixEventBody

type CreateHelixEventBody struct {
	Attributes []HelixAttributeObject
	Flagged    bool
}

type CreateHelixEventResponse

type CreateHelixEventResponse struct {
}

type CreateHelixEventTypeResponse

type CreateHelixEventTypeResponse struct {
	Event_schema   any    `json:"event_schema"`
	Event_type_uid string `json:"event_type_uid"`
	Name           string `json:"name"`
	Org_id         string `json:"org_id"`
}

type CreateLPOIByCSVResponse

type CreateLPOIByCSVResponse struct {
	AddedMs int `json:"addedMs"`
}

type CreateLPOIResponse

type CreateLPOIResponse struct {
	Creation_time int    `json:"creation_time"`
	Description   string `json:"description"`
	License_plate string `json:"license_plate"`
}

type CreateProfilePhotoResponse

type CreateProfilePhotoResponse struct {
}

type CreateUserBody

type CreateUserBody struct {
	Company_name   string `json:"company_name,omitempty"`
	Department     string `json:"department,omitempty"`
	Department_id  string `json:"department_id,omitempty"`
	Email          string `json:"email,omitempty"`
	Employee_id    string `json:"employee_id,omitempty"`
	Employee_title string `json:"employee_title,omitempty"`
	Employee_type  string `json:"employee_type,omitempty"`
	External_id    string `json:"external_id,omitempty"`
	First_name     string `json:"first_name,omitempty"`
	Last_name      string `json:"last_name,omitempty"`
	Middle_name    string `json:"middle_name,omitempty"`
	Phone          string `json:"phone,omitempty"`
}

type CreateUserResponse

type CreateUserResponse struct {
	Active         *bool  `json:"active"`
	Company_name   string `json:"company_name"`
	Department     string `json:"department"`
	Department_id  string `json:"department_id"`
	Email          string `json:"email"`
	Employee_id    string `json:"employee_id"`
	Employee_title string `json:"employee_title"`
	Employee_type  string `json:"employee_type"`
	External_id    string `json:"external_id"`
	First_name     string `json:"first_name"`
	Last_name      string `json:"last_name"`
	Middle_name    string `json:"middle_name"`
	Phone          string `json:"phone"`
	User_id        string `json:"user_id"`
}

type DeactivateAccessCardOptions

type DeactivateAccessCardOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	// contains filtered or unexported fields
}

type DeactivateAccessScenarioResponse

type DeactivateAccessScenarioResponse struct {
}

type DeactivateLicensePlateOptions

type DeactivateLicensePlateOptions struct {
	User_id              string `name:"user_id"`
	External_id          string `name:"external_id"`
	License_plate_number string `name:"license_plate_number"`
}

type DeactivateUserBLEOptions

type DeactivateUserBLEOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type DeactivateUserRemoteUnlockOptions

type DeactivateUserRemoteUnlockOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type DeleteAccessCardOptions

type DeleteAccessCardOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	// contains filtered or unexported fields
}

type DeleteAccessCardResponse

type DeleteAccessCardResponse struct {
}

type DeleteAccessGroupOptions

type DeleteAccessGroupOptions struct {
	// contains filtered or unexported fields
}

type DeleteAccessGroupResponse

type DeleteAccessGroupResponse struct {
}

type DeleteAccessLevelResponse

type DeleteAccessLevelResponse struct {
}

type DeleteAccessScheduleEventResponse

type DeleteAccessScheduleEventResponse struct {
}

type DeleteDenyListOptions

type DeleteDenyListOptions struct {
	// contains filtered or unexported fields
}

type DeleteDenyListResponse

type DeleteDenyListResponse struct {
}

type DeleteDoorExceptionCalendarResponse

type DeleteDoorExceptionCalendarResponse struct {
}

type DeleteExceptionFromCalendarResponse

type DeleteExceptionFromCalendarResponse struct {
}

type DeleteHelixEventOptions

type DeleteHelixEventOptions struct {
	// contains filtered or unexported fields
}

type DeleteHelixEventResponse

type DeleteHelixEventResponse struct {
}

type DeleteHelixEventTypeOptions

type DeleteHelixEventTypeOptions struct {
	// contains filtered or unexported fields
}

type DeleteHelixEventTypeResponse

type DeleteHelixEventTypeResponse struct {
}

type DeleteLPOIByCSVResponse

type DeleteLPOIByCSVResponse struct {
	AddedMs int `json:"addedMs"`
}

type DeleteLPOIOptions

type DeleteLPOIOptions struct {
	// contains filtered or unexported fields
}

type DeleteLPOIResponse

type DeleteLPOIResponse struct {
	Creation_time int    `json:"creation_time"`
	Description   string `json:"description"`
	License_plate string `json:"license_plate"`
}

type DeleteMFACodeOptions

type DeleteMFACodeOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	// contains filtered or unexported fields
}

type DeleteMFACodeResponse

type DeleteMFACodeResponse struct {
}

type DeletePOIOptions

type DeletePOIOptions struct {
	// contains filtered or unexported fields
}

type DeleteProfilePhotoOptions

type DeleteProfilePhotoOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type DeleteProfilePhotoResponse

type DeleteProfilePhotoResponse struct {
}

type DeleteUserLicensePlateOptions

type DeleteUserLicensePlateOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	// contains filtered or unexported fields
}

type DeleteUserLicensePlateResponse

type DeleteUserLicensePlateResponse struct {
}

type DeleteUserOptions

type DeleteUserOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type DeleteUserResponse

type DeleteUserResponse struct {
}

type Door

type Door struct {
	Acu_name string `json:"acu_name"`
	Acu_id   string `json:"acu_id"`
	Name     string `json:"name"`
	Door_id  string `json:"door_id"`
	Site     Site   `json:"site"`
}

type DoorException

type DoorException struct {
	All_day_default           bool            `json:"all_day_default,omitempty"`
	Calendar_id               string          `json:"calendar_id,omitempty"`
	Date                      string          `json:"date"`
	Door_exception_id         string          `json:"door_exception_id,omitempty"`
	Door_status               string          `json:"door_status"`
	Double_badge              bool            `json:"double_badge,omitempty"`
	Double_badge_group_ids    []string        `json:"double_badge_group_ids,omitempty"`
	End_time                  string          `json:"end_time"`
	First_person_in           bool            `json:"first_person_in,omitempty"`
	First_person_in_group_ids []string        `json:"first_person_in_group_ids,omitempty"`
	Recurrence_rule           *RecurrenceRule `json:"recurrence_rule,omitempty"`
	Start_time                string          `json:"start_time"`
}

type DoorExceptionCalendar

type DoorExceptionCalendar struct {
	Door_exception_calendar_id string          `json:"door_exception_calendar_id,omitempty"`
	Doors                      []string        `json:"doors"`
	Exceptions                 []DoorException `json:"exceptions"`
	Last_updated_at            int64           `json:"last_updated_at,omitempty"`
	Name                       string          `json:"name"`
}

type DoorInfo

type DoorInfo struct {
	Access_controller_id   string `json:"accessControllerId"`
	Access_controller_name string `json:"accessControllerName"`
	Name                   string `json:"name"`
}

type EventInfo

type EventInfo struct {
	Accepted        bool         `json:"accepted"`
	Aux_input_id    string       `json:"auxInputId"`
	Aux_input_name  string       `json:"auxInputName"`
	Building_id     string       `json:"buildingId"`
	Building_name   string       `json:"buildingName"`
	Direction       string       `json:"direction"`
	Door_id         string       `json:"doorId"`
	Door_info       DoorInfo     `json:"doorInfo"`
	Entity_id       string       `json:"entityId"`
	Entity_name     string       `json:"entityName"`
	Entity_type     string       `json:"entityType"`
	Event_type      string       `json:"eventType"`
	Floor_id        string       `json:"floorId"`
	Floor_name      string       `json:"floorName"`
	Floors          []Floors     `json:"floors"`
	Input_value     string       `json:"inputValue"`
	Lockdown_info   LockdownInfo `json:"lockdownInfo"`
	Message         string       `json:"message"`
	Organization_id string       `json:"organizationId"`
	Raw_card        string       `json:"rawCard"`
	Site_id         string       `json:"siteId"`
	Site_name       string       `json:"siteName"`
	Type            string       `json:"type"`
	User_id         string       `json:"userId"`
	User_info       UserInfo     `json:"userInfo"`
	User_name       string       `json:"userName"`
	Uuid            string       `json:"uuid"`
}

type Events

type Events struct {
	Device_id       string    `json:"device_id"`
	Device_type     string    `json:"device_type"`
	End_timestamp   string    `json:"end_timestamp"`
	Event_id        string    `json:"event_id"`
	Event_info      EventInfo `json:"event_info"`
	Event_type      string    `json:"event_type"`
	Organization_id string    `json:"organization_id"`
	Site_id         string    `json:"site_id"`
	Timestamp       string    `json:"timestamp"`
}

type Floors

type Floors struct {
	Door_id  string `json:"doorId"`
	Floor_id string `json:"floorId"`
	Uuid     string `json:"uuid"`
}

type GetAccessEventsOptions

type GetAccessEventsOptions struct {
	Start_time *int     `name:"start_time"`
	End_time   *int     `name:"end_time"`
	Page_token string   `name:"page_token"`
	Page_size  *int     `name:"page_size"`
	Event_type []string `name:"event_type"`
	Site_id    string   `name:"site_id"`
	Device_id  string   `name:"device_id"`
	User_id    string   `name:"user_id"`
}

type GetAccessEventsResponse

type GetAccessEventsResponse struct {
	Events          []Events `json:"events"`
	Next_page_token string   `json:"next_page_token"`
}

type GetAccessGroupOptions

type GetAccessGroupOptions struct {
	// contains filtered or unexported fields
}

type GetAccessInformationObjectOptions

type GetAccessInformationObjectOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type GetAlarmDevicesOptions

type GetAlarmDevicesOptions struct {
	Device_ids []string `name:"device_ids"`
	// contains filtered or unexported fields
}

type GetAlarmDevicesResponse

type GetAlarmDevicesResponse struct {
	Devices []struct {
		Device_id   string `json:"device_id"`
		Device_type string `json:"device_type"`
		Site_id     string `json:"site_id"`
	} `json:"devices"`
}

type GetAlarmSitesOptions

type GetAlarmSitesOptions struct {
	Site_ids []string `name:"site_ids"`
}

type GetAlarmSitesResponse

type GetAlarmSitesResponse struct {
	Sites []struct {
		Site_id             string `json:"site_id"`
		Site_name           string `json:"site_name"`
		Site_security_level string `json:"site_security_level"`
		Site_state          string `json:"site_state"`
	} `json:"sites"`
}

type GetAlertsOptions

type GetAlertsOptions struct {
	Start_time        *int     `name:"start_time"`
	End_time          *int     `name:"end_time"`
	Include_image_url *bool    `name:"include_image_url"`
	Page_token        string   `name:"page_token"`
	Page_size         *int     `name:"page_size"`
	Notification_type []string `name:"notification_type"`
}

type GetAlertsResponse

type GetAlertsResponse struct {
	Next_page_token string `json:"next_page_token"`
	Notifications   []struct {
		Camera_id         string   `json:"camera_id"`
		Created           int      `json:"created"`
		Crowd_threshold   int      `json:"crowd_threshold"`
		Image_url         string   `json:"image_url"`
		Notification_type string   `json:"notification_type"`
		Objects           []string `json:"objects"`
		Person_label      string   `json:"person_label"`
		Video_url         string   `json:"video_url"`
	} `json:"notifications"`
}

type GetAllAccessGroupsResponse

type GetAllAccessGroupsResponse struct {
	Access_groups []AccessGroupMetadata `json:"access_groups"`
}

type GetAllAccessLevelsResponse

type GetAllAccessLevelsResponse struct {
	Access_levels []AccessLevel `json:"access_levels"`
}

type GetAllAccessScenariosOptions

type GetAllAccessScenariosOptions struct {
	Scenario_ids []string `name:"scenario_ids"`
	Site_ids     []string `name:"site_ids"`
	Types        []string `name:"types"`
}

type GetAllAccessScenariosResponse

type GetAllAccessScenariosResponse struct {
	Scenarios []AccessScenario `json:"scenarios"`
}

type GetAllAccessUsersResponse

type GetAllAccessUsersResponse struct {
	Access_members []AccessUser `json:"access_members"`
}

type GetAllDoorExceptionCalendarsOptions

type GetAllDoorExceptionCalendarsOptions struct {
	Last_updated_after *int `name:"last_updated_after"`
}

type GetAllDoorExceptionCalendarsResponse

type GetAllDoorExceptionCalendarsResponse struct {
	Door_exception_calendars []DoorExceptionCalendar `json:"door_exception_calendars"`
}

type GetAllLPOIOptions

type GetAllLPOIOptions struct {
	Page_size  *int   `name:"page_size"`
	Page_token string `name:"page_token"`
}

type GetAllLPOIResponse

type GetAllLPOIResponse struct {
	License_plate_of_interest []struct {
		Creation_time int    `json:"creation_time"`
		Description   string `json:"description"`
		License_plate string `json:"license_plate"`
	} `json:"license_plate_of_interest"`
	Next_page_token string `json:"next_page_token"`
}

type GetAllPOIOptions

type GetAllPOIOptions struct {
	Page_size  *int   `name:"page_size"`
	Page_token string `name:"page_token"`
}

type GetAllPOIResponse

type GetAllPOIResponse struct {
	Next_token          string       `json:"next_token"`
	Persons_of_interest []POIProfile `json:"persons_of_interest"`
}

type GetAuditLogsOptions

type GetAuditLogsOptions struct {
	Start_time              *int   `name:"start_time"`
	End_time                *int   `name:"end_time"`
	Use_processed_timestamp *bool  `name:"use_processed_timestamp"`
	Page_token              string `name:"page_token"`
	Page_size               *int   `name:"page_size"`
}

type GetAuditLogsResponse

type GetAuditLogsResponse struct {
	Audit_logs []struct {
		Details             any               `json:"details"`
		Devices             []AuditLogsDevice `json:"devices"`
		Event_description   string            `json:"event_description"`
		Event_name          string            `json:"event_name"`
		Ip_address          string            `json:"ip_address"`
		Organization_id     string            `json:"organization_id"`
		Processed_timestamp string            `json:"processed_timestamp"`
		Timestamp           string            `json:"timestamp"`
		User_email          string            `json:"user_email"`
		User_id             string            `json:"user_id"`
		User_name           string            `json:"user_name"`
		Verkada_support_id  string            `json:"verkada_support_id"`
	} `json:"audit_logs"`
	Next_page_token string `json:"next_page_token"`
}

type GetCBSettingsOptions

type GetCBSettingsOptions struct {
	// contains filtered or unexported fields
}

type GetCBSettingsResponse

type GetCBSettingsResponse struct {
	Camera_id               string `json:"camera_id"`
	Days_to_preserve        string `json:"days_to_preserve"`
	Enabled                 int    `json:"enabled"`
	Last_updated_segment_hq string `json:"last_updated_segment_hq"`
	Last_updated_segment_sq string `json:"last_updated_segment_sq"`
	Time_to_preserve        string `json:"time_to_preserve"`
	Upload_timeslot         string `json:"upload_timeslot"`
	Video_quality           string `json:"video_quality"`
	Video_to_upload         string `json:"video_to_upload"`
}

type GetCameraAudioStatusOptions

type GetCameraAudioStatusOptions struct {
	// contains filtered or unexported fields
}

type GetCameraAudioStatusResponse

type GetCameraAudioStatusResponse struct {
	Camera_id string `json:"camera_id"`
	Enabled   bool   `json:"enabled"`
}

type GetCameraDevicesOptions

type GetCameraDevicesOptions struct {
	Page_token string `name:"page_token"`
	Page_size  *int   `name:"page_size"`
}

type GetCameraDevicesResponse

type GetCameraDevicesResponse struct {
	Cameras []struct {
		Camera_id                string  `json:"camera_id"`
		Cloud_retention          int     `json:"cloud_retention"`
		Date_added               int     `json:"date_added"`
		Device_retention         int     `json:"device_retention"`
		Firmware                 string  `json:"firmware"`
		Firmware_update_schedule string  `json:"firmware_update_schedule"`
		Last_online              int     `json:"last_online"`
		Local_ip                 string  `json:"local_ip"`
		Location                 string  `json:"location"`
		Location_angle           float64 `json:"location_angle"`
		Location_lat             float64 `json:"location_lat"`
		Location_lon             float64 `json:"location_lon"`
		Mac                      string  `json:"mac"`
		Model                    string  `json:"model"`
		Name                     string  `json:"name"`
		People_history_enabled   bool    `json:"people_history_enabled"`
		Serial                   string  `json:"serial"`
		Site                     string  `json:"site"`
		Site_id                  string  `json:"site_id"`
		Status                   string  `json:"status"`
		Timezone                 string  `json:"timezone"`
		Vehicle_history_enabled  bool    `json:"vehicle_history_enabled"`
	} `json:"cameras"`
	Next_page_token string `json:"next_page_token"`
}

type GetDashboardOTDataOptions

type GetDashboardOTDataOptions struct {
	Start_time *int   `name:"start_time"`
	End_time   *int   `name:"end_time"`
	Interval   string `name:"interval"`
	// contains filtered or unexported fields
}

type GetDashboardOTDataResponse

type GetDashboardOTDataResponse struct {
	Dashboard_id   string  `json:"dashboard_id"`
	Dashboard_name string  `json:"dashboard_name"`
	End_time       int     `json:"end_time"`
	Occupancy      [][]int `json:"occupancy"`
	Org_id         string  `json:"org_id"`
	Org_name       string  `json:"org_name"`
	Start_time     int     `json:"start_time"`
	Trend_in       [][]int `json:"trend_in"`
	Trend_out      [][]int `json:"trend_out"`
}

type GetDashboardWidgetTrendDataOptions

type GetDashboardWidgetTrendDataOptions struct {
	End_time     string   `json:"end_time,omitempty"`
	Interval     string   `json:"interval,omitempty"`
	Site_ids     []string `json:"site_ids,omitempty"`
	Start_time   string   `json:"start_time,omitempty"`
	Widget_ids   []string `json:"widget_ids,omitempty"`
	Widget_types []string `json:"widget_types,omitempty"`
}

type GetDashboardWidgetTrendDataResponse

type GetDashboardWidgetTrendDataResponse struct {
	Dashboard_id   string `json:"dashboard_id"`
	Dashboard_name string `json:"dashboard_name"`
	End_time       string `json:"end_time"`
	Interval       string `json:"interval"`
	Start_time     string `json:"start_time"`
	Widgets        []struct {
		ConversionData struct {
			Conversion_rates              map[string]float64 `json:"conversion_rates"`
			Helix_cameras_used            []string           `json:"helix_cameras_used"`
			Helix_counts                  map[string]float64 `json:"helix_counts"`
			Occupancy_camera_presets_used []CameraPreset     `json:"occupancy_camera_presets_used"`
			Occupancy_in                  map[string]float64 `json:"occupancy_in"`
		} `json:"conversion_data"`
		HelixData struct {
			Cameras_used []string `json:"cameras_used"`
			Helix_stats  any      `json:"helix_stats"`
		} `json:"helix_data"`
		OccupancyData struct {
			Camera_presets_used []CameraPreset     `json:"camera_presets_used"`
			In_counts           map[string]float64 `json:"in_counts"`
			Net_occupancy       map[string]float64 `json:"net_occupancy"`
			Out_counts          map[string]float64 `json:"out_counts"`
		} `json:"occupancy_data"`
		QueueData struct {
			Avg_queue_length    map[string]float64 `json:"avg_queue_length"`
			Avg_wait_time       map[string]float64 `json:"avg_wait_time"`
			Camera_presets_used []CameraPreset     `json:"camera_presets_used"`
			Max_queue_length    map[string]float64 `json:"max_queue_length"`
			Max_wait_time       map[string]float64 `json:"max_wait_time"`
		} `json:"queue_data"`
		Widget_id   string `json:"widget_id"`
		Widget_name string `json:"widget_name"`
		Widget_type string `json:"widget_type"`
	} `json:"widgets"`
}

type GetDoorsOptions

type GetDoorsOptions struct {
	Door_ids []string `name:"door_ids"`
	Site_ids []string `name:"site_ids"`
}

type GetDoorsResponse

type GetDoorsResponse struct {
	Doors []Door `json:"doors"`
}

type GetFootageOptions

type GetFootageOptions struct {
	Start_time *int   `name:"start_time"`
	End_time   *int   `name:"end_time"`
	Resolution string `name:"resolution"`
	// contains filtered or unexported fields
}

type GetGuestSitesResponse

type GetGuestSitesResponse struct {
	Guest_sites []struct {
		Org_id    string `json:"org_id"`
		Site_id   string `json:"site_id"`
		Site_name string `json:"site_name"`
	} `json:"guest_sites"`
}

type GetGuestTypesOptions

type GetGuestTypesOptions struct {
	Cursor string `name:"cursor"`
	Limit  *int   `name:"limit"`
	// contains filtered or unexported fields
}

type GetGuestTypesResponse

type GetGuestTypesResponse struct {
	Cursor string `json:"cursor"`
	Items  []struct {
		Enabled_for_invites bool   `json:"enabled_for_invites"`
		Guest_type_id       string `json:"guest_type_id"`
		Name                string `json:"name"`
	} `json:"items"`
}

type GetGuestVisitsOptions

type GetGuestVisitsOptions struct {
	Page_token string `name:"page_token"`
	Page_size  *int   `name:"page_size"`
	// contains filtered or unexported fields
}

type GetGuestVisitsResponse

type GetGuestVisitsResponse struct {
	Visits []struct {
		Approval_status        string              `json:"approval_status"`
		Check_in_time          int                 `json:"check_in_time"`
		Deleted                bool                `json:"deleted"`
		Device_name            string              `json:"device_name"`
		Guest                  guestInfo           `json:"guest"`
		Host                   hostInfo            `json:"host"`
		Host_approval_status   string              `json:"host_approval_status"`
		Hosts                  []hostInfo          `json:"hosts"`
		Is_contactless         bool                `json:"is_contactless"`
		Next_page_token        string              `json:"next_page_token"`
		Open_ended_responses   []openEndedResponse `json:"open_ended_responses"`
		Questionnaires         []questionnaire     `json:"questionnaires"`
		Security_screen_status string              `json:"security_screen_status"`
		Sign_out_time          int                 `json:"sign_out_time"`
		Signatures             []signature         `json:"signatures"`
		Site_id                string              `json:"site_id"`
		Visit_id               string              `json:"visit_id"`
		Visit_type             string              `json:"visit_type"`
	} `json:"visits"`
}

type GetHelixEventOptions

type GetHelixEventOptions struct {
	// contains filtered or unexported fields
}

type GetHelixEventResponse

type GetHelixEventResponse struct {
	Attributes     any    `json:"attributes"`
	Camera_id      string `json:"camera_id"`
	Event_type_uid string `json:"event_type_uid"`
	Flagged        bool   `json:"flagged"`
	Org_id         string `json:"org_id"`
	Time_ms        int    `json:"time_ms"`
}

type GetHelixEventTypesOptions

type GetHelixEventTypesOptions struct {
	Event_type_uid string `name:"event_type_uid"`
	Name           string `name:"name"`
}

type GetHelixEventTypesResponse

type GetHelixEventTypesResponse struct {
	Event_types []struct {
		Event_schema   any    `json:"event_schema"`
		Event_type_uid string `json:"event_type_uid"`
		Name           string `json:"name"`
		Org_id         string `json:"org_id"`
	} `json:"event_types"`
}

type GetHostsOptions

type GetHostsOptions struct {
	Email  string `name:"email"`
	Cursor string `name:"cursor"`
	Limit  *int   `name:"limit"`
	// contains filtered or unexported fields
}

type GetHostsResponse

type GetHostsResponse struct {
	Cursor string `json:"cursor"`
	Items  []struct {
		Email                  string `json:"email"`
		First_name             string `json:"first_name"`
		Full_name              string `json:"full_name"`
		Has_delegate           bool   `json:"has_delegate"`
		Host_id                string `json:"host_id"`
		Last_name              string `json:"last_name"`
		Original_first_name    string `json:"original_first_name"`
		Phone_number           string `json:"phone_number"`
		Requires_host_approval bool   `json:"requires_host_approval"`
	}
}

type GetLatestThumbnailImageOptions

type GetLatestThumbnailImageOptions struct {
	Resolution string `name:"resolution"`
	// contains filtered or unexported fields
}

type GetLicensePlateTSOptions

type GetLicensePlateTSOptions struct {
	Start_time *int `name:"start_time"`
	End_time   *int `name:"end_time"`
	Page_token *int `name:"page_token"`
	Page_size  *int `name:"page_size"`
	// contains filtered or unexported fields
}

type GetLicensePlateTSResponse

type GetLicensePlateTSResponse struct {
	Camera_id       string `json:"camera_id"`
	Detections      []int  `json:"detections"`
	License_plate   string `json:"license_plate"`
	Next_page_token int    `json:"next_page_token"`
}

type GetLinkToFootageOptions

type GetLinkToFootageOptions struct {
	Timestamp string `name:"timestamp"`
	// contains filtered or unexported fields
}

type GetLinkToFootageResponse

type GetLinkToFootageResponse struct {
	Url string `json:"url"`
}

type GetMaxCountsOptions

type GetMaxCountsOptions struct {
	Start_time   *int `name:"start_time"`
	End_time     *int `name:"end_time"`
	Search_zones [][]int64
	// contains filtered or unexported fields
}

type GetMaxCountsResponse

type GetMaxCountsResponse struct {
	People_count  int `json:"people_count"`
	Vehicle_count int `json:"vehicle_count"`
}

type GetOTCamerasResponse

type GetOTCamerasResponse struct {
	Cameras []struct {
		Camera_id  string   `json:"camera_id"`
		Preset_ids []string `json:"preset_ids"`
		Presets    []struct {
			Object_class string `json:"object_class"`
			Preset_id    string `json:"preset_id"`
		} `json:"presets"`
	} `json:"cameras"`
}

type GetOTDataOptions

type GetOTDataOptions struct {
	Start_time *int   `name:"start_time"`
	End_time   *int   `name:"end_time"`
	Interval   string `name:"interval"`
	// contains filtered or unexported fields
}

type GetOTDataResponse

type GetOTDataResponse struct {
	Camera_address string  `json:"camera_address"`
	Camera_id      string  `json:"camera_id"`
	Camera_name    string  `json:"camera_name"`
	Camera_site    string  `json:"camera_site"`
	End_time       int     `json:"end_time"`
	Org_id         string  `json:"org_id"`
	Org_name       string  `json:"org_name"`
	Preset_id      string  `json:"preset_id"`
	Start_time     int     `json:"start_time"`
	Trend_in       [][]int `json:"trend_in"`
	Trend_out      [][]int `json:"trend_out"`
	Type           string  `json:"type"`
}

type GetObjectCountsOptions

type GetObjectCountsOptions struct {
	Start_time *int   `name:"start_time"`
	End_time   *int   `name:"end_time"`
	Page_token string `name:"page_token"`
	Page_size  *int   `name:"page_size"`
	// contains filtered or unexported fields
}

type GetObjectCountsResponse

type GetObjectCountsResponse struct {
	Next_page_token string `json:"next_page_token"`
	Object_counts   []struct {
		Detected_time int `json:"detected_time"`
		People_count  int `json:"people_count"`
		Vehicle_count int `json:"vehicle_count"`
	} `json:"object_counts"`
}

type GetProfilePhotoOptions

type GetProfilePhotoOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Original    *bool  `name:"original"`
}

type GetSeenPlatesOptions

type GetSeenPlatesOptions struct {
	License_plate string `name:"license_plate"`
	Start_time    *int   `name:"start_time"`
	End_time      *int   `name:"end_time"`
	Page_token    *int   `name:"page_token"`
	Page_size     *int   `name:"page_size"`
	// contains filtered or unexported fields
}

type GetSeenPlatesResponse

type GetSeenPlatesResponse struct {
	Camera_id  string `json:"camera_id"`
	Detections []struct {
		Image_url         string `json:"image_url"`
		License_plate     string `json:"license_plate"`
		Timestamp         int    `json:"timestamp"`
		Vehicle_image_url string `json:"vehicle_image_url"`
	} `json:"detections"`
	Next_page_token int `json:"next_page_token"`
}

type GetSensorAlertsOptions

type GetSensorAlertsOptions struct {
	Start_time *int     `name:"start_time"`
	End_time   *int     `name:"end_time"`
	Page_size  *int     `name:"page_size"`
	Page_token string   `name:"page_token"`
	Fields     []string `name:"fields"`
	// contains filtered or unexported fields
}

type GetSensorAlertsResponse

type GetSensorAlertsResponse struct {
	Alert_events []struct {
		Alert_event_id     string `json:"alert_event_id"`
		Device_id          string `json:"device_id"`
		Device_name        string `json:"device_name"`
		Device_serial      string `json:"device_serial"`
		End_time           int    `json:"end_time"`
		Is_above_max_event bool   `json:"is_above_max_event"`
		Most_extreme_value int    `json:"most_extreme_value"`
		Reading            string `json:"reading"`
		Start_time         int    `json:"start_time"`
		Threshold          int    `json:"threshold"`
	} `json:"alert_events"`
	Next_page_token string `json:"next_page_token"`
}

type GetSensorDataOptions

type GetSensorDataOptions struct {
	Start_time *int     `name:"start_time"`
	End_time   *int     `name:"end_time"`
	Page_token string   `name:"page_token"`
	Page_size  *int     `name:"page_size"`
	Fields     []string `name:"fields"`
	Interval   string   `name:"interval"`
	// contains filtered or unexported fields
}

type GetSensorDataResponse

type GetSensorDataResponse struct {
	Data []struct {
		Heat_index              float64 `json:"heat_index"`
		Humidity                float64 `json:"humidity"`
		Motion                  int     `json:"motion"`
		Noise_level             float64 `json:"noise_level"`
		Pm_1_0_0                float64 `json:"pm_1_0_0"`
		Pm_2_5                  float64 `json:"pm_2_5"`
		Pm_4_0                  float64 `json:"pm_4_0"`
		Tamper                  int     `json:"tamper"`
		Temperature             float64 `json:"temperature"`
		Time                    int     `json:"time"`
		Tvoc                    int     `json:"tvoc"`
		Usa_air_quality_index   int     `json:"usa_air_quality_index"`
		Vape_index              int     `json:"vape_index"`
		Vape_index_experimental int     `json:"vape_index_experimental"`
	} `json:"data"`
	Device_id       string `json:"device_id"`
	Device_name     string `json:"device_name"`
	Device_serial   string `json:"device_serial"`
	Interval        string `json:"interval"`
	Next_page_token string `json:"next_page_token"`
}

type GetStreamingTokenResponse

type GetStreamingTokenResponse struct {
	AccessibleCameras []string `json:"accessibleCameras"`
	AccessibleSites   []string `json:"accessibleSites"`
	Expiration        int      `json:"expiration"`
	ExpiresAt         int      `json:"expiresAt"`
	Jwt               string   `json:"jwt"`
	Permission        []string `json:"permission"`
}

type GetThumbnailImageOptions

type GetThumbnailImageOptions struct {
	Timestamp  string `name:"timestamp"`
	Resolution string `name:"resolution"`
	// contains filtered or unexported fields
}

type GetThumbnailLinkOptions

type GetThumbnailLinkOptions struct {
	Timestamp *int `name:"timestamp"`
	Expiry    *int `name:"expiry"`
	// contains filtered or unexported fields
}

type GetThumbnailLinkResponse

type GetThumbnailLinkResponse struct {
	Expiry    int    `json:"expiry"`
	Timestamp int    `json:"timestamp"`
	Url       string `json:"url"`
}

type GetUserOptions

type GetUserOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type GetUserResponse

type GetUserResponse struct {
	Active         *bool  `json:"active"`
	Company_name   string `json:"company_name"`
	Department     string `json:"department"`
	Department_id  string `json:"department_id"`
	Email          string `json:"email"`
	Employee_id    string `json:"employee_id"`
	Employee_title string `json:"employee_title"`
	Employee_type  string `json:"employee_type"`
	External_id    string `json:"external_id"`
	First_name     string `json:"first_name"`
	Last_name      string `json:"last_name"`
	Middle_name    string `json:"middle_name"`
	Phone          string `json:"phone"`
	User_id        string `json:"user_id"`
}

type GetVXDevicesResponse

type GetVXDevicesResponse struct {
	Devices []struct {
		App_version           string `json:"app_version"`
		Claimed_serial_number string `json:"claimed_serial_number"`
		Device_id             string `json:"device_id"`
		Ip_address            string `json:"ip_address"`
		Last_seen_at          string `json:"last_seen_at"`
		Last_status           string `json:"last_status"`
		Location              string `json:"location"`
		Location_lat          int    `json:"location_lat"`
		Location_lon          int    `json:"location_lon"`
		Name                  string `json:"name"`
		Site_id               string `json:"site_id"`
		Timezone              string `json:"timezone"`
	} `json:"devices"`
}

type GuestClient

type GuestClient struct {
	// contains filtered or unexported fields
}

func (*GuestClient) DeleteDenyList

func (c *GuestClient) DeleteDenyList(site_id string) (*DeleteDenyListResponse, error)

Deletes all deny list entries, including the CSV, POI entries, and photos from the specified site.

Verkada API Docs - Delete a Guest Deny List

func (*GuestClient) GetGuestSites

func (c *GuestClient) GetGuestSites() (*GetGuestSitesResponse, error)

Returns a list of Guest sites in an organization.

Verkada API Docs - Get Guest Sites

func (*GuestClient) GetGuestTypes

func (c *GuestClient) GetGuestTypes(site_id string, options *GetGuestTypesOptions) (*GetGuestTypesResponse, error)

Returns a list of Guest types applied to a site.

Verkada API Docs - Get Guest Types

func (*GuestClient) GetGuestVisits

func (c *GuestClient) GetGuestVisits(site_id string, start_time *int, end_time *int, options *GetGuestVisitsOptions) (*GetGuestVisitsResponse, error)

Returns a list of visits in a site. Maximum timeframe is one day (86,400 second difference between start_time and end_time).

Verkada API Docs - Get Guest Visits

func (*GuestClient) GetHosts

func (c *GuestClient) GetHosts(site_id string, options *GetHostsOptions) (*GetHostsResponse, error)

Returns a list of hosts in a site.

Verkada API Docs - Get Hosts

func (*GuestClient) PostDenyList

func (c *GuestClient) PostDenyList(site_id string, uploadFilename string) (*PostDenyListResponse, error)

Uploads a deny list in csv format to the specified site. Will overwrite any existing site deny list.

Verkada API Docs - Post Guest Deny List

type HelixAttributeObject

type HelixAttributeObject struct {
	Key   string
	Value any
}

type HelixClient

type HelixClient struct {
	// contains filtered or unexported fields
}

func (*HelixClient) CreateHelixEvent

func (c *HelixClient) CreateHelixEvent(camera_id string, time_ms int64, event_type_uid string, body *CreateHelixEventBody) (*CreateHelixEventResponse, error)

This method can be used to generate a Helix Event in Command. Users will be able to specify the attribute values for each attribute key that was previously defined in the Event Type creation process. To successfully create a Helix Event, users will need to input the associated Camera ID, Event Type UID, and the exact event epoch timestamp in milliseconds.

Users are not required to provide an attribute value for all of the attribute keys tied to that specific Event Type. If an attribute value is not available or does not exist, users can simply disregard the attribute altogether when making the POST request.

Verkada API Docs - Create a Helix Event

func (*HelixClient) CreateHelixEventType

func (c *HelixClient) CreateHelixEventType(event_schema map[string]string, name string) (*CreateHelixEventTypeResponse, error)

This method can be used to generate an Event Type by defining the Event Type schema. The event_schema is a map with strings for both keys and values.

Each key will be the field name for a Helix event type attributes. The corresponding value must be a string representing the desired data type for that field: "string", "integer", "float", or "boolean"

Verkada API Docs - Create a Helix Event Type

func (*HelixClient) DeleteHelixEvent

func (c *HelixClient) DeleteHelixEvent(camera_id string, time_ms int64, event_type_uid string) (*DeleteHelixEventResponse, error)

This method can be used to delete a Helix event from Command. The required parameters to successfully delete a Helix event are the associated Camera ID, Event Type UID, and the exact event epoch time in milliseconds.

Verkada API Docs - Delete a Helix Event

func (*HelixClient) DeleteHelixEventType

func (c *HelixClient) DeleteHelixEventType(event_type_uid string) (*DeleteHelixEventTypeResponse, error)

This method can be used to delete an Event Type from Command. The required parameter to successfully delete an Event Type is the Event Type UID.

Note: Once you have deleted an Event Type UID, you will no longer be able to use that specific Event Type UID to create any future Helix Events. Additionally, all Helix Events linked to this Event Type UID will be deleted from Command.

Verkada API Docs - Delete a Helix Event Type

func (*HelixClient) GetHelixEvent

func (c *HelixClient) GetHelixEvent(camera_id string, time_ms int64, event_type_uid string) (*GetHelixEventResponse, error)

This method can be used to retrieve a Helix Event that has already been posted to Command. In the return message, the users will be able to see the corresponding attribute values for that unique event. To successfully retrieve a Helix Event, users will need to input the associated Camera ID, Event Type UID, and the exact event epoch time in milliseconds.

Verkada API Docs - Get a Helix Event

func (*HelixClient) GetHelixEventTypes

func (c *HelixClient) GetHelixEventTypes(options *GetHelixEventTypesOptions) (*GetHelixEventTypesResponse, error)

This method can be used to retrieve a complete list of all Event Types from a specific Command organization, along with its associated names and schemas. Users can specify either an Event Type UID or an Event Type name to only retrieve the information tied to that specific Event Type.

Verkada API Docs - Get List of Helix Event Types

func (*HelixClient) SearchHelixEvent

func (c *HelixClient) SearchHelixEvent(body *SearchHelixEventBody) (*SearchHelixEventResponse, error)

This method can be used to search for either a single or multiple Helix Events that have already been posted to Command. In the return message, the users will be able to see the corresponding attribute keys and attribute values for those specific Helix Events.

The only required parameters to search for Helix Events is a Verkada API Token with Helix permissions. Users will be returned a complete list of all Helix Events that are currently available in Command. Users can further narrow down their search by adding:

  • Camera ID: returns all Helix Events linked to that specific camera or list of cameras.
  • Event Type UID: returns all Helix Events that share that specific Event Type UID.
  • Start and End Times: returns all Helix Events that have occurred during that time range.
  • Attributes Keys and Values: returns all Helix Events that have attributes keys and values matching the user's entered parameters.

Verkada API Docs - Search a Helix Event

func (*HelixClient) UpdateHelixEvent

func (c *HelixClient) UpdateHelixEvent(camera_id string, time_ms int64, event_type_uid string, body *UpdateHelixEventBody) (*UpdateHelixEventResponse, error)

This method can be used to update a Helix Event that has already been posted to Command. This is especially useful if a user needs to add an additional attribute key to the existing event, along with its new corresponding value. To successfully update a Helix Event, users will need to input the associated Camera ID, Event Type UID, exact event epoch time in milliseconds, as well as the new attribute key and attribute value that is being updated.

Verkada API Docs - Update a Helix Event

func (*HelixClient) UpdateHelixEventType

func (c *HelixClient) UpdateHelixEventType(event_type_uid string, event_schema map[string]string, name string) (*UpdateHelixEventTypeResponse, error)

This method can be used to update an Event Type. This is especially useful if a user needs to add an additional attribute key to the existing Event Type or change the name of the Event Type. To successfully update an Event Type, users will need to input the Event Type UID as well as the new attribute keys or Event Type name that is being updated.

If either event_schema or name are left empty, that aspect will not be affected. Importantly, if event_schema is not empty, only the included keys and data types will be in the updated Helix Event Type.

The event_schema is a map with strings for both keys and values.

Each key will be the field name for a Helix event type attributes. The corresponding value must be a string representing the desired data type for that field: "string", "integer", "float", or "boolean"

Verkada API Docs - Update a Helix Event Type

type LicensePlate

type LicensePlate struct {
	Active               bool   `json:"active"`
	License_plate_number string `json:"license_plate_number"`
	Name                 string `json:"name"`
}

type Lockdown

type Lockdown struct {
	Enabled     bool   `json:"enabled"`
	Lockdown_id string `json:"lockdownId"`
	Message     string `json:"message"`
	Name        string `json:"name"`
}

type LockdownInfo

type LockdownInfo struct {
	Action   string   `json:"action"`
	Lockdown Lockdown `json:"lockdown"`
}

type POIProfile

type POIProfile struct {
	Created   int    `json:"created"`
	Label     string `json:"label"`
	Last_seen int    `json:"last_seen"`
	Person_id string `json:"person_id"`
}

type PostDenyListBody

type PostDenyListBody struct {
	Base64_ascii_deny_list_csv string `json:"base64_ascii_deny_list_csv"`
}

type PostDenyListOptions

type PostDenyListOptions struct {
	// contains filtered or unexported fields
}

type PostDenyListResponse

type PostDenyListResponse struct {
	Base64_ascii_error_csv string `json:"base64_ascii_error_csv"`
	Org_id                 string `json:"org_id"`
	Site_id                string `json:"site_id"`
}

type RecurrenceRule

type RecurrenceRule struct {
	By_day         []string `json:"by_day"`
	By_month       int      `json:"by_month"`
	By_month_day   int      `json:"by_month_day"`
	By_set_pos     int      `json:"by_set_pos"`
	Count          int      `json:"count"`
	Excluded_Dates []string `json:"excluded_dates"`
	Frequency      string   `json:"frequency"`
	Interval       *int     `json:"interval"`
	Until          string   `json:"until"`
}

type RemoveUserEntryCodeOptions

type RemoveUserEntryCodeOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type RemoveUserEntryCodeResponse

type RemoveUserEntryCodeResponse struct {
}

type RemoveUserFromAccessGroupOptions

type RemoveUserFromAccessGroupOptions struct {
	External_id string `name:"external_id"`
	User_id     string `name:"user_id"`
	// contains filtered or unexported fields
}

type RemoveUserFromAccessGroupResponse

type RemoveUserFromAccessGroupResponse struct {
}

type SearchHelixEventBody

type SearchHelixEventBody struct {
	Attribute_filters []struct {
		Attribute_key   string `json:"attribute_key"`
		Attribute_value string `json:"attribute_value"`
		Op              string `json:"op"`
	} `json:"attribute_filters,omitempty"`
	Camera_ids     []string `json:"camera_ids,omitempty"`
	End_time_ms    int64    `json:"end_time_ms,omitempty"`
	Event_type_uid string   `json:"event_type_uid,omitempty"`
	Flagged        bool     `json:"flagged,omitempty"`
	Keywords       []string `json:"keywords,omitempty"`
	Start_time_ms  int64    `json:"start_time_ms,omitempty"`
}

type SearchHelixEventResponse

type SearchHelixEventResponse struct {
	Attributes     any    `json:"attributes"`
	Camera_id      string `json:"camera_id"`
	Event_type_uid string `json:"event_type_uid"`
	Flagged        bool   `json:"flagged"`
	Org_id         string `json:"org_id"`
	Time_ms        int    `json:"time_ms"`
}

type SendPassInviteOptions

type SendPassInviteOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type SensorClient

type SensorClient struct {
	// contains filtered or unexported fields
}

func (*SensorClient) GetSensorAlerts

func (c *SensorClient) GetSensorAlerts(device_ids []string, options *GetSensorAlertsOptions) (*GetSensorAlertsResponse, error)

Returns all alerts for all (or subset of) sensors in an org over a specified time range.

Verkada API Docs - Get Sensor Alerts

func (*SensorClient) GetSensorData

func (c *SensorClient) GetSensorData(device_id string, options *GetSensorDataOptions) (*GetSensorDataResponse, error)

Returns all sensor readings for a particular sensor over a specified time range.

Verkada API Docs - Get Sensor Data

type SetMQTTConfigBody

type SetMQTTConfigBody struct {
	Client_password string
	Client_username string
}

type SetMQTTConfigResponse

type SetMQTTConfigResponse struct {
	Broker_cert      string `json:"broker_cert"`
	Broker_host_port string `json:"broker_host_port"`
	Camera_id        string `json:"camera_id"`
	Client_password  string `json:"client_password"`
	Client_username  string `json:"client_username"`
}

type SetStartDateOptions

type SetStartDateOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type SetUserEndDateOptions

type SetUserEndDateOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
}

type SetUserEntryCodeOptions

type SetUserEntryCodeOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Email       string `name:"email"`
	Employee_id string `name:"employee_id"`
	Override    *bool  `name:"override"`
}

type Site

type Site struct {
	Name    string `json:"name"`
	Site_id string `json:"site_id"`
}

type StreamFootageResponse

type StreamFootageResponse struct {
	Streaming_link string `json:"streaming_link"`
}

type UpdateCBSettingsResponse

type UpdateCBSettingsResponse struct {
}

type UpdateCameraAudioResponse

type UpdateCameraAudioResponse struct {
}

type UpdateDoorExceptionCalendarBody

type UpdateDoorExceptionCalendarBody struct {
	Doors      []string
	Exceptions []DoorException
}

type UpdateHelixEventBody

type UpdateHelixEventBody struct {
	Attributes []HelixAttributeObject
	Flagged    bool `json:"flagged"`
}

type UpdateHelixEventOptions

type UpdateHelixEventOptions struct {
	// contains filtered or unexported fields
}

type UpdateHelixEventResponse

type UpdateHelixEventResponse struct {
}

type UpdateHelixEventTypeOptions

type UpdateHelixEventTypeOptions struct {
	// contains filtered or unexported fields
}

type UpdateHelixEventTypeResponse

type UpdateHelixEventTypeResponse struct {
}

type UpdateLPOIOptions

type UpdateLPOIOptions struct {
	// contains filtered or unexported fields
}

type UpdateLPOIResponse

type UpdateLPOIResponse struct {
	Creation_time int    `json:"creation_time"`
	Description   string `json:"description"`
	License_plate string `json:"license_plate"`
}

type UpdatePOIOptions

type UpdatePOIOptions struct {
	// contains filtered or unexported fields
}

type UpdateUserBody

type UpdateUserBody struct {
	Company_name   string `json:"company_name,omitempty"`
	Department     string `json:"department,omitempty"`
	Department_id  string `json:"department_id,omitempty"`
	Email          string `json:"email,omitempty"`
	Employee_id    string `json:"employee_id,omitempty"`
	Employee_title string `json:"employee_title,omitempty"`
	Employee_type  string `json:"employee_type,omitempty"`
	External_id    string `json:"external_id,omitempty"`
	First_name     string `json:"first_name,omitempty"`
	Last_name      string `json:"last_name,omitempty"`
	Middle_name    string `json:"middle_name,omitempty"`
	Phone          string `json:"phone,omitempty"`
}

type UpdateUserOptions

type UpdateUserOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type UpdateUserResponse

type UpdateUserResponse struct {
	Active         *bool  `json:"active"`
	Company_name   string `json:"company_name"`
	Department     string `json:"department"`
	Department_id  string `json:"department_id"`
	Email          string `json:"email"`
	Employee_id    string `json:"employee_id"`
	Employee_title string `json:"employee_title"`
	Employee_type  string `json:"employee_type"`
	External_id    string `json:"external_id"`
	First_name     string `json:"first_name"`
	Last_name      string `json:"last_name"`
	Middle_name    string `json:"middle_name"`
	Phone          string `json:"phone"`
	User_id        string `json:"user_id"`
}

type UploadProfilePhotoOptions

type UploadProfilePhotoOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
	Overwrite   *bool  `name:"overwrite"`
}

type UserInfo

type UserInfo struct {
	Email           string `json:"email"`
	First_name      string `json:"firstName"`
	Last_name       string `json:"lastName"`
	Name            string `json:"name"`
	Organization_id string `json:"organizationId"`
	Phone           string `json:"phone"`
	User_id         string `json:"userId"`
}

type UserUnlockDoorOptions

type UserUnlockDoorOptions struct {
	User_id     string `name:"user_id"`
	External_id string `name:"external_id"`
}

type UserUnlockDoorResponse

type UserUnlockDoorResponse struct {
	Door_id         string `json:"door_id"`
	Unlock_duration int    `json:"unlock_duration"`
}

type VXClient

type VXClient struct {
	// contains filtered or unexported fields
}

func (*VXClient) GetVXDevices

func (c *VXClient) GetVXDevices() (*GetVXDevicesResponse, error)

Gets information about the all the Viewing Stations in an organization.

Verkada API Docs - Get Viewing Station Devices

Directories

Path Synopsis
This package is used internally for auth-related requests.
This package is used internally for auth-related requests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL