Documentation ¶
Index ¶
- type AccessToken
- type Activity
- type ActivityStream
- type Booking
- type Bookings
- type Description
- type DisplayGuide
- type Error
- type Interval
- type Intervals
- type Manifest
- type ManifestStream
- type Policies
- type PoliciesDescribed
- type Policy
- type PolicyDescribed
- type PolicyStatus
- type Resource
- type Slot
- type SlotStatus
- type StoreStatusAdmin
- type StoreStatusUser
- type UI
- type UIDescribed
- type UISet
- type User
- type UserName
- type Users
- type Window
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessToken ¶
type AccessToken struct { // Audience // Required: true Aud *string `json:"aud"` // Expires At // Required: true Exp *float64 `json:"exp"` // Issued At Iat float64 `json:"iat,omitempty"` // Not before // Required: true Nbf *float64 `json:"nbf"` // List of scopes // Required: true Scopes []string `json:"scopes"` // Subject // Required: true Sub *string `json:"sub"` // token // Required: true Token *string `json:"token"` }
AccessToken access token
intended use is for users to access the API, and is tied to their user_name.
swagger:model AccessToken
func (*AccessToken) ContextValidate ¶
ContextValidate validates this access token based on context it is used
func (*AccessToken) MarshalBinary ¶
func (m *AccessToken) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*AccessToken) UnmarshalBinary ¶
func (m *AccessToken) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Activity ¶
type Activity struct { // URL at which to GET the configuration object // Example: https://assets.practable.io/config/experiments/pvna/pvna01-0.0.json Config string `json:"config,omitempty"` // description // Required: true Description *Description `json:"description"` // Expires At // Required: true Exp *float64 `json:"exp"` // Expires At // Required: true Nbf *float64 `json:"nbf"` // A list of streams // Required: true Streams []*ActivityStream `json:"streams"` // User interfaces // Required: true Uis []*UIDescribed `json:"uis"` }
Activity activity
An activity represents connection details to instances of pre-agreed resource types such as video, data streams and user interfaces.
swagger:model Activity
func (*Activity) ContextValidate ¶
ContextValidate validate this activity based on the context it is used
func (*Activity) MarshalBinary ¶
MarshalBinary interface implementation
func (*Activity) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type ActivityStream ¶
type ActivityStream struct { // audience // Required: true Audience *string `json:"audience"` // connection type // Required: true ConnectionType *string `json:"connection_type"` // Describes the stream, and doubles as template key in the URL // Example: video // Required: true For *string `json:"for"` // prefix of the relay routing // Example: session Prefix string `json:"prefix,omitempty"` // scopes // Required: true Scopes []string `json:"scopes"` // signed jwt token for accessing the stream Token string `json:"token,omitempty"` // topic // Required: true Topic *string `json:"topic"` // URL at which to obtain access to the stream (getting a redirect URL containing a one time code) // Example: https://relay-access.practable.io/session/abc123 // Required: true URL *string `json:"url"` }
ActivityStream stream
Represents an assigned, valid booking slot for an individual piece of equipment Example: {"for":"video","token":"ey....","url":"https://relay-access.practable.io/session/abc123"}
swagger:model ActivityStream
func (*ActivityStream) ContextValidate ¶
ContextValidate validates this activity stream based on context it is used
func (*ActivityStream) MarshalBinary ¶
func (m *ActivityStream) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*ActivityStream) UnmarshalBinary ¶
func (m *ActivityStream) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Booking ¶
type Booking struct { // Has the booking been cancelled? Cancelled bool `json:"cancelled,omitempty"` // time the booking was cancelled // Format: date-time CancelledAt strfmt.DateTime `json:"cancelled_at,omitempty"` // who cancelled the booking, e.g. auto-grace-expired, admin or user // Example: auto-grace-expired CancelledBy string `json:"cancelled_by,omitempty"` // unique name of the booking // Required: true Name *string `json:"name"` // policy under which the booking was made // Required: true Policy *string `json:"policy"` // name of the slot that has been booked // Required: true Slot *string `json:"slot"` // has the booking been started by the user? Started bool `json:"started,omitempty"` // time the booking was first started by the user // Format: date-time StartedAt strfmt.DateTime `json:"started_at,omitempty"` // was the resource unavailable Unfulfilled bool `json:"unfulfilled,omitempty"` // how much usage was actually charged for this booking UsageCharged string `json:"usage_charged,omitempty"` // name of the user who made the booking // Required: true User *string `json:"user"` // when // Required: true When *Interval `json:"when"` }
Booking booking
A booking represents a promise to supply an activity. The booleans are not required because we don't process the booking status when loading old bookings (all old bookings are assumed to have been good bookings)
swagger:model Booking
func (*Booking) ContextValidate ¶
ContextValidate validate this booking based on the context it is used
func (*Booking) MarshalBinary ¶
MarshalBinary interface implementation
func (*Booking) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type Bookings ¶
type Bookings []*Booking
Bookings list of bookings
swagger:model Bookings
func (Bookings) ContextValidate ¶
ContextValidate validate this bookings based on the context it is used
type Description ¶
type Description struct { // URL for further information // Example: https://static.practable.io/info/penduino/ui.html Further string `json:"further,omitempty"` // URL of main image (500x500) // Example: https://assets.practable.io/images/penduino-500x500.png Image string `json:"image,omitempty"` // 280 char additional description of the interface in plain text Long string `json:"long,omitempty"` // Display name // Example: Penduino (basic) // Required: true Name *string `json:"name"` // 140 char max description of the interface in plain text // Example: Interface to the penduino electromagnetic pendulum with variable drive, active braking, short and open circuit loading. Short string `json:"short,omitempty"` // URL of thumbnail image (150x150) // Example: https://assets.practable.io/images/penduino-150x150.png Thumb string `json:"thumb,omitempty"` // Type of resource being described, e.g. pool, activity, userinterface // Example: userinterface // Required: true Type *string `json:"type"` }
Description description
Description of a resource e.g. policy, slot, user interface Example: {"further":"https://static.practable.io/descriptions/pools/penduino/index.html","image":"https://assets.practable.io/images/pools/penduino/image.png","long":"Some longer description","name":"Penduino (basic)","short":"Penduino electromagnetic pendulums with pulsed drive and braking","thumb":"https://assets.practable.io/images/pools/penduino/thumb.png","type":"pool"}
swagger:model Description
func (*Description) ContextValidate ¶
ContextValidate validates this description based on context it is used
func (*Description) MarshalBinary ¶
func (m *Description) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*Description) UnmarshalBinary ¶
func (m *Description) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type DisplayGuide ¶
type DisplayGuide struct { // book ahead // Required: true BookAhead *string `json:"book_ahead"` // duration // Required: true Duration *string `json:"duration"` // what to display in the tab heading for these slots // Required: true Label *string `json:"label"` // max slots // Required: true MaxSlots *int64 `json:"max_slots"` }
DisplayGuide display guide
swagger:model DisplayGuide
func (*DisplayGuide) ContextValidate ¶
ContextValidate validates this display guide based on context it is used
func (*DisplayGuide) MarshalBinary ¶
func (m *DisplayGuide) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*DisplayGuide) UnmarshalBinary ¶
func (m *DisplayGuide) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Error ¶
type Error struct { // code // Required: true Code *string `json:"code"` // message // Required: true Message *string `json:"message"` }
Error error
swagger:model Error
func (*Error) ContextValidate ¶
ContextValidate validates this error based on context it is used
func (*Error) MarshalBinary ¶
MarshalBinary interface implementation
func (*Error) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type Interval ¶
type Interval struct { // end // Format: date-time End strfmt.DateTime `json:"end,omitempty"` // start // Format: date-time Start strfmt.DateTime `json:"start,omitempty"` }
Interval interval
swagger:model Interval
func (*Interval) ContextValidate ¶
ContextValidate validates this interval based on context it is used
func (*Interval) MarshalBinary ¶
MarshalBinary interface implementation
func (*Interval) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type Intervals ¶
type Intervals []*Interval
Intervals intervals
swagger:model Intervals
func (Intervals) ContextValidate ¶
ContextValidate validate this intervals based on the context it is used
type Manifest ¶
type Manifest struct { // descriptions // Required: true Descriptions map[string]Description `json:"descriptions"` // display guides DisplayGuides map[string]DisplayGuide `json:"display_guides,omitempty"` // policies // Required: true Policies map[string]Policy `json:"policies"` // resources // Required: true Resources map[string]Resource `json:"resources"` // slots // Required: true Slots map[string]Slot `json:"slots"` // streams // Required: true Streams map[string]ManifestStream `json:"streams"` // ui sets // Required: true UISets map[string]UISet `json:"ui_sets"` // uis // Required: true Uis map[string]UI `json:"uis"` // windows // Required: true Windows map[string]Window `json:"windows"` }
Manifest manifest
Represents resources that can be booked ¶
swagger:model Manifest
func (*Manifest) ContextValidate ¶
ContextValidate validate this manifest based on the context it is used
func (*Manifest) MarshalBinary ¶
MarshalBinary interface implementation
func (*Manifest) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type ManifestStream ¶
type ManifestStream struct { // connection type // Required: true ConnectionType *string `json:"connection_type"` // Describes the stream, and doubles as template key in the URL // Example: video // Required: true For *string `json:"for"` // scopes // Required: true Scopes []string `json:"scopes"` // topic // Required: true Topic *string `json:"topic"` // URL at which to obtain access to the stream (getting a redirect URL containing a one time code) // Example: https://relay-access.practable.io/session/abc123 // Required: true URL *string `json:"url"` }
ManifestStream manifest stream
represents a prototype stream as described in manifest
swagger:model ManifestStream
func (*ManifestStream) ContextValidate ¶
ContextValidate validates this manifest stream based on context it is used
func (*ManifestStream) MarshalBinary ¶
func (m *ManifestStream) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*ManifestStream) UnmarshalBinary ¶
func (m *ManifestStream) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Policies ¶
type Policies []*Policy
Policies policies
swagger:model Policies
func (Policies) ContextValidate ¶
ContextValidate validate this policies based on the context it is used
type PoliciesDescribed ¶
type PoliciesDescribed []*PolicyDescribed
PoliciesDescribed policies described
swagger:model PoliciesDescribed
func (PoliciesDescribed) ContextValidate ¶
ContextValidate validate this policies described based on the context it is used
type Policy ¶
type Policy struct { // allow start in past within AllowStartInPastWithin string `json:"allow_start_in_past_within,omitempty"` // book ahead BookAhead string `json:"book_ahead,omitempty"` // description // Required: true Description *string `json:"description"` // display guides DisplayGuides []string `json:"display_guides"` // enforce allow start in past EnforceAllowStartInPast bool `json:"enforce_allow_start_in_past,omitempty"` // enforce book ahead EnforceBookAhead bool `json:"enforce_book_ahead,omitempty"` // enforce grace period EnforceGracePeriod bool `json:"enforce_grace_period,omitempty"` // enforce max bookings EnforceMaxBookings bool `json:"enforce_max_bookings,omitempty"` // enforce max duration EnforceMaxDuration bool `json:"enforce_max_duration,omitempty"` // enforce max usage EnforceMaxUsage bool `json:"enforce_max_usage,omitempty"` // enforce min duration EnforceMinDuration bool `json:"enforce_min_duration,omitempty"` // enforce next available EnforceNextAvailable bool `json:"enforce_next_available,omitempty"` // enforce starts within EnforceStartsWithin bool `json:"enforce_starts_within,omitempty"` // enforce unlimited users EnforceUnlimitedUsers bool `json:"enforce_unlimited_users,omitempty"` // grace penalty GracePenalty string `json:"grace_penalty,omitempty"` // grace period GracePeriod string `json:"grace_period,omitempty"` // max bookings MaxBookings int64 `json:"max_bookings,omitempty"` // max duration MaxDuration string `json:"max_duration,omitempty"` // max usage MaxUsage string `json:"max_usage,omitempty"` // min duration MinDuration string `json:"min_duration,omitempty"` // next available NextAvailable string `json:"next_available,omitempty"` // slots // Required: true Slots []string `json:"slots"` // starts within StartsWithin string `json:"starts_within,omitempty"` }
Policy policy
swagger:model Policy
func (*Policy) ContextValidate ¶
ContextValidate validates this policy based on context it is used
func (*Policy) MarshalBinary ¶
MarshalBinary interface implementation
func (*Policy) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type PolicyDescribed ¶
type PolicyDescribed struct { // allow start in past within AllowStartInPastWithin string `json:"allow_start_in_past_within,omitempty"` // book ahead BookAhead string `json:"book_ahead,omitempty"` // description // Required: true Description *Description `json:"description"` // display guides DisplayGuides map[string]DisplayGuide `json:"display_guides,omitempty"` // enforce allow start in past EnforceAllowStartInPast bool `json:"enforce_allow_start_in_past,omitempty"` // enforce book ahead EnforceBookAhead bool `json:"enforce_book_ahead,omitempty"` // enforce grace period EnforceGracePeriod bool `json:"enforce_grace_period,omitempty"` // enforce max bookings EnforceMaxBookings bool `json:"enforce_max_bookings,omitempty"` // enforce max duration EnforceMaxDuration bool `json:"enforce_max_duration,omitempty"` // enforce max usage EnforceMaxUsage bool `json:"enforce_max_usage,omitempty"` // enforce min duration EnforceMinDuration bool `json:"enforce_min_duration,omitempty"` // enforce next available EnforceNextAvailable bool `json:"enforce_next_available,omitempty"` // enforce starts within EnforceStartsWithin bool `json:"enforce_starts_within,omitempty"` // enforce unlimited users EnforceUnlimitedUsers bool `json:"enforce_unlimited_users,omitempty"` // grace penalty GracePenalty string `json:"grace_penalty,omitempty"` // grace period GracePeriod string `json:"grace_period,omitempty"` // max bookings MaxBookings int64 `json:"max_bookings,omitempty"` // max duration MaxDuration string `json:"max_duration,omitempty"` // max usage MaxUsage string `json:"max_usage,omitempty"` // min duration MinDuration string `json:"min_duration,omitempty"` // next available NextAvailable string `json:"next_available,omitempty"` // slots // Required: true Slots []string `json:"slots"` // starts within StartsWithin string `json:"starts_within,omitempty"` }
PolicyDescribed policy described
swagger:model PolicyDescribed
func (*PolicyDescribed) ContextValidate ¶
ContextValidate validate this policy described based on the context it is used
func (*PolicyDescribed) MarshalBinary ¶
func (m *PolicyDescribed) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*PolicyDescribed) UnmarshalBinary ¶
func (m *PolicyDescribed) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type PolicyStatus ¶
type PolicyStatus struct { // current bookings // Required: true CurrentBookings *int64 `json:"current_bookings"` // old bookings // Required: true OldBookings *int64 `json:"old_bookings"` // usage // Required: true Usage *string `json:"usage"` }
PolicyStatus policy status
swagger:model PolicyStatus
func (*PolicyStatus) ContextValidate ¶
ContextValidate validates this policy status based on context it is used
func (*PolicyStatus) MarshalBinary ¶
func (m *PolicyStatus) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*PolicyStatus) UnmarshalBinary ¶
func (m *PolicyStatus) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Resource ¶
type Resource struct { // config url ConfigURL string `json:"config_url,omitempty"` // description // Required: true Description *string `json:"description"` // streams // Required: true Streams []string `json:"streams"` // topic stub // Required: true TopicStub *string `json:"topic_stub"` }
Resource resource
swagger:model Resource
func (*Resource) ContextValidate ¶
ContextValidate validates this resource based on context it is used
func (*Resource) MarshalBinary ¶
MarshalBinary interface implementation
func (*Resource) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type Slot ¶
type Slot struct { // description // Required: true Description *string `json:"description"` // policy // Required: true Policy *string `json:"policy"` // resource // Required: true Resource *string `json:"resource"` // ui set // Required: true UISet *string `json:"ui_set"` // window // Required: true Window *string `json:"window"` }
Slot slot
swagger:model Slot
func (*Slot) ContextValidate ¶
ContextValidate validates this slot based on context it is used
func (*Slot) MarshalBinary ¶
MarshalBinary interface implementation
func (*Slot) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type SlotStatus ¶
type SlotStatus struct { // available // Required: true Available *bool `json:"available"` // reason // Required: true Reason *string `json:"reason"` }
SlotStatus slot status
swagger:model SlotStatus
func (*SlotStatus) ContextValidate ¶
ContextValidate validates this slot status based on context it is used
func (*SlotStatus) MarshalBinary ¶
func (m *SlotStatus) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SlotStatus) UnmarshalBinary ¶
func (m *SlotStatus) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type StoreStatusAdmin ¶
type StoreStatusAdmin struct { // bookings // Required: true Bookings *int64 `json:"bookings"` // descriptions // Required: true Descriptions *int64 `json:"descriptions"` // filters // Required: true Filters *int64 `json:"filters"` // locked // Required: true Locked *bool `json:"locked"` // message // Required: true Message *string `json:"message"` // now // Required: true // Format: date-time Now *strfmt.DateTime `json:"now"` // old bookings // Required: true OldBookings *int64 `json:"old_bookings"` // policies // Required: true Policies *int64 `json:"policies"` // resources // Required: true Resources *int64 `json:"resources"` // slots // Required: true Slots *int64 `json:"slots"` // streams // Required: true Streams *int64 `json:"streams"` // ui sets // Required: true UISets *int64 `json:"ui_sets"` // uis // Required: true Uis *int64 `json:"uis"` // users // Required: true Users *int64 `json:"users"` // windows // Required: true Windows *int64 `json:"windows"` }
StoreStatusAdmin store status admin
swagger:model StoreStatusAdmin
func (*StoreStatusAdmin) ContextValidate ¶
ContextValidate validates this store status admin based on context it is used
func (*StoreStatusAdmin) MarshalBinary ¶
func (m *StoreStatusAdmin) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*StoreStatusAdmin) UnmarshalBinary ¶
func (m *StoreStatusAdmin) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type StoreStatusUser ¶
type StoreStatusUser struct { // locked // Required: true Locked *bool `json:"locked"` // message // Required: true Message *string `json:"message"` // now // Required: true // Format: date-time Now *strfmt.DateTime `json:"now"` }
StoreStatusUser store status user
swagger:model StoreStatusUser
func (*StoreStatusUser) ContextValidate ¶
ContextValidate validates this store status user based on context it is used
func (*StoreStatusUser) MarshalBinary ¶
func (m *StoreStatusUser) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*StoreStatusUser) UnmarshalBinary ¶
func (m *StoreStatusUser) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type UI ¶
type UI struct { // description // Required: true Description *string `json:"description"` // list of names of required streams // Example: ["data","video"] StreamsRequired []string `json:"streams_required"` // template for the URL for the user interface // Example: https://static.practable.io/ui/penduino-basic.html?video={{video}}\u0026data={{data}} // Required: true URL *string `json:"url"` }
UI User Interface
swagger:model UI
func (*UI) ContextValidate ¶
ContextValidate validates this UI based on context it is used
func (*UI) MarshalBinary ¶
MarshalBinary interface implementation
func (*UI) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type UIDescribed ¶
type UIDescribed struct { // description // Required: true Description *Description `json:"description"` // list of names of required streams // Example: ["data","video"] StreamsRequired []string `json:"streams_required"` // template for the URL for the user interface // Example: https://static.practable.io/ui/penduino-basic.html?video={{video}}\u0026data={{data}} // Required: true URL *string `json:"url"` }
UIDescribed User Interface with description including
swagger:model UIDescribed
func (*UIDescribed) ContextValidate ¶
ContextValidate validate this UI described based on the context it is used
func (*UIDescribed) MarshalBinary ¶
func (m *UIDescribed) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*UIDescribed) UnmarshalBinary ¶
func (m *UIDescribed) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type UISet ¶
type UISet struct { // u is UIs []string `json:"UIs"` }
UISet set of User Interfaces
swagger:model UISet
func (*UISet) ContextValidate ¶
ContextValidate validates this UI set based on context it is used
func (*UISet) MarshalBinary ¶
MarshalBinary interface implementation
func (*UISet) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type User ¶
type User struct { // bookings Bookings []string `json:"bookings"` // old bookings OldBookings []string `json:"old_bookings"` // policies Policies []string `json:"policies"` // usage Usage map[string]string `json:"usage,omitempty"` }
User user
swagger:model User
func (*User) ContextValidate ¶
ContextValidate validates this user based on context it is used
func (*User) MarshalBinary ¶
MarshalBinary interface implementation
func (*User) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type UserName ¶
type UserName struct { // user name UserName string `json:"user_name,omitempty"` }
UserName user name
swagger:model UserName
func (*UserName) ContextValidate ¶
ContextValidate validates this user name based on context it is used
func (*UserName) MarshalBinary ¶
MarshalBinary interface implementation
func (*UserName) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type Users ¶
Users set of Users (export only)
swagger:model Users
func (Users) ContextValidate ¶
ContextValidate validate this users based on the context it is used
type Window ¶
type Window struct { // allowed // Required: true Allowed []*Interval `json:"allowed"` // denied Denied []*Interval `json:"denied"` }
Window window
swagger:model Window
func (*Window) ContextValidate ¶
ContextValidate validate this window based on the context it is used
func (*Window) MarshalBinary ¶
MarshalBinary interface implementation
func (*Window) UnmarshalBinary ¶
UnmarshalBinary interface implementation
Source Files ¶
- access_token.go
- activity.go
- activity_stream.go
- booking.go
- bookings.go
- description.go
- display_guide.go
- error.go
- interval.go
- intervals.go
- manifest.go
- manifest_stream.go
- policies.go
- policies_described.go
- policy.go
- policy_described.go
- policy_status.go
- resource.go
- slot.go
- slot_status.go
- store_status_admin.go
- store_status_user.go
- ui.go
- ui_described.go
- ui_set.go
- user.go
- user_name.go
- users.go
- window.go