Documentation ¶
Index ¶
- Constants
- Variables
- type BootstrapConfig
- type Cert
- type Channel
- type ChannelsPage
- type Config
- type ConfigUpdateCertReq
- type ConnectionIDs
- type ContentType
- type Group
- type GroupChannelsPage
- type GroupThingsPage
- type GroupsPage
- type Key
- type KeyRes
- type MessagesPage
- type PageMetadata
- type SDK
- type Thing
- type ThingsPage
- type User
- type UserPasswordReq
- type UsersPage
Constants ¶
const ( MaxLevel = uint64(5) MinLevel = uint64(1) )
const ( // LoginKey is temporary User key received on successfull login. LoginKey uint32 = iota // RecoveryKey represents a key for resseting password. RecoveryKey // APIKey enables the one to act on behalf of the user. APIKey )
Variables ¶
var ( // ErrFailedCreation indicates that entity creation failed. ErrFailedCreation = errors.New("failed to create entity") // ErrFailedUpdate indicates that entity update failed. ErrFailedUpdate = errors.New("failed to update entity") // ErrFailedFetch indicates that fetching of entity data failed. ErrFailedFetch = errors.New("failed to fetch entity") // ErrFailedRemoval indicates that entity removal failed. ErrFailedRemoval = errors.New("failed to remove entity") // ErrFailedConnect indicates that connecting thing to channel failed. ErrFailedConnect = errors.New("failed to connect thing to channel") // ErrFailedDisconnect indicates that disconnecting thing from a channel failed. ErrFailedDisconnect = errors.New("failed to disconnect thing from channel") // ErrFailedPublish indicates that publishing message failed. ErrFailedPublish = errors.New("failed to publish message") // ErrFailedRead indicates that read messages failed. ErrFailedRead = errors.New("failed to read messages") // ErrInvalidContentType indicates that non-existent message content type // was passed. ErrInvalidContentType = errors.New("Unknown Content Type") // ErrFetchHealth indicates that fetching of health check failed. ErrFetchHealth = errors.New("failed to fetch health check") // ErrFailedWhitelist failed to whitelist configs ErrFailedWhitelist = errors.New("failed to whitelist") // ErrCerts indicates error fetching certificates. ErrCerts = errors.New("failed to fetch certs data") // ErrCertsRemove indicates failure while cleaning up from the Certs service. ErrCertsRemove = errors.New("failed to remove certificate") // ErrFailedCertUpdate failed to update certs in bootstrap config ErrFailedCertUpdate = errors.New("failed to update certs in bootstrap config") // ErrMemberAdd failed to add member to a group. ErrMemberAdd = errors.New("failed to add member to group") )
Functions ¶
This section is empty.
Types ¶
type BootstrapConfig ¶
type BootstrapConfig struct { ThingID string `json:"thing_id,omitempty"` Channels []string `json:"channels,omitempty"` ExternalID string `json:"external_id,omitempty"` ExternalKey string `json:"external_key,omitempty"` MFThing string `json:"mainflux_id,omitempty"` MFChannels []Channel `json:"mainflux_channels,omitempty"` MFKey string `json:"mainflux_key,omitempty"` Name string `json:"name,omitempty"` ClientCert string `json:"client_cert,omitempty"` ClientKey string `json:"client_key,omitempty"` CACert string `json:"ca_cert,omitempty"` Content string `json:"content,omitempty"` State int `json:"state,omitempty"` }
BootstrapConfig represents Configuration entity. It wraps information about external entity as well as info about corresponding Mainflux entities. MFThing represents corresponding Mainflux Thing ID. MFKey is key of corresponding Mainflux Thing. MFChannels is a list of Mainflux Channels corresponding Mainflux Thing connects to.
type Cert ¶
type Cert struct { CACert string `json:"issuing_ca,omitempty"` ClientKey string `json:"client_key,omitempty"` ClientCert string `json:"client_cert,omitempty"` }
Cert represents certs data.
type Channel ¶
type Channel struct { ID string `json:"id,omitempty"` GroupID string `json:"group_id,omitempty"` OwnerID string `json:"owner_id,omitempty"` Name string `json:"name,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` }
Channel represents mainflux channel.
type ChannelsPage ¶
type ChannelsPage struct { Channels []Channel `json:"channels"` // contains filtered or unexported fields }
ChannelsPage contains list of channels in a page with proper metadata.
type Config ¶
type Config struct { AuthURL string BootstrapURL string CertsURL string HTTPAdapterURL string ReaderURL string ThingsURL string UsersURL string MsgContentType ContentType TLSVerification bool }
Config contains sdk configuration parameters.
type ConfigUpdateCertReq ¶
type ConnectionIDs ¶
type ConnectionIDs struct { ChannelID string `json:"channel_id"` ThingIDs []string `json:"thing_ids"` }
ConnectionIDs contains ID lists of things and channel to be connected
type ContentType ¶
type ContentType string
ContentType represents all possible content types.
const ( // CTJSON represents JSON content type. CTJSON ContentType = "application/json" // CTJSONSenML represents JSON SenML content type. CTJSONSenML ContentType = "application/senml+json" // CTBinary represents binary content type. CTBinary ContentType = "application/octet-stream" )
type Group ¶
type Group struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` OwnerID string `json:"owner_id,omitempty"` Description string `json:"description,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` UpdatedAt time.Time `json:"updated_at,omitempty"` }
Group represents mainflux users group.
type GroupChannelsPage ¶
type GroupChannelsPage struct { Channels []string `json:"channels"` // contains filtered or unexported fields }
type GroupThingsPage ¶
type GroupThingsPage struct { Things []string `json:"things"` // contains filtered or unexported fields }
type GroupsPage ¶
type GroupsPage struct { Groups []Group `json:"groups"` // contains filtered or unexported fields }
type KeyRes ¶
type MessagesPage ¶
type MessagesPage struct { Messages []senml.Message `json:"messages,omitempty"` // contains filtered or unexported fields }
MessagesPage contains list of messages in a page with proper metadata.
type PageMetadata ¶
type PageMetadata struct { Total uint64 `json:"total"` Offset uint64 `json:"offset"` Limit uint64 `json:"limit"` Level uint64 `json:"level,omitempty"` Email string `json:"email,omitempty"` Name string `json:"name,omitempty"` Type string `json:"type,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` }
type SDK ¶
type SDK interface { // CreateUser creates mainflux user. CreateUser(token string, user User) (string, error) // User returns user object by id. User(token, id string) (User, error) // Users returns list of users. Users(token string, pm PageMetadata) (UsersPage, error) // CreateToken receives credentials and returns user token. CreateToken(user User) (string, error) // RegisterUser registers mainflux user. RegisterUser(user User) (string, error) // UpdateUser updates existing user. UpdateUser(user User, token string) error // UpdatePassword updates user password. UpdatePassword(oldPass, newPass, token string) error // CreateThing registers new thing and returns its id. CreateThing(thing Thing, token string) (string, error) // CreateThings registers new things and returns their ids. CreateThings(things []Thing, token string) ([]Thing, error) // Things returns page of things. Things(token string, pm PageMetadata) (ThingsPage, error) // ThingsByChannel returns page of things that are connected or not connected // to specified channel. ThingsByChannel(token, chanID string, offset, limit uint64, disconnected bool) (ThingsPage, error) // Thing returns thing object by id. Thing(id, token string) (Thing, error) // UpdateThing updates existing thing. UpdateThing(thing Thing, token string) error // DeleteThing removes existing thing. DeleteThing(id, token string) error // DeleteThings removes existing things. DeleteThings(ids []string, token string) error // IdentifyThing validates thing's key and returns its ID IdentifyThing(key string) (string, error) // CreateGroup creates new group and returns its id. CreateGroup(group Group, token string) (string, error) // DeleteGroup deletes users group. DeleteGroup(id, token string) error // DeleteGroups delete users groups. DeleteGroups(ids []string, token string) error // Groups returns page of groups. Groups(meta PageMetadata, token string) (GroupsPage, error) // Group returns users group object by id. Group(id, token string) (Group, error) // ListGroupThings lists things that are members of specified group. ListGroupThings(groupID, token string, offset, limit uint64) (GroupThingsPage, error) // ViewThingGroup retrieves a group that the specified thing is a member of. ViewThingGroup(thingID, token string, offset, limit uint64) (Group, error) // UpdateGroup updates existing group. UpdateGroup(group Group, token string) error // Connect connects a list of things to a channel. Connect(conns ConnectionIDs, token string) error // Disconnect disconnects a list of things from a channel. Disconnect(conns ConnectionIDs, token string) error // CreateChannel creates new channel and returns its id. CreateChannel(channel Channel, token string) (string, error) // CreateChannels registers new channels and returns their ids. CreateChannels(channels []Channel, token string) ([]Channel, error) // Channels returns page of channels. Channels(token string, pm PageMetadata) (ChannelsPage, error) // ViewChannelByThing returns channel that are connected to specified thing. ViewChannelByThing(token, thingID string) (Channel, error) // Channel returns channel data by id. Channel(id, token string) (Channel, error) // UpdateChannel updates existing channel. UpdateChannel(channel Channel, token string) error // DeleteChannel removes existing channel. DeleteChannel(id, token string) error // DeleteChannels removes existing channel. DeleteChannels(ids []string, token string) error // ListGroupChannels lists channels that are members of specified group. ListGroupChannels(groupID, token string, offset, limit uint64) (GroupChannelsPage, error) // ViewChannelGroup retrieves a group that the specified channel is a member of. ViewChannelGroup(channelID, token string, offset, limit uint64) (Group, error) // SendMessage send message to specified channel. SendMessage(chanID, msg, token string) error // ReadMessages read messages of specified channel. ReadMessages(chanID, token string) (MessagesPage, error) // SetContentType sets message content type. SetContentType(ct ContentType) error // Health returns things service health check. Health() (mainflux.HealthInfo, error) // AddBootstrap add bootstrap configuration AddBootstrap(token string, cfg BootstrapConfig) (string, error) // View returns Thing Config with given ID belonging to the user identified by the given token. ViewBootstrap(token, id string) (BootstrapConfig, error) // Update updates editable fields of the provided Config. UpdateBootstrap(token string, cfg BootstrapConfig) error // Update boostrap config certificates UpdateBootstrapCerts(token string, id string, clientCert, clientKey, ca string) error // Remove removes Config with specified token that belongs to the user identified by the given token. RemoveBootstrap(token, id string) error // Bootstrap returns Config to the Thing with provided external ID using external key. Bootstrap(externalKey, externalID string) (BootstrapConfig, error) // Whitelist updates Thing state Config with given ID belonging to the user identified by the given token. Whitelist(token string, cfg BootstrapConfig) error // IssueCert issues a certificate for a thing required for mtls. IssueCert(thingID string, keyBits int, keyType, valid, token string) (Cert, error) // RemoveCert removes a certificate RemoveCert(id, token string) error // RevokeCert revokes certificate with certID for thing with thingID RevokeCert(thingID, certID, token string) error // Issue issues a new key, returning its token value alongside. Issue(token string, duration time.Duration) (KeyRes, error) // Revoke removes the key with the provided ID that is issued by the user identified by the provided key. Revoke(token, id string) error // RetrieveKey retrieves data for the key identified by the provided ID, that is issued by the user identified by the provided key. RetrieveKey(token, id string) (retrieveKeyRes, error) }
SDK contains Mainflux API.
type Thing ¶
type Thing struct { ID string `json:"id,omitempty"` GroupID string `json:"group_id,omitempty"` OwnerID string `json:"owner_id,omitempty"` Name string `json:"name,omitempty"` Key string `json:"key,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` }
Thing represents mainflux thing.
type ThingsPage ¶
type ThingsPage struct { Things []Thing `json:"things"` // contains filtered or unexported fields }
ThingsPage contains list of things in a page with proper metadata.
type User ¶
type User struct { ID string `json:"id,omitempty"` Email string `json:"email,omitempty"` Groups []string `json:"groups,omitempty"` Password string `json:"password,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` }
User represents mainflux user its credentials.
type UserPasswordReq ¶
type UserPasswordReq struct { OldPassword string `json:"old_password,omitempty"` Password string `json:"password,omitempty"` }
UserPasswordReq contains old and new passwords