orchestrator

package
v0.0.0-...-2b69720 Latest Latest
Warning

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

Go to latest
Published: May 14, 2024 License: Apache-2.0 Imports: 13 Imported by: 3

Documentation

Index

Constants

View Source
const (
	// orchestrator endpoint
	DeviceDecommissioningOrchestratorUri = "/api/v1/workflow/decommission_device"
	ProvisionDeviceOrchestratorUri       = "/api/v1/workflow/provision_device"
	UpdateDeviceStatusOrchestratorUri    = "/api/v1/workflow/update_device_status"
	UpdateDeviceInventoryOrchestratorUri = "/api/v1/workflow/update_device_inventory"
	HealthURI                            = "/api/v1/health"
	DeviceLimitWarningURI                = "/api/v1/workflow/device_limit_email"
	ReindexReportingURI                  = "/api/v1/workflow/reindex_reporting"
	ReindexReportingBatchURI             = "/api/v1/workflow/reindex_reporting/batch"
)
View Source
const (
	ServiceDeviceauth = "deviceauth"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client is an opaque implementation of orchestrator client. Implements ClientRunner interface

func NewClient

func NewClient(c Config) *Client

func (*Client) CheckHealth

func (c *Client) CheckHealth(ctx context.Context) error

func (*Client) SubmitDeviceDecommisioningJob

func (co *Client) SubmitDeviceDecommisioningJob(
	ctx context.Context,
	decommissioningReq DecommissioningReq,
) error

func (*Client) SubmitDeviceLimitWarning

func (co *Client) SubmitDeviceLimitWarning(
	ctx context.Context,
	devWarn DeviceLimitWarning,
) error

func (*Client) SubmitProvisionDeviceJob

func (co *Client) SubmitProvisionDeviceJob(
	ctx context.Context,
	provisionDeviceReq ProvisionDeviceReq,
) error

func (*Client) SubmitReindexReporting

func (co *Client) SubmitReindexReporting(ctx context.Context, device string) error

func (*Client) SubmitReindexReportingBatch

func (co *Client) SubmitReindexReportingBatch(ctx context.Context, devices []string) error

func (*Client) SubmitUpdateDeviceInventoryJob

func (co *Client) SubmitUpdateDeviceInventoryJob(
	ctx context.Context,
	updateDeviceInventoryReq UpdateDeviceInventoryReq,
) error

func (*Client) SubmitUpdateDeviceStatusJob

func (co *Client) SubmitUpdateDeviceStatusJob(
	ctx context.Context,
	updateDeviceStatusReq UpdateDeviceStatusReq,
) error

type ClientRunner

type ClientRunner interface {
	CheckHealth(ctx context.Context) error
	SubmitDeviceDecommisioningJob(ctx context.Context, req DecommissioningReq) error
	SubmitProvisionDeviceJob(ctx context.Context, req ProvisionDeviceReq) error
	SubmitUpdateDeviceStatusJob(ctx context.Context, req UpdateDeviceStatusReq) error
	SubmitDeviceLimitWarning(ctx context.Context, devWarn DeviceLimitWarning) error
	SubmitUpdateDeviceInventoryJob(ctx context.Context, req UpdateDeviceInventoryReq) error
	SubmitReindexReporting(c context.Context, device string) error
	SubmitReindexReportingBatch(c context.Context, devices []string) error
}

ClientRunner is an interface of orchestrator client

type Config

type Config struct {
	// Orchestrator host
	OrchestratorAddr string
	// Request timeout
	Timeout time.Duration
}

Config conveys client configuration

type DecommissioningReq

type DecommissioningReq struct {
	// Device ID
	DeviceId string `json:"device_id"`
	// Request ID
	RequestId string `json:"request_id"`
	// TenantID
	TenantID string `json:"tenant_id"`
}

DecomissioningReq contains request data of request to start decommissioning workflow

type DeviceLimitWarning

type DeviceLimitWarning struct {
	RequestID string `json:"request_id"`

	RecipientEmail string `json:"to"`

	Subject          string `json:"subject"`
	Body             string `json:"body"`
	BodyHTML         string `json:"html"`
	RemainingDevices *uint  `json:"remaining_devices"`
}

func (*DeviceLimitWarning) Validate

func (dl *DeviceLimitWarning) Validate() error

type ProvisionDeviceReq

type ProvisionDeviceReq struct {
	// Request ID
	RequestId string `json:"request_id"`
	// DeviceID
	DeviceID string `json:"device_id"`
	// TenantID
	TenantID string `json:"tenant_id"`

	Device *model.Device `json:"device"`
	Status string        `json:"status"`
}

ProvisionDeviceReq contains request data of request to start provisioning workflow

type ReindexReportingWorkflow

type ReindexReportingWorkflow struct {
	RequestID string `json:"request_id"`
	TenantID  string `json:"tenant_id"`
	DeviceID  string `json:"device_id"`
	Service   string `json:"service"`
}

type UpdateDeviceInventoryReq

type UpdateDeviceInventoryReq struct {
	// Request ID
	RequestId string `json:"request_id"`
	// Tenant ID
	TenantId string `json:"tenant_id"`
	// Device ID
	DeviceId string `json:"device_id"`
	// Attributes scope
	Scope string `json:"scope"`
	// Device inventory attributes
	Attributes string `json:"attributes"`
}

UpdateDeviceInventoryReq contains request data of request to start update device inventory workflow

type UpdateDeviceStatusReq

type UpdateDeviceStatusReq struct {
	// Request ID
	RequestId string `json:"request_id"`
	// Device IDs
	Devices []model.DeviceInventoryUpdate `json:"devices"`
	// Tenant ID
	TenantId string `json:"tenant_id"`
	// new status
	Status string `json:"device_status"`
}

UpdateDeviceStatusReq contains request data of request to start update device status workflow

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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