jobs

package
v5.0.6 Latest Latest
Warning

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

Go to latest
Published: May 28, 2021 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package jobs implements AWS IoT Jobs API.

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidResponse = errors.New("invalid response from AWS IoT")

ErrInvalidResponse is returned if failed to parse response from AWS IoT.

Functions

This section is empty.

Types

type ErrorResponse

type ErrorResponse struct {
	Code           string            `json:"code"`
	Message        string            `json:"message"`
	ClientToken    string            `json:"clientToken"`
	Timestamp      int64             `json:"timestamp"`
	ExecutionState JobExecutionState `json:"executionState"`
}

ErrorResponse represents error message from AWS IoT.

func (*ErrorResponse) Error

func (e *ErrorResponse) Error() string

Error implements error interface.

type JobExecution

type JobExecution struct {
	JobID           string            `json:"jobId"`
	ThingName       string            `json:"thingName"`
	JobDocument     interface{}       `json:"jobDocument"`
	Status          JobExecutionState `json:"status"`
	StatusDetails   map[string]string `json:"statusDetails"`
	QueuedAt        int64             `json:"queuedAt"`
	StartedAt       int64             `json:"startedAt"`
	LastUpdatedAt   int64             `json:"lastUpdatedAt"`
	VersionNumber   int               `json:"versionNumber"`
	ExecutionNumber int               `json:"executionNumber"`
}

JobExecution represents details of a job.

type JobExecutionState

type JobExecutionState string

JobExecutionState represents job status.

const (
	Queued     JobExecutionState = "QUEUED"
	InProgress JobExecutionState = "IN_PROGRESS"
	Failed     JobExecutionState = "FAILED"
	Succeeded  JobExecutionState = "SUCCEEDED"
	Canceled   JobExecutionState = "CANCELED"
	TimedOut   JobExecutionState = "TIMED_OUT"
	Rejected   JobExecutionState = "REJECTED"
	Removed    JobExecutionState = "REMOVED"
)

JobExecutionState values.

type JobExecutionSummary

type JobExecutionSummary struct {
	JobID           string `json:"jobId"`
	QueuedAt        int64  `json:"queuedAt"`
	StartedAt       int64  `json:"startedAt"`
	LastUpdatedAt   int64  `json:"lastUpdatedAt"`
	VersionNumber   int    `json:"versionNumber"`
	ExecutionNumber int    `json:"executionNumber"`
}

JobExecutionSummary represents summary of a job.

type Jobs

type Jobs interface {
	mqtt.Handler
	// OnError sets handler of asynchronous errors.
	OnError(func(error))
	// OnJobChange sets handler for job update.
	OnJobChange(func(map[JobExecutionState][]JobExecutionSummary))
	// GetPendingJobs gets list of pending jobs.
	GetPendingJobs(ctx context.Context) (map[JobExecutionState][]JobExecutionSummary, error)
	// DescribeJob gets details of specific job.
	DescribeJob(ctx context.Context, id string) (*JobExecution, error)
	// UpdateJob updates job status.
	UpdateJob(ctx context.Context, j *JobExecution, s JobExecutionState, opt ...UpdateJobOption) error
}

Jobs is an interface of IoT Jobs.

func New

func New(ctx context.Context, cli awsiotdev.Device) (Jobs, error)

New creates IoT Jobs interface.

type UpdateJobOption

type UpdateJobOption func(*UpdateJobOptions)

UpdateJobOption is a functional option of UpdateJob.

func WithDetail

func WithDetail(key, val string) UpdateJobOption

WithDetail adds detail status in key-value form.

func WithTimeout

func WithTimeout(min int) UpdateJobOption

WithTimeout sets UpdateJob timeout in minutes.

type UpdateJobOptions

type UpdateJobOptions struct {
	TimeoutMinutes int
	Details        map[string]string
}

UpdateJobOptions stores UpdateJob options.

Jump to

Keyboard shortcuts

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