client

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2019 License: Apache-2.0 Imports: 9 Imported by: 1

README

Automation Cloud Go Client

Coverage Status Build Status GoDoc Go Report Card

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrServer = errors.New("server error")
	ErrClient = errors.New("client error")
)

Errors returned by a client.

Functions

This section is empty.

Types

type ApiClient

type ApiClient struct {
	Client    *http.Client
	SecretKey string
	// contains filtered or unexported fields
}

ApiClient represents api client, use NewApiClient() to create a new client.

func NewApiClient

func NewApiClient(httpClient *http.Client, secretKey string) *ApiClient

NewApiClient creates new ApiClient.

func (*ApiClient) CreateJob

func (apiClient *ApiClient) CreateJob(jcr JobCreationRequest) (job Job, err error)

CreateJob makes an http request to run a job. It may return ValidationError in case if invalid data provided.

func (*ApiClient) FetchJob

func (apiClient *ApiClient) FetchJob(id string) (job Job, err error)

FetchJob requests job and returns it as a result.

func (*ApiClient) FetchProtocol

func (c *ApiClient) FetchProtocol() (protocol *Protocol, err error)

FetchProtocol requests protocol containing type definitions for all automation domains.

func (*ApiClient) GetProtocol

func (c *ApiClient) GetProtocol() (*Protocol, error)

GetProtocol returns cached version of a protocol.

func (*ApiClient) ListPreviousJobOutputs

func (apiClient *ApiClient) ListPreviousJobOutputs(serviceId string) ([]PreviousJobOutput, error)

ListPreviousJobOutputs fetches previous outputs for a service.

func (*ApiClient) WithBaseURL

func (apiClient *ApiClient) WithBaseURL(url string) *ApiClient

WithBaseURL allows to alternate location of a api.

func (*ApiClient) WithProtocolURL

func (apiClient *ApiClient) WithProtocolURL(url string) *ApiClient

WithProtocolURL allows to alternate location of a protocol.

type Domain

type Domain struct {
	Inputs map[string]InputDef `json:"inputs"`
}

Domain describes type defs.

type InputDef

type InputDef struct {
	SourceOutputKey string `json:"sourceOutputKey"`
	InputMethod     string `json:"inputMethod"`
}

InputDef defines types of inputs allowed by automation job.

type Job

type Job struct {
	Id                 string `json:"id"`
	ServiceName        string `json:"serviceName"`
	Category           string `json:"category"`
	State              string `json:"state"`
	SessionId          string `json:"sessionId"`
	AwaitingInputKey   string `json:"awaitingInputKey,omitempty"`
	AwaitingInputStage string `json:"awaitingInputStage,omitempty"`
	CreatedAt          jsTime `json:"createdAt"`
	UpdatedAt          jsTime `json:"updatedAt"`
	// contains filtered or unexported fields
}

Job represents automation cloud job object. It used to control automation flow: provide inputs, consume outputs, watch state.

func (*Job) Cancel

func (job *Job) Cancel() (err error)

Cancel sends http requst to cancel job Yields an error in case of attempt to cancel job not in "awaitingInput" state

func (*Job) CreateInput

func (job *Job) CreateInput(data interface{}) (input JobInput, err error)

CreateInput creates an input for job.

func (*Job) Fetch

func (job *Job) Fetch() bool

Fetch loads updated version of a job, returns true if request was successful.

func (*Job) GetOutput

func (job *Job) GetOutput(key string) (output JobOutput, err error)

GetOutput loads job output for given key.

type JobCreationRequest

type JobCreationRequest struct {
	ServiceId   string                 `json:"serviceId"`
	Data        map[string]interface{} `json:"input"`
	CallbackUrl string                 `json:"callbackUrl,omitempty"`
}

JobCreationRequest describes a request to create a job.

type JobInput

type JobInput struct {
	Key       string      `json:"key"`
	Stage     string      `json:"stage"`
	Data      interface{} `json:"data"`
	CreatedAt int         `json:"createdAt"`
}

JobInput represents a job input.

type JobOutput

type JobOutput struct {
	Data      interface{} `json:"data"`
	CreatedAt jsTime      `json:"createdAt"`
	UpdatedAt jsTime      `json:"updatedAt"`
}

JobOutput represents a job output.

type PreviousJobOutput

type PreviousJobOutput struct {
	Key         string      `json:"key"`
	Stage       string      `json:"stage"`
	Data        interface{} `json:"data"`
	Id          string      `json:"id"`
	JobId       string      `json:"jobId"`
	UpdatedAt   jsTime      `json:"updatedAt"`
	CreatedAt   jsTime      `json:"createdAt"`
	Variability float64     `json:"variability"`
}

PreviousJobOutput is a presentation of previous job output.

type Protocol

type Protocol struct {
	Domains map[string]Domain `json:"domains"`
}

Protocol is a dictionary of domains.

type ValidationError

type ValidationError struct {
	Messages []string
}

ValidationError contains information about details of validation failure.

func (ValidationError) Error

func (v ValidationError) Error() string

Error makes string representation of a validation error.

Jump to

Keyboard shortcuts

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