api

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2023 License: MIT Imports: 20 Imported by: 12

Documentation

Index

Constants

View Source
const (
	ErrorTypeParamaterError  string = "ParameterError"
	ErrorTypeNotFound        string = "NotFound"
	ErrorTypeTooManyRequests string = "TooManyRequests"
	ErrorTypeSystemError     string = "SystemError"
	ErrorTypeGatewayTimeout  string = "GatewayTimeout"
)
View Source
const DefaultEndpoint = "https://api.dns-platform.jp/dpf/v1"

Variables

Functions

func IsAuthError

func IsAuthError(err error) bool

func IsBadResponse added in v0.3.0

func IsBadResponse(err error, f func(b *BadResponse) bool) bool

func IsErrMsg added in v0.3.0

func IsErrMsg(err error, msg string) bool

func IsErrType added in v0.3.0

func IsErrType(err error, name string) bool

func IsErrorCode

func IsErrorCode(err error, code string) (bool, string)

func IsErrorCodeAttribute

func IsErrorCodeAttribute(err error, code string, attribute string) bool

func IsGatewayTimeout added in v0.3.0

func IsGatewayTimeout(err error) bool

func IsInvalidSchema

func IsInvalidSchema(err error) bool

func IsNotFound

func IsNotFound(err error) bool

func IsParameterError added in v0.3.0

func IsParameterError(err error) bool

func IsRequestFormatError added in v0.3.0

func IsRequestFormatError(err error) bool

func IsStatusCode added in v0.3.0

func IsStatusCode(err error, code int) bool

func IsSystemError added in v0.3.0

func IsSystemError(err error) bool

func IsTooManyRequests added in v0.3.0

func IsTooManyRequests(err error) bool

func MarshalApply

func MarshalApply(body interface{}) ([]byte, error)

func MarshalCreate

func MarshalCreate(body interface{}) ([]byte, error)

func MarshalOutput

func MarshalOutput(spec Spec) ([]byte, error)

func MarshalUpdate

func MarshalUpdate(body interface{}) ([]byte, error)

func UnMarshalInput

func UnMarshalInput(bs []byte, obj Object) error

func UnmarshalRead

func UnmarshalRead(bs []byte, o interface{}) error

Types

type Action

type Action string
const (
	ActionCreate Action = "Create"
	ActionRead   Action = "Read"
	ActionList   Action = "List"
	ActionUpdate Action = "Update"
	ActionDelete Action = "Delete"
	ActionCount  Action = "Count"
	ActionCancel Action = "Cancel"
	ActionApply  Action = "Apply"
)

func Actions

func Actions() []Action

func (Action) ToMethod

func (a Action) ToMethod() string

type AsyncResponse

type AsyncResponse struct {
	ResponseCommon `read:",inline"`
	JobsURL        string `read:"jobs_url"`
}

type BadResponse

type BadResponse struct {
	ResponseCommon `read:",inline"`
	StatusCode     int          `read:"-"`
	ErrorType      string       `read:"error_type"`
	ErrorMessage   string       `read:"error_message"`
	ErrorDetails   ErrorDetails `read:"error_details"`
}

func (*BadResponse) Error

func (r *BadResponse) Error() string

func (*BadResponse) IsAuthError added in v0.3.0

func (r *BadResponse) IsAuthError() bool

func (*BadResponse) IsErrMsg added in v0.3.0

func (r *BadResponse) IsErrMsg(msg string) bool

func (*BadResponse) IsErrType added in v0.3.0

func (r *BadResponse) IsErrType(name string) bool

func (*BadResponse) IsErrorCode added in v0.3.0

func (r *BadResponse) IsErrorCode(code string) (bool, string)

func (*BadResponse) IsErrorCodeAttribute added in v0.3.0

func (r *BadResponse) IsErrorCodeAttribute(code string, attribute string) bool

func (*BadResponse) IsGatewayTimeout added in v0.3.0

func (r *BadResponse) IsGatewayTimeout() bool

func (*BadResponse) IsInvalidSchema added in v0.3.0

func (r *BadResponse) IsInvalidSchema() bool

func (*BadResponse) IsNotFound added in v0.3.0

func (r *BadResponse) IsNotFound() bool

func (*BadResponse) IsParameterError added in v0.3.0

func (r *BadResponse) IsParameterError() bool

func (*BadResponse) IsRequestFormatError added in v0.3.0

func (r *BadResponse) IsRequestFormatError() bool

func (*BadResponse) IsStatusCode added in v0.3.0

func (r *BadResponse) IsStatusCode(code int) bool

func (*BadResponse) IsSystemError added in v0.3.0

func (r *BadResponse) IsSystemError() bool

func (*BadResponse) IsTooManyRequests added in v0.3.0

func (r *BadResponse) IsTooManyRequests() bool

type Client

type Client struct {
	Endpoint string
	Token    string

	LastRequest  *RequestInfo
	LastResponse *ResponseInfo
	// contains filtered or unexported fields
}

func NewClient

func NewClient(token string, endpoint string, logger Logger) *Client

func (*Client) Apply

func (c *Client) Apply(ctx context.Context, s Spec, body interface{}) (string, error)

func (*Client) Cancel

func (c *Client) Cancel(ctx context.Context, s Spec) (string, error)

func (*Client) Count

func (c *Client) Count(ctx context.Context, s CountableListSpec, keywords SearchParams) (string, error)

func (*Client) Create

func (c *Client) Create(ctx context.Context, s Spec, body interface{}) (string, error)

func (*Client) Delete

func (c *Client) Delete(ctx context.Context, s Spec) (string, error)

func (*Client) Do

func (c *Client) Do(ctx context.Context, spec Spec, action Action, body interface{}, params SearchParams) (string, error)

func (*Client) List

func (c *Client) List(ctx context.Context, s ListSpec, keywords SearchParams) (string, error)

func (*Client) ListAll added in v0.5.0

func (c *Client) ListAll(ctx context.Context, s CountableListSpec, keywords SearchParams) (string, error)

func (*Client) Read

func (c *Client) Read(ctx context.Context, s Spec) (string, error)

func (*Client) SetRoundTripper added in v0.9.0

func (c *Client) SetRoundTripper(rt http.RoundTripper)

func (*Client) Update

func (c *Client) Update(ctx context.Context, s Spec, body interface{}) (string, error)

func (*Client) WatchList

func (c *Client) WatchList(ctx context.Context, interval time.Duration, s ListSpec, keyword SearchParams) error

ctx should set Deadline or Timeout interval must be grater than equals to 1s s is ListAble Spec.

func (*Client) WatchListAll

func (c *Client) WatchListAll(ctx context.Context, interval time.Duration, s CountableListSpec, keyword SearchParams) error

ctx should set Deadline or Timeout interval must be grater than equals to 1s s is CountableListSpec Spec.

func (*Client) WatchRead

func (c *Client) WatchRead(ctx context.Context, interval time.Duration, s Spec) error

ctx should set Deadline or Timeout interval must be grater than equals to 1s s is Readable Spec.

type ClientInterface added in v0.3.0

type ClientInterface interface {
	SetRoundTripper(rt http.RoundTripper)
	Read(ctx context.Context, s Spec) (string, error)
	List(ctx context.Context, s ListSpec, keywords SearchParams) (string, error)
	ListAll(ctx context.Context, s CountableListSpec, keywords SearchParams) (string, error)
	Count(ctx context.Context, s CountableListSpec, keywords SearchParams) (string, error)
	Update(ctx context.Context, s Spec, body interface{}) (string, error)
	Create(ctx context.Context, s Spec, body interface{}) (string, error)
	Apply(ctx context.Context, s Spec, body interface{}) (string, error)
	Delete(ctx context.Context, s Spec) (string, error)
	Cancel(ctx context.Context, s Spec) (string, error)
	WatchRead(ctx context.Context, interval time.Duration, s Spec) error
	WatchList(ctx context.Context, interval time.Duration, s ListSpec, keyword SearchParams) error
	WatchListAll(ctx context.Context, interval time.Duration, s CountableListSpec, keyword SearchParams) error
}

type CommonSearchParams

type CommonSearchParams struct {
	Type   SearchType `url:"type,omitempty"`
	Offset int32      `url:"offset,omitempty"`
	Limit  int32      `url:"limit,omitempty"`
}

func (*CommonSearchParams) GetLimit

func (k *CommonSearchParams) GetLimit() int32

func (*CommonSearchParams) GetOffset

func (k *CommonSearchParams) GetOffset() int32

func (*CommonSearchParams) GetType

func (k *CommonSearchParams) GetType() SearchType

func (*CommonSearchParams) GetValues

func (s *CommonSearchParams) GetValues() (url.Values, error)

func (*CommonSearchParams) SetLimit

func (k *CommonSearchParams) SetLimit(limit int32)

func (*CommonSearchParams) SetOffset

func (k *CommonSearchParams) SetOffset(offset int32)

func (*CommonSearchParams) SetType

func (k *CommonSearchParams) SetType(t SearchType)

type Count

type Count struct {
	Count int32 `read:"count" json:"-"`
}

func (*Count) GetCount

func (c *Count) GetCount() int32

func (*Count) SetCount

func (c *Count) SetCount(v int32)

type CountableListSpec

type CountableListSpec interface {
	ListSpec
	SetCount(int32)
	GetCount() int32
	GetMaxLimit() int32
	AddItem(interface{}) bool
	ClearItems()
}

func DeepCopyCountableListSpec added in v0.6.0

func DeepCopyCountableListSpec(s CountableListSpec) CountableListSpec

type ErrorDetail

type ErrorDetail struct {
	Code      string `read:"code"`
	Attribute string `read:"attribute"`
}

func (ErrorDetail) Error

func (e ErrorDetail) Error() string

type ErrorDetails

type ErrorDetails []ErrorDetail

func (ErrorDetails) Error

func (e ErrorDetails) Error() string

type Initializer

type Initializer interface {
	Init()
}

type JSONAPIAdapter added in v0.8.0

type JSONAPIAdapter struct {
	Read   jsoniter.API
	Update jsoniter.API
	Create jsoniter.API
	Apply  jsoniter.API
	JSON   jsoniter.API
}

func NewJSONAPIAdapter added in v0.8.0

func NewJSONAPIAdapter() *JSONAPIAdapter

func (*JSONAPIAdapter) MarshalApply added in v0.8.0

func (j *JSONAPIAdapter) MarshalApply(body interface{}) ([]byte, error)

Marshal for apply request.

func (*JSONAPIAdapter) MarshalCreate added in v0.8.0

func (j *JSONAPIAdapter) MarshalCreate(body interface{}) ([]byte, error)

Marshal for create request.

func (*JSONAPIAdapter) MarshalOutput added in v0.8.0

func (j *JSONAPIAdapter) MarshalOutput(spec Spec) ([]byte, error)

Marshal for file format.

func (*JSONAPIAdapter) MarshalUpdate added in v0.8.0

func (j *JSONAPIAdapter) MarshalUpdate(body interface{}) ([]byte, error)

Marshal for update request.

func (*JSONAPIAdapter) UnMarshalInput added in v0.8.0

func (j *JSONAPIAdapter) UnMarshalInput(bs []byte, obj Object) error

UnMarshal for file format.

func (*JSONAPIAdapter) UnmarshalRead added in v0.8.0

func (j *JSONAPIAdapter) UnmarshalRead(bs []byte, o interface{}) error

Unmarshal api response.

type JSONAPIInterface added in v0.8.0

type JSONAPIInterface interface {
	UnmarshalRead(bs []byte, o interface{}) error
	MarshalCreate(body interface{}) ([]byte, error)
	MarshalUpdate(body interface{}) ([]byte, error)
	MarshalApply(body interface{}) ([]byte, error)
}

type JSONFileInterface added in v0.8.0

type JSONFileInterface interface {
	MarshalOutput(spec Spec) ([]byte, error)
	UnMarshalInput(bs []byte, obj Object) error
}

type KeywordsBoolean

type KeywordsBoolean []types.Boolean

+k8s:deepcopy-gen=false

func (KeywordsBoolean) EncodeValues

func (c KeywordsBoolean) EncodeValues(key string, v *url.Values) error

type KeywordsFavorite

type KeywordsFavorite []types.Favorite

+k8s:deepcopy-gen=false

func (KeywordsFavorite) EncodeValues

func (c KeywordsFavorite) EncodeValues(key string, v *url.Values) error

type KeywordsID added in v0.6.1

type KeywordsID []int64

+k8s:deepcopy-gen=false

func (KeywordsID) Validate added in v0.6.1

func (s KeywordsID) Validate() bool

type KeywordsLabels added in v0.8.0

type KeywordsLabels []Label

+k8s:deepcopy-gen=false

func (KeywordsLabels) EncodeValues added in v0.8.0

func (c KeywordsLabels) EncodeValues(key string, v *url.Values) error

type KeywordsState

type KeywordsState []types.State

+k8s:deepcopy-gen=false

func (KeywordsState) EncodeValues

func (c KeywordsState) EncodeValues(key string, v *url.Values) error

type KeywordsString

type KeywordsString []string

+k8s:deepcopy-gen=false

func (KeywordsString) Validate

func (s KeywordsString) Validate() bool

type Label added in v0.8.0

type Label struct {
	Key   string
	Value string
}

func (Label) String added in v0.8.0

func (l Label) String() string

type ListSpec

type ListSpec interface {
	Spec
	Initializer
	GetItems() interface{}
	Len() int
	Index(int) interface{}
}

func DeepCopyListSpec added in v0.6.0

func DeepCopyListSpec(s ListSpec) ListSpec

type Logger

type Logger interface {
	Tracef(format string, args ...interface{})
	Debugf(format string, args ...interface{})
	Infof(format string, args ...interface{})
	Errorf(format string, args ...interface{})
}

logger interface.

type Object

type Object interface {
	DeepCopyObject() Object
}

type OutputFrame

type OutputFrame struct {
	meta.KindVersion `json:",inline"`
	Resource         Object `json:"resource"`
}

file format frame.

type RateRoundTripper added in v0.9.0

type RateRoundTripper struct {
	RroundTripper http.RoundTripper
	Limiter       *rate.Limiter
}

func NewRateRoundTripper added in v0.9.0

func NewRateRoundTripper(rt http.RoundTripper, limiter *rate.Limiter) *RateRoundTripper

func (*RateRoundTripper) RoundTrip added in v0.9.0

func (r *RateRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

type RawResponse

type RawResponse struct {
	ResponseCommon `read:",inline"`
	Result         json.RawMessage `read:"result,omitempty"`
	Results        json.RawMessage `read:"results,omitempty"`
}

type RequestInfo

type RequestInfo struct {
	Method string
	URL    string
	Body   []byte
}

type ResponseCommon

type ResponseCommon struct {
	RequestID string `read:"request_id"`
}

type ResponseInfo

type ResponseInfo struct {
	Response *http.Response
	Body     []byte
}

type RowSearchParams

type RowSearchParams struct {
	url.Values
}

func NewRowSearchParams

func NewRowSearchParams(queryString string) (*RowSearchParams, error)

func (RowSearchParams) GetLimit

func (r RowSearchParams) GetLimit() int32

func (RowSearchParams) GetOffset

func (r RowSearchParams) GetOffset() int32

func (*RowSearchParams) GetValues

func (r *RowSearchParams) GetValues() (url.Values, error)

func (RowSearchParams) SetLimit

func (r RowSearchParams) SetLimit(limit int32)

func (RowSearchParams) SetOffset

func (r RowSearchParams) SetOffset(offset int32)

type SearchDate

type SearchDate time.Time

+k8s:deepcopy-gen=false

type SearchLimit

type SearchLimit int32

+k8s:deepcopy-gen=false

func (SearchLimit) Validate

func (s SearchLimit) Validate() bool

type SearchOffset

type SearchOffset int32

+k8s:deepcopy-gen=false

func (SearchOffset) Validate

func (s SearchOffset) Validate() bool

type SearchOrder

type SearchOrder string

+k8s:deepcopy-gen=false

const (
	SearchOrderASC  SearchOrder = "ASC"
	SearchOrderDESC SearchOrder = "DESC"
)

func (SearchOrder) Validate

func (s SearchOrder) Validate() bool

type SearchParams

type SearchParams interface {
	GetValues() (url.Values, error)
	GetOffset() int32
	SetOffset(int32)
	GetLimit() int32
	SetLimit(int32)
}

type SearchType

type SearchType string

+k8s:deepcopy-gen=false

const (
	SearchTypeAND SearchType = "AND"
	SearchTypeOR  SearchType = "OR"
)

func (SearchType) Validate

func (s SearchType) Validate() bool

type Spec

type Spec interface {
	Object
	GetName() string
	GetGroup() string
	GetPathMethod(Action) (string, string)
}

func DeepCopySpec added in v0.6.0

func DeepCopySpec(s Spec) Spec

type StdLogger

type StdLogger struct {
	*log.Logger
	LogLevel int
}

simple logger change better logger as you like.

func NewStdLogger added in v0.3.0

func NewStdLogger(out io.Writer, prefix string, flag int, level int) *StdLogger

func (*StdLogger) Debugf

func (s *StdLogger) Debugf(format string, args ...interface{})

func (*StdLogger) Errorf

func (s *StdLogger) Errorf(format string, args ...interface{})

func (*StdLogger) Infof

func (s *StdLogger) Infof(format string, args ...interface{})

func (*StdLogger) Tracef

func (s *StdLogger) Tracef(format string, args ...interface{})

Jump to

Keyboard shortcuts

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