awsiotdevice

package module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: MIT Imports: 15 Imported by: 0

README

go-aws-iot-device

GoDoc Go Report Card MIT License

Package awsiotdevice implements AWS IoT features.

Implemented features:

  • Provisioning

Requirements

Go 1.21 and beyond.

Install

go get -u github.com/crow-misia/go-aws-iot-device

Build

go build
Create certification and key
aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile certificate.pem --public-key-outfile public.key --private-key-outfile private.key
endpoint
aws iot describe-endpoint --endpoint-type iot:Data-ATS

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	IsConnected() bool
	IsConnectionOpen() bool
	Connect(clientId string) error
	Disconnect(quiesce uint)
	Publish(topic string, qos byte, retained bool, payload interface{}) error
	PublishWithReply(topic string, payload interface{}) (mqtt.Message, error)
	Subscribe(topic string, qos byte, callback mqtt.MessageHandler) error
	SubscribeMultiple(filters map[string]byte, callback mqtt.MessageHandler) error
	Unsubscribe(topics ...string) error
}

Client is AWS IoT Core Client.

func New

func New(endpoint string, options ...ClientOption) (Client, error)

New returns a new AWS IoT Core Client instance.

type ClientOption

type ClientOption func(*client) error

ClientOption type

func WithCertificate

func WithCertificate(certificate tls.Certificate) ClientOption

WithCertificate is Certificate setter

func WithCertificateAndPrivateKey

func WithCertificateAndPrivateKey(certFile, keyFile string) ClientOption

WithCertificateAndPrivateKey is Certificate setter

func WithConnectTimeout

func WithConnectTimeout(timeout time.Duration) ClientOption

WithConnectTimeout is connection timeout setter

func WithLogger

func WithLogger(logger *slog.Logger) ClientOption

WithLogger is logger setter

func WithMQTTConfig

func WithMQTTConfig(config *mqtt.ClientOptions) ClientOption

WithMQTTConfig is MQTT Client config setter

func WithPublishTimeout

func WithPublishTimeout(timeout time.Duration) ClientOption

WithPublishTimeout is publish timeout setter

func WithRootCA

func WithRootCA(pem []byte) ClientOption

WithRootCA is Root CA PEM setter

func WithRootCAFile

func WithRootCAFile(caFile string) ClientOption

WithRootCAFile is Root CA PEM with file setter

func WithSubscribeTimeout

func WithSubscribeTimeout(timeout time.Duration) ClientOption

WithSubscribeTimeout is subscription timeout setter

func WithTLSConfig

func WithTLSConfig(tlsConfig *tls.Config) ClientOption

WithTLSConfig is TLS Config setter

type CreateCertificateFromCsrRequest

type CreateCertificateFromCsrRequest struct {
	CertificateSigningRequest string `json:"certificateSigningRequest"`
}

type CreateCertificateFromCsrResponse

type CreateCertificateFromCsrResponse struct {
	CertificateId             string `json:"certificateId"`
	CertificatePem            string `json:"certificatePem"`
	CertificateOwnershipToken string `json:"certificateOwnershipToken"`
}

type CreateKeysAndCertificateResponse

type CreateKeysAndCertificateResponse struct {
	CertificateId             string `json:"certificateId"`
	CertificatePem            string `json:"certificatePem"`
	PrivateKey                string `json:"privateKey"`
	CertificateOwnershipToken string `json:"certificateOwnershipToken"`
}

type Provisioner

type Provisioner interface {
	Provisioning(templateName string, parameters map[string]interface{}) (*ProvisioningResponse, error)
	ProvisioningWithCsr(templateName string, parameters map[string]interface{}) (*ProvisioningResponse, error)
}

func CreateProvisioner

func CreateProvisioner(client Client, options ...ProvisionerOption) Provisioner

type ProvisionerOption

type ProvisionerOption func(provisioner *provisioner)

ProvisionerOption type

func WithCurve

func WithCurve(curve elliptic.Curve) ProvisionerOption

WithCurve is curve implements setter

func WithSignatureAlgorithm

func WithSignatureAlgorithm(signatureAlgorithm x509.SignatureAlgorithm) ProvisionerOption

WithSignatureAlgorithm is signature algorithm setter

type ProvisioningErrorResponse

type ProvisioningErrorResponse struct {
	StatusCode   int    `json:"statusCode"`
	ErrorCode    string `json:"errorCode"`
	ErrorMessage string `json:"errorMessage"`
}

type ProvisioningResponse

type ProvisioningResponse struct {
	DeviceConfiguration map[string]interface{}
	ThingName           string
	CertificateId       string
	Certificate         string
	PrivateKey          string
}

type RegisterThingRequest

type RegisterThingRequest struct {
	CertificateOwnershipToken string                 `json:"certificateOwnershipToken"`
	Parameters                map[string]interface{} `json:"parameters"`
}

type RegisterThingResponse

type RegisterThingResponse struct {
	DeviceConfiguration map[string]interface{} `json:"deviceConfiguration"`
	ThingName           string                 `json:"thingName"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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