bac

package module
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2026 License: MIT Imports: 18 Imported by: 0

README

Baidu BAC Go SDK

Idiomatic Go SDK for 百度智能云「云手机 BAC」Open API.

Official API documentation: https://cloud.baidu.com/doc/ARMCM/s/2kei7tyr3

Default API base URL: https://platform.armvm.com.

Features

  • Standard-library-only runtime implementation.
  • Automatic BAC query signing and encrypted msg request envelope.
  • Context-aware HTTP calls with configurable base URL, timeout, HTTP client, auth version, and logger.
  • Typed wrappers for the official Open API paths plus low-level Do for forward compatibility.
  • Structured APIError, HTTPError, and DecodeError values.
  • Unit tests and httptest coverage with no dependency on real Baidu credentials.

Install

go get github.com/feymanlee/bac-client

Quick Start

package main

import (
	"context"
	"log"
	"os"
	"time"

	bac "github.com/feymanlee/bac-client"
)

func main() {
	client, err := bac.NewClient(
		os.Getenv("BAC_APP_KEY"),
		os.Getenv("BAC_APP_SECRET"),
		os.Getenv("BAC_DES_KEY"),
		bac.WithTimeout(15*time.Second),
	)
	if err != nil {
		log.Fatal(err)
	}

	ctx := context.Background()
	page, err := client.ListInstances(ctx, &bac.ListInstancesRequest{
		PageRequest: bac.PageRequest{Page: 1},
		Rows:        20,
	})
	if err != nil {
		log.Fatal(err)
	}

	for _, instance := range page.PageData {
		log.Printf("instance=%s instanceIp=%s deviceIp=%s", instance.InstanceCode, instance.InstanceIP, instance.DeviceIP)
	}
}

Never commit real appKey, appSecret, or desKey. Use environment variables or a secret manager.

Base URLs

The default endpoint is:

https://platform.armvm.com

Use WithBaseURL for other BAC environments:

client, err := bac.NewClient(appKey, appSecret, desKey,
	bac.WithBaseURL("https://oversea-platform.armvm.com"),
)

Client Options

  • WithBaseURL(string) sets a custom endpoint, useful for tests or proxying.
  • WithHTTPClient(*http.Client) injects a caller-owned HTTP client.
  • WithTimeout(time.Duration) sets the default client timeout when no timeout is already configured.
  • WithAuthVersion(string) overrides the default auth_ver, which is 3.
  • WithLogger(*slog.Logger) and WithDebug(bool) enable opt-in structured debug logging. The SDK never prints by itself.

Every public API method accepts context.Context.

Low-Level Do

Use Do for endpoints that do not yet have a typed wrapper:

var out struct {
	TaskID bac.FlexibleString `json:"taskId"`
}

err := client.Do(ctx, "/resources/instance/backup",
	map[string]string{"instanceId": "your-instance-id"},
	&out,
)

Do automatically:

  • Adds query parameters appkey, auth_ver, nonce, and s.
  • Signs with MD5("appkey" + appKey + "auth_ver" + authVer + "nonce" + nonce + appSecret).
  • Marshals the real request to JSON, encrypts it with 3DES-CBC using desKey[:24], nonce as a big-endian 8-byte IV, and PKCS5/PKCS7 padding.
  • Sends POST with Content-Type: application/json.
  • Decodes { "code": 0, "msg": "OK", "data": ..., "ts": ... }.

Errors

var apiErr *bac.APIError
var httpErr *bac.HTTPError
var decodeErr *bac.DecodeError

switch {
case errors.As(err, &apiErr):
	log.Printf("BAC error: code=%d message=%s ts=%s", apiErr.Code, apiErr.Message, apiErr.Timestamp)
case errors.As(err, &httpErr):
	log.Printf("HTTP error: status=%s", httpErr.Status)
case errors.As(err, &decodeErr):
	log.Printf("decode error: %v", decodeErr.Err)
}

APIError.RawBody, HTTPError.RawBody, and DecodeError.RawBody keep the full response body for diagnostics. Treat these bytes as sensitive: responses may contain server tokens, SSH credentials, generated passwords, or business data. Redact or truncate before writing them to logs.

Implemented Typed APIs

  • Auth/session: GetServerToken, GetAuthorizedServerToken, AuthorizedConnect, DisconnectInstance, BatchDisconnectInstances, DisconnectAllInstances.
  • Instance query and actions: ListInstances, GetInstanceDeviceInfo, UploadFile, DownloadFile, BackupInstance, RestoreInstance, SwitchSessionControl, SetResolution, RebootInstance, RebootDevice, ResetDevice, NewPad, CleanAppCache, BatchExecuteScript, GetBindInfos, GetSSHInfo, GetScreenshotURL, DestroyScreenshotURL, StopEventTasks, SetSpeed, SetMemoryLimit, CopyInstanceData.
  • Apps and commands: InstallApp, UninstallApp, OperateApp, StartApp, StopApp, Screenshot, GetScreenshotResult, ExecuteScript, UploadApps, ListApps, DeleteApp, NewAppVersion, UpgradeApp, ListInstalledApps.
  • Tasks: GetTaskResult, ListTaskResults, ListTaskTypes.
  • Images: ListBaseImages, ListInstanceImages, UploadImage, GetImageUploadInfo, UpdateImage, GetImageUpdateInfo, RemoveImage.
  • Monitoring, merchant, pool, tag, and snapshot APIs: see docs/endpoints.md for the full coverage table.

Additional documentation:

Extending New Endpoints

  1. Add request and response structs with JSON tags matching the official document.
  2. Add the path constant in the matching endpoints_*.go file.
  3. Add a one-layer method wrapper:
func (c *Client) SomeAction(ctx context.Context, req *SomeActionRequest) (*SomeActionResponse, error) {
	var resp SomeActionResponse
	if err := c.Do(ctx, "/official/path", req, &resp); err != nil {
		return nil, err
	}
	return &resp, nil
}

Use FlexibleString for fields that the document or service may return as either JSON number or string.

Most official list APIs use page and rows. Prefer request-specific Rows fields, for example ListInstancesRequest{PageRequest: bac.PageRequest{Page: 1}, Rows: 20}.

Tests

Tests use httptest and do not call the real Baidu service:

go test ./...
go vet ./...

The GitHub Actions workflow in .github/workflows/ci.yml runs formatting checks, go test ./..., and go vet ./... on pushes and pull requests.

License

This project is licensed under the MIT License. See LICENSE.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrMissingAppKey    = errors.New("bac: app key is required")
	ErrMissingAppSecret = errors.New("bac: app secret is required")
	ErrInvalidDESKey    = errors.New("bac: invalid des key")
)

Functions

func EncryptMessage

func EncryptMessage(plainJSON []byte, desKey string, nonce int64) (string, error)

EncryptMessage encrypts a marshaled request JSON payload as BAC msg.

func Sign

func Sign(appKey, appSecret, authVersion, nonce string) string

Sign returns the BAC Open API signature for the public query parameters.

Types

type APIError

type APIError struct {
	Code      int
	Message   string
	Timestamp FlexibleString
	RawBody   []byte
}

func (*APIError) Error

func (e *APIError) Error() string

type AddSubMerchantRequest

type AddSubMerchantRequest struct {
	ParentMerchantCode string `json:"parentMerchantCode,omitempty"`
	MerchantCode       string `json:"merchantCode,omitempty"`
	MerchantName       string `json:"merchantName,omitempty"`
	MerchantType       string `json:"merchantType,omitempty"`
	MerchantPhone      string `json:"merchantPhone,omitempty"`
	AdminUserName      string `json:"adminUserName,omitempty"`
	AdminPhone         string `json:"adminPhone,omitempty"`
}

type AddSubMerchantResponse added in v0.2.0

type AddSubMerchantResponse struct {
	AdminPassword string    `json:"adminPassword,omitempty"`
	Raw           RawObject `json:"-"`
}

func (*AddSubMerchantResponse) UnmarshalJSON added in v0.2.0

func (r *AddSubMerchantResponse) UnmarshalJSON(data []byte) error

type AlarmStrategy

type AlarmStrategy struct {
	AlarmStrategyID      FlexibleString `json:"alarmStrategyId,omitempty"`
	AlarmStrategyName    string         `json:"alarmStrategyName,omitempty"`
	AlarmStrategyDesc    string         `json:"alarmStrategyDesc,omitempty"`
	IDCNames             []string       `json:"idcNames,omitempty"`
	AlarmResourceType    string         `json:"alarmResourceType,omitempty"`
	AlarmMetrics         string         `json:"alarmMetrics,omitempty"`
	AlarmThreshold       FlexibleString `json:"alarmThreshold,omitempty"`
	AlarmSilencePeriod   FlexibleString `json:"alarmSilencePeriod,omitempty"`
	SMSNotifyStatus      FlexibleString `json:"smsNotifyStatus,omitempty"`
	SMSNotifyObjects     []string       `json:"smsNotifyObjects,omitempty"`
	CallbackNotifyStatus FlexibleString `json:"callbackNotifyStatus,omitempty"`
	EnableStatus         FlexibleString `json:"enableStatus,omitempty"`
	CreateTime           FlexibleString `json:"createTime,omitempty"`
	Raw                  RawObject      `json:"-"`
}

func (*AlarmStrategy) UnmarshalJSON

func (a *AlarmStrategy) UnmarshalJSON(data []byte) error

type AlarmStrategyRequest

type AlarmStrategyRequest struct {
	AlarmStrategyID      FlexibleString `json:"alarmStrategyId,omitempty"`
	AlarmStrategyName    string         `json:"alarmStrategyName,omitempty"`
	AlarmStrategyDesc    string         `json:"alarmStrategyDesc,omitempty"`
	AlarmResourceType    string         `json:"alarmResourceType,omitempty"`
	IDCCodes             []string       `json:"idcCodes,omitempty"`
	AlarmMetrics         string         `json:"alarmMetrics,omitempty"`
	AlarmThreshold       int            `json:"alarmThreshold,omitempty"`
	AlarmSilencePeriod   int            `json:"alarmSilencePeriod,omitempty"`
	SMSNotifyStatus      *int           `json:"smsNotifyStatus,omitempty"`
	SMSNotifyObjects     []string       `json:"smsNotifyObjects,omitempty"`
	CallbackNotifyStatus *int           `json:"callbackNotifyStatus,omitempty"`
	EnableStatus         *int           `json:"enableStatus,omitempty"`
	Page                 int            `json:"page,omitempty"`
	Rows                 int            `json:"rows,omitempty"`
}

type AppInfo

type AppInfo struct {
	AppID               FlexibleString `json:"appId,omitempty"`
	AppName             string         `json:"appName,omitempty"`
	AppPackage          string         `json:"appPackage,omitempty"`
	VersionName         string         `json:"versionName,omitempty"`
	AppTaskStatus       FlexibleString `json:"appTaskStatus,omitempty"`
	SyncStatus          FlexibleString `json:"syncStatus,omitempty"`
	ReleaseMarketStatus FlexibleString `json:"releaseMarketStatus,omitempty"`
	MD5Sum              string         `json:"md5sum,omitempty"`
	Raw                 RawObject      `json:"-"`
}

func (*AppInfo) UnmarshalJSON

func (a *AppInfo) UnmarshalJSON(data []byte) error

type AppInstallListRequest

type AppInstallListRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
}

type AppMetricTop added in v0.4.0

type AppMetricTop struct {
	AppName        string        `json:"appName,omitempty"`
	MetricInfoList []MetricPoint `json:"metricInfoList,omitempty"`
	Raw            RawObject     `json:"-"`
}

func (*AppMetricTop) UnmarshalJSON added in v0.4.0

func (a *AppMetricTop) UnmarshalJSON(data []byte) error

type AppOperateRequest

type AppOperateRequest struct {
	PadCodes    []string `json:"padCodes,omitempty"`
	PackageName string   `json:"packageName,omitempty"`
	OperateType string   `json:"operateType,omitempty"`
}

type AppVersionRequest

type AppVersionRequest struct {
	AppID          FlexibleString `json:"appId,omitempty"`
	AppName        string         `json:"appName,omitempty"`
	AppPackageName string         `json:"appPackageName,omitempty"`
	AppURL         string         `json:"appUrl,omitempty"`
}

type AppVersionResponse added in v0.3.0

type AppVersionResponse struct {
	ApplicationVersionID FlexibleString `json:"applicationVersionId,omitempty"`
	AppID                FlexibleString `json:"appId,omitempty"`
	Raw                  RawObject      `json:"-"`
}

func (*AppVersionResponse) UnmarshalJSON added in v0.3.0

func (r *AppVersionResponse) UnmarshalJSON(data []byte) error

type AuthorizedConnectRequest

type AuthorizedConnectRequest struct {
	UUID         string `json:"uuid,omitempty"`
	InstanceCode string `json:"instanceCode,omitempty"`
	OnlineTime   int    `json:"onlineTime"`
	GrantControl string `json:"grantControl,omitempty"`
}

type AuthorizedConnectResponse

type AuthorizedConnectResponse struct {
	ServerToken    string          `json:"serverToken,omitempty"`
	InstanceCode   string          `json:"instanceCode,omitempty"`
	StreamModeList []string        `json:"streamModeList,omitempty"`
	SessionID      string          `json:"sessionId,omitempty"`
	ConnData       json.RawMessage `json:"connData,omitempty"`
	URL            string          `json:"url,omitempty"`
	ServerURL      string          `json:"serverUrl,omitempty"`
	ExpireTime     FlexibleString  `json:"expireTime,omitempty"`
	Raw            RawObject       `json:"-"`
}

func (*AuthorizedConnectResponse) UnmarshalJSON

func (r *AuthorizedConnectResponse) UnmarshalJSON(data []byte) error

type BackupInstanceRequest

type BackupInstanceRequest struct {
	InstanceCode string    `json:"instanceCode,omitempty"`
	SnapshotName string    `json:"snapshotName,omitempty"`
	OSSConfig    OSSConfig `json:"ossConfig,omitempty"`
	SnapshotPath string    `json:"snapshotPath,omitempty"`
	Excludes     []string  `json:"excludes,omitempty"`
	Includes     []string  `json:"includes,omitempty"`
}

type BackupInstanceResponse

type BackupInstanceResponse struct {
	TaskID       FlexibleString `json:"taskId,omitempty"`
	InstanceCode string         `json:"instanceCode,omitempty"`
	SnapshotID   FlexibleString `json:"snapshotId,omitempty"`
	SnapshotName string         `json:"snapshotName,omitempty"`
	Raw          RawObject      `json:"-"`
}

func (*BackupInstanceResponse) UnmarshalJSON

func (r *BackupInstanceResponse) UnmarshalJSON(data []byte) error

type BaseImageInfo added in v0.3.0

type BaseImageInfo struct {
	ImageVersionID     FlexibleString `json:"imageVersionId,omitempty"`
	ImageVersionName   string         `json:"imageVersionName,omitempty"`
	InstanceServerType string         `json:"instanceServerType,omitempty"`
	RomVersion         string         `json:"romVersion,omitempty"`
	CreateTime         FlexibleString `json:"createTime,omitempty"`
	Raw                RawObject      `json:"-"`
}

func (*BaseImageInfo) UnmarshalJSON added in v0.3.0

func (i *BaseImageInfo) UnmarshalJSON(data []byte) error

type BatchDisconnectInstancesRequest

type BatchDisconnectInstancesRequest struct {
	DisconnectList []DisconnectCredential `json:"disconnectList,omitempty"`
}

type BatchDisconnectResponse

type BatchDisconnectResponse struct {
	SuccessList []string      `json:"successList,omitempty"`
	FailList    []TaskFailure `json:"failList,omitempty"`
	Raw         RawObject     `json:"-"`
}

func (*BatchDisconnectResponse) UnmarshalJSON

func (r *BatchDisconnectResponse) UnmarshalJSON(data []byte) error

type BatchExecuteScriptRequest

type BatchExecuteScriptRequest struct {
	Scripts []InstanceScript `json:"scripts,omitempty"`
}

type BatchMountDUFSSnapshotRequest added in v0.2.0

type BatchMountDUFSSnapshotRequest struct {
	SnapshotMountInfos []SnapshotMountInfo `json:"snapshotMountInfos,omitempty"`
}

type BatchTaskResponse

type BatchTaskResponse struct {
	SuccessList []TaskResponse `json:"successList,omitempty"`
	FailList    []TaskFailure  `json:"failList,omitempty"`
	Raw         RawObject      `json:"-"`
}

func (*BatchTaskResponse) UnmarshalJSON

func (r *BatchTaskResponse) UnmarshalJSON(data []byte) error

type BindInfo

type BindInfo struct {
	InstanceCode        string         `json:"instanceCode,omitempty"`
	ServerToken         string         `json:"serverToken,omitempty"`
	UUID                string         `json:"uuid,omitempty"`
	BusinessType        string         `json:"businessType,omitempty"`
	BindTime            FlexibleString `json:"bindTime,omitempty"`
	ExpireTime          FlexibleString `json:"expireTime,omitempty"`
	ControlStatus       string         `json:"controlStatus,omitempty"`
	GrantControl        string         `json:"grantControl,omitempty"`
	InstanceControlTime FlexibleString `json:"instanceControlTime,omitempty"`
	Raw                 RawObject      `json:"-"`
}

func (*BindInfo) UnmarshalJSON

func (b *BindInfo) UnmarshalJSON(data []byte) error

type BindInfosRequest

type BindInfosRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
}

type BuiltinAppRequest

type BuiltinAppRequest struct {
	InstanceCodes []string       `json:"instanceCodes,omitempty"`
	AppID         FlexibleString `json:"appId,omitempty"`
}

type CleanAppCacheRequest added in v0.2.0

type CleanAppCacheRequest struct {
	DeviceIPs []string `json:"DeviceIps,omitempty"`
}

type Client

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

func NewClient

func NewClient(appKey, appSecret, desKey string, opts ...Option) (*Client, error)

func (*Client) AddAlarmStrategy

func (c *Client) AddAlarmStrategy(ctx context.Context, req *AlarmStrategyRequest) error

func (*Client) AddInstanceTagRelation

func (c *Client) AddInstanceTagRelation(ctx context.Context, req *InstanceTagRequest) error

func (*Client) AddSubMerchant

func (c *Client) AddSubMerchant(ctx context.Context, req *AddSubMerchantRequest) (*AddSubMerchantResponse, error)

func (*Client) AllocateInstancePool

func (c *Client) AllocateInstancePool(ctx context.Context, req *InstancePoolRequest) error

func (*Client) AuthorizedConnect

func (c *Client) AuthorizedConnect(ctx context.Context, req *AuthorizedConnectRequest) (*AuthorizedConnectResponse, error)

func (*Client) BackupInstance

func (c *Client) BackupInstance(ctx context.Context, req *BackupInstanceRequest) (*BackupInstanceResponse, error)

func (*Client) BatchDisconnectInstances

func (c *Client) BatchDisconnectInstances(ctx context.Context, req *BatchDisconnectInstancesRequest) (*BatchDisconnectResponse, error)

func (*Client) BatchExecuteScript

func (c *Client) BatchExecuteScript(ctx context.Context, req *BatchExecuteScriptRequest) (*BatchTaskResponse, error)

func (*Client) BatchMountDUFSSnapshot

func (c *Client) BatchMountDUFSSnapshot(ctx context.Context, req *BatchMountDUFSSnapshotRequest) ([]TaskResponse, error)

func (*Client) BuiltinInstallApp

func (c *Client) BuiltinInstallApp(ctx context.Context, req *BuiltinAppRequest) (*BatchTaskResponse, error)

func (*Client) BuiltinUninstallApp

func (c *Client) BuiltinUninstallApp(ctx context.Context, req *BuiltinAppRequest) (*BatchTaskResponse, error)

func (*Client) CleanAppCache

func (c *Client) CleanAppCache(ctx context.Context, req *CleanAppCacheRequest) ([]TaskResponse, error)

func (*Client) CommandReboot

func (c *Client) CommandReboot(ctx context.Context, req *InstanceActionRequest) ([]TaskResponse, error)

func (*Client) CommandReset

func (c *Client) CommandReset(ctx context.Context, req *InstanceActionRequest) ([]TaskResponse, error)

func (*Client) CopyInstanceData

func (c *Client) CopyInstanceData(ctx context.Context, req *DataCopyRequest) ([]DataCopyResponse, error)

func (*Client) CreateNetworkProxyWorkflow

func (c *Client) CreateNetworkProxyWorkflow(ctx context.Context, req *NetworkProxyWorkflowRequest) ([]TaskResponse, error)

func (*Client) DeleteApp

func (c *Client) DeleteApp(ctx context.Context, req *DeleteAppRequest) error

func (*Client) DeployMarketingSuite

func (c *Client) DeployMarketingSuite(ctx context.Context, req *DeployMarketingSuiteRequest) ([]TaskResponse, error)

func (*Client) DestroyScreenshotURL

func (c *Client) DestroyScreenshotURL(ctx context.Context, req *DestroyScreenshotURLRequest) error

func (*Client) DisconnectAllInstances

func (c *Client) DisconnectAllInstances(ctx context.Context, req *DisconnectAllInstancesRequest) error

func (*Client) DisconnectInstance

func (c *Client) DisconnectInstance(ctx context.Context, req *DisconnectInstanceRequest) error

func (*Client) Do

func (c *Client) Do(ctx context.Context, path string, req any, resp any, opts ...RequestOption) error

func (*Client) DownloadFile

func (c *Client) DownloadFile(ctx context.Context, req *DownloadFileRequest) (*BatchTaskResponse, error)

func (*Client) ExecuteScript

func (c *Client) ExecuteScript(ctx context.Context, req *ExecuteScriptRequest) ([]TaskResponse, error)

func (*Client) ExportIP

func (c *Client) ExportIP(ctx context.Context, req *ExportIPRequest) ([]ExportIPResult, error)

func (*Client) GetAuthorizedServerToken

func (c *Client) GetAuthorizedServerToken(ctx context.Context, req *GetAuthorizedServerTokenRequest) (*ServerTokenResponse, error)

func (*Client) GetAvailablePadCount

func (c *Client) GetAvailablePadCount(ctx context.Context, req *PadCountRequest) (*PadAvailableCount, error)

func (*Client) GetBindInfos

func (c *Client) GetBindInfos(ctx context.Context, req *BindInfosRequest) ([]BindInfo, error)

func (*Client) GetDesktopIconConfig

func (c *Client) GetDesktopIconConfig(ctx context.Context, req *GetDesktopIconConfigRequest) ([]DesktopIconConfig, error)

func (*Client) GetDeviceMonitorInfo

func (c *Client) GetDeviceMonitorInfo(ctx context.Context, req *DeviceMonitorInfoRequest) ([]DeviceMonitorInfo, error)

func (*Client) GetEnableBindPadCount

func (c *Client) GetEnableBindPadCount(ctx context.Context, req *PadCountRequest) (*PadEnableBindCount, error)

func (*Client) GetImageUpdateInfo

func (c *Client) GetImageUpdateInfo(ctx context.Context, req *ImageUpdateInfoRequest) ([]ImageUpdateInfo, error)

func (*Client) GetImageUploadInfo

func (c *Client) GetImageUploadInfo(ctx context.Context, req *ImageUploadInfoRequest) (*ImageUploadInfo, error)

func (*Client) GetInstanceAppMonitorInfo

func (c *Client) GetInstanceAppMonitorInfo(ctx context.Context, req *InstanceAppMonitorInfoRequest) (*InstanceAppMonitorInfo, error)

func (*Client) GetInstanceDeviceInfo

func (c *Client) GetInstanceDeviceInfo(ctx context.Context, req *GetInstanceDeviceInfoRequest) ([]DeviceInfo, error)

func (*Client) GetInstanceMetricDetail

func (c *Client) GetInstanceMetricDetail(ctx context.Context, req *InstanceMetricDetailRequest) ([]InstanceMetricDetail, error)

func (*Client) GetInstanceMonitorInfo

func (c *Client) GetInstanceMonitorInfo(ctx context.Context, req *InstanceMonitorInfoRequest) ([]InstanceMonitorInfo, error)

func (*Client) GetMalfunctionStatistics

func (c *Client) GetMalfunctionStatistics(ctx context.Context, req *MalfunctionStatisticsRequest) ([]MalfunctionStatistic, error)

func (*Client) GetSSHInfo

func (c *Client) GetSSHInfo(ctx context.Context, req *SSHInfoRequest) (*SSHInfoResponse, error)

func (*Client) GetScreenshotResult

func (c *Client) GetScreenshotResult(ctx context.Context, req *ScreenshotResultRequest) ([]TaskResult, error)

func (*Client) GetScreenshotURL

func (c *Client) GetScreenshotURL(ctx context.Context, req *ScreenshotURLRequest) (*ScreenshotURLResponse, error)

func (*Client) GetServerToken

func (c *Client) GetServerToken(ctx context.Context, req *GetServerTokenRequest) (*ServerTokenResponse, error)

func (*Client) GetSummaryData

func (c *Client) GetSummaryData(ctx context.Context, req *SummaryDataRequest) (*SummaryData, error)

func (*Client) GetTaskResult

func (c *Client) GetTaskResult(ctx context.Context, req *GetTaskResultRequest) ([]TaskResult, error)

func (*Client) IncreaseExpireTime

func (c *Client) IncreaseExpireTime(ctx context.Context, req *IncreaseExpireTimeRequest) (*ExpireTimeResponse, error)

func (*Client) InitDUFSSnapshot

func (c *Client) InitDUFSSnapshot(ctx context.Context, req *InitDUFSSnapshotRequest) ([]TaskResponse, error)

func (*Client) InstallApp

func (c *Client) InstallApp(ctx context.Context, req *InstallAppRequest) ([]TaskResponse, error)

func (*Client) ListAlarmStrategies

func (c *Client) ListAlarmStrategies(ctx context.Context, req *AlarmStrategyRequest) (*Page[AlarmStrategy], error)

func (*Client) ListApps

func (c *Client) ListApps(ctx context.Context, req *ListAppsRequest) (*Page[AppInfo], error)

func (*Client) ListBaseImages

func (c *Client) ListBaseImages(ctx context.Context, req *ListBaseImagesRequest) (*Page[BaseImageInfo], error)

func (*Client) ListDUFSSnapshots

func (c *Client) ListDUFSSnapshots(ctx context.Context, req *ListDUFSSnapshotsRequest) (*Page[SnapshotInfo], error)

func (*Client) ListDevices

func (c *Client) ListDevices(ctx context.Context, req *ListDevicesRequest) (*Page[Device], error)

func (*Client) ListEmulationAuthCodes

func (c *Client) ListEmulationAuthCodes(ctx context.Context, req *ListEmulationAuthCodesRequest) (*Page[EmulationAuthCode], error)

func (*Client) ListInstalledApps

func (c *Client) ListInstalledApps(ctx context.Context, req *AppInstallListRequest) ([]InstalledAppList, error)

func (*Client) ListInstanceImages

func (c *Client) ListInstanceImages(ctx context.Context, req *ListInstanceImagesRequest) (*Page[InstanceImageInfo], error)

func (*Client) ListInstanceSnapshots

func (c *Client) ListInstanceSnapshots(ctx context.Context, req *ListInstanceSnapshotsRequest) (*Page[SnapshotInfo], error)

func (*Client) ListInstanceTags

func (c *Client) ListInstanceTags(ctx context.Context, req *InstanceTagRequest) (*Page[InstanceTag], error)

func (*Client) ListInstances

func (c *Client) ListInstances(ctx context.Context, req *ListInstancesRequest) (*Page[Instance], error)

func (*Client) ListNetworkBandwidth

func (c *Client) ListNetworkBandwidth(ctx context.Context, req *NetworkBandwidthRequest) (*NetworkBandwidthStats, error)

func (*Client) ListTaskResults

func (c *Client) ListTaskResults(ctx context.Context, req *ListTaskResultsRequest) (*Page[TaskResult], error)

func (*Client) ListTaskTypes

func (c *Client) ListTaskTypes(ctx context.Context, req any) ([]TaskType, error)

func (*Client) MountDUFSSnapshot

func (c *Client) MountDUFSSnapshot(ctx context.Context, req *MountDUFSSnapshotRequest) ([]TaskResponse, error)

func (*Client) NewAppVersion

func (c *Client) NewAppVersion(ctx context.Context, req *AppVersionRequest) (*AppVersionResponse, error)

func (*Client) NewPad

func (c *Client) NewPad(ctx context.Context, req *NewPadRequest) ([]TaskResponse, error)

func (*Client) OpenAccount

func (c *Client) OpenAccount(ctx context.Context, req *OpenAccountRequest) (*OpenAccountResponse, error)

func (*Client) OperateApp

func (c *Client) OperateApp(ctx context.Context, req *AppOperateRequest) ([]TaskResponse, error)

func (*Client) QueryDeviceMonitorInfo

func (c *Client) QueryDeviceMonitorInfo(ctx context.Context, req *DeviceMonitorInfoQueryRequest) ([]DeviceMonitorInfoHistory, error)

func (*Client) QueryFlow

func (c *Client) QueryFlow(ctx context.Context, req *QueryFlowRequest) (*QueryFlowResponse, error)

func (*Client) QueryFlowResult

func (c *Client) QueryFlowResult(ctx context.Context, req *QueryFlowResultRequest) (*QueryFlowResult, error)

func (*Client) RebootDevice

func (c *Client) RebootDevice(ctx context.Context, req *RebootDeviceRequest) ([]TaskResponse, error)

func (*Client) RebootInstance

func (c *Client) RebootInstance(ctx context.Context, req *InstanceActionRequest) ([]TaskResponse, error)

func (*Client) RefreshRecommendAppIcons

func (c *Client) RefreshRecommendAppIcons(ctx context.Context, req *RecommendAppIconRefreshRequest) (*BatchTaskResponse, error)

func (*Client) RemoveAlarmStrategy

func (c *Client) RemoveAlarmStrategy(ctx context.Context, req *RemoveAlarmStrategyRequest) error

func (*Client) RemoveDUFSSnapshot

func (c *Client) RemoveDUFSSnapshot(ctx context.Context, req *RemoveDUFSSnapshotRequest) error

func (*Client) RemoveDesktopIconConfig

func (c *Client) RemoveDesktopIconConfig(ctx context.Context, req *RemoveDesktopIconConfigRequest) error

func (*Client) RemoveImage

func (c *Client) RemoveImage(ctx context.Context, req *RemoveImageRequest) error

func (*Client) RemoveInstanceTag

func (c *Client) RemoveInstanceTag(ctx context.Context, req *InstanceTagRequest) error

func (*Client) RemoveInstanceTagRelation

func (c *Client) RemoveInstanceTagRelation(ctx context.Context, req *InstanceTagRequest) error

func (*Client) ResetDevice

func (c *Client) ResetDevice(ctx context.Context, req *InstanceActionRequest) ([]TaskResponse, error)

func (*Client) RestoreInstance

func (c *Client) RestoreInstance(ctx context.Context, req *RestoreInstanceRequest) ([]TaskResponse, error)

func (*Client) SaveDesktopIconConfig

func (c *Client) SaveDesktopIconConfig(ctx context.Context, req *SaveDesktopIconConfigRequest) error

func (*Client) SaveInstancePool

func (c *Client) SaveInstancePool(ctx context.Context, req *SaveInstancePoolRequest) (*SaveInstancePoolResponse, error)

func (*Client) SaveInstanceTag

func (c *Client) SaveInstanceTag(ctx context.Context, req *InstanceTagRequest) (*SaveInstanceTagResponse, error)

func (*Client) Screenshot

func (c *Client) Screenshot(ctx context.Context, req *ScreenshotRequest) ([]TaskResponse, error)

func (*Client) SetDUFSSnapshotQuota

func (c *Client) SetDUFSSnapshotQuota(ctx context.Context, req *SetDUFSSnapshotQuotaRequest) ([]TaskResponse, error)

func (*Client) SetMemoryLimit

func (c *Client) SetMemoryLimit(ctx context.Context, req *MemoryLimitRequest) (*BatchTaskResponse, error)

func (*Client) SetResolution

func (c *Client) SetResolution(ctx context.Context, req *SetResolutionRequest) ([]TaskResponse, error)

func (*Client) SetSpeed

func (c *Client) SetSpeed(ctx context.Context, req *SetSpeedRequest) (*BatchTaskResponse, error)

func (*Client) StartApp

func (c *Client) StartApp(ctx context.Context, req *AppOperateRequest) ([]TaskResponse, error)

func (*Client) StopApp

func (c *Client) StopApp(ctx context.Context, req *AppOperateRequest) ([]TaskResponse, error)

func (*Client) StopEventTasks

func (c *Client) StopEventTasks(ctx context.Context, req *StopEventTasksRequest) error

func (*Client) SwitchSessionControl

func (c *Client) SwitchSessionControl(ctx context.Context, req *SessionControlSwitchRequest) ([]SessionControlSwitchFailure, error)

func (*Client) UninstallApp

func (c *Client) UninstallApp(ctx context.Context, req *UninstallAppRequest) ([]TaskResponse, error)

func (*Client) UnmountDUFSSnapshot

func (c *Client) UnmountDUFSSnapshot(ctx context.Context, req *UnmountDUFSSnapshotRequest) ([]TaskResponse, error)

func (*Client) UpdateAlarmStrategy

func (c *Client) UpdateAlarmStrategy(ctx context.Context, req *AlarmStrategyRequest) error

func (*Client) UpdateAlarmStrategyEnableStatus

func (c *Client) UpdateAlarmStrategyEnableStatus(ctx context.Context, req *UpdateAlarmStrategyEnableStatusRequest) error

func (*Client) UpdateCustomCode

func (c *Client) UpdateCustomCode(ctx context.Context, req *CustomCodeUpdateRequest) (*BatchTaskResponse, error)

func (*Client) UpdateDeviceImage

func (c *Client) UpdateDeviceImage(ctx context.Context, req *DeviceImageUpdateRequest) ([]DeviceImageUpdateResult, error)

func (*Client) UpdateExpireTime

func (c *Client) UpdateExpireTime(ctx context.Context, req *UpdateExpireTimeRequest) (*ExpireTimeResponse, error)

func (*Client) UpdateImage

func (c *Client) UpdateImage(ctx context.Context, req *UpdateImageRequest) ([]TaskResponse, error)

func (*Client) UpdateInstanceTag

func (c *Client) UpdateInstanceTag(ctx context.Context, req *InstanceTagRequest) error

func (*Client) UpdateMaintainStatus

func (c *Client) UpdateMaintainStatus(ctx context.Context, req *MaintainStatusRequest) error

func (*Client) UpgradeApp

func (c *Client) UpgradeApp(ctx context.Context, req *AppVersionRequest) (*AppVersionResponse, error)

func (*Client) UploadApps

func (c *Client) UploadApps(ctx context.Context, req *UploadAppsRequest) error

func (*Client) UploadFile

func (c *Client) UploadFile(ctx context.Context, req *UploadFileRequest) ([]TaskResponse, error)

func (*Client) UploadImage

func (c *Client) UploadImage(ctx context.Context, req *UploadImageRequest) (*UploadImageResponse, error)

type Config

type Config struct {
	BaseURL     string
	AuthVersion string
	Timeout     time.Duration
	HTTPClient  *http.Client
	Logger      *slog.Logger
	Debug       bool
	NonceFunc   func() int64
}

type CustomCodeUpdateRequest

type CustomCodeUpdateRequest struct {
	InstanceCustomList []InstanceCustom `json:"instanceCustomList,omitempty"`
}

type DataCopyItem

type DataCopyItem struct {
	SourceInstanceCode string `json:"sourceInstanceCode,omitempty"`
	TargetInstanceCode string `json:"targetInstanceCode,omitempty"`
	IMEI               string `json:"imei,omitempty"`
	SerialNo           string `json:"serialno,omitempty"`
	WiFiMac            string `json:"wifimac,omitempty"`
	AndroidID          string `json:"androidid,omitempty"`
	Model              string `json:"model,omitempty"`
	Brand              string `json:"brand,omitempty"`
	Manufacturer       string `json:"manufacturer,omitempty"`
}

type DataCopyRequest

type DataCopyRequest struct {
	DataCopyList []DataCopyItem `json:"dataCopyList,omitempty"`
	Includes     []string       `json:"includes,omitempty"`
	Excludes     []string       `json:"excludes,omitempty"`
	Reset        bool           `json:"reset"`
}

type DataCopyResponse added in v0.3.0

type DataCopyResponse struct {
	SourceInstanceCode string         `json:"sourceInstanceCode,omitempty"`
	TargetInstanceCode string         `json:"targetInstanceCode,omitempty"`
	TaskID             FlexibleString `json:"taskId,omitempty"`
	Raw                RawObject      `json:"-"`
}

func (*DataCopyResponse) UnmarshalJSON added in v0.3.0

func (r *DataCopyResponse) UnmarshalJSON(data []byte) error

type DecodeError

type DecodeError struct {
	Err     error
	RawBody []byte
}

func (*DecodeError) Error

func (e *DecodeError) Error() string

func (*DecodeError) Unwrap

func (e *DecodeError) Unwrap() error

type DeleteAppRequest

type DeleteAppRequest struct {
	AppIDs []FlexibleString `json:"appIds,omitempty"`
}

type DeployMarketingSuiteRequest added in v0.2.0

type DeployMarketingSuiteRequest struct {
	InstanceCodes       []string `json:"instanceCodes,omitempty"`
	AuthCodes           []string `json:"authCodes,omitempty"`
	AppPackage          string   `json:"appPackage,omitempty"`
	UseMerchantAuthCode bool     `json:"useMerchantAuthCode,omitempty"`
}

type DesktopIconConfig added in v0.2.0

type DesktopIconConfig struct {
	InstanceCode string         `json:"instanceCode,omitempty"`
	AppID        FlexibleString `json:"appId,omitempty"`
	Container    int            `json:"container,omitempty"`
	Screen       int            `json:"screen,omitempty"`
	X            int            `json:"x,omitempty"`
	Y            int            `json:"y,omitempty"`
	Raw          RawObject      `json:"-"`
}

func (*DesktopIconConfig) UnmarshalJSON added in v0.2.0

func (r *DesktopIconConfig) UnmarshalJSON(data []byte) error

type DestroyScreenshotURLRequest added in v0.3.0

type DestroyScreenshotURLRequest struct {
	InstanceCode string `json:"instanceCode,omitempty"`
}

type Device added in v0.4.0

type Device struct {
	DeviceIP           string         `json:"deviceIp,omitempty"`
	DeviceIPSegment    string         `json:"deviceIpSegment,omitempty"`
	DeviceCode         string         `json:"deviceCode,omitempty"`
	IDCCode            string         `json:"idcCode,omitempty"`
	IDCName            string         `json:"idcName,omitempty"`
	InstanceServerType string         `json:"instanceServerType,omitempty"`
	RomVersion         string         `json:"romVersion,omitempty"`
	InstanceGrade      FlexibleString `json:"instanceGrade,omitempty"`
	InstanceGradeLimit FlexibleString `json:"instanceGradeLimit,omitempty"`
	AllocateTime       FlexibleString `json:"allocateTime,omitempty"`
	RecycleTime        FlexibleString `json:"recycleTime,omitempty"`
	MemoryModel        string         `json:"memoryModel,omitempty"`
	CPUModel           string         `json:"cpuModel,omitempty"`
	DiskModel          string         `json:"diskModel,omitempty"`
	DeviceStatus       int            `json:"deviceStatus,omitempty"`
	Raw                RawObject      `json:"-"`
}

func (*Device) UnmarshalJSON added in v0.4.0

func (d *Device) UnmarshalJSON(data []byte) error

type DeviceAppInstall added in v0.3.0

type DeviceAppInstall struct {
	AppID       FlexibleString `json:"appId,omitempty"`
	AppName     string         `json:"appName,omitempty"`
	PackageName string         `json:"packageName,omitempty"`
	VersionName string         `json:"versionName,omitempty"`
	AppIconURL  string         `json:"appIconUrl,omitempty"`
	Raw         RawObject      `json:"-"`
}

func (*DeviceAppInstall) UnmarshalJSON added in v0.3.0

func (a *DeviceAppInstall) UnmarshalJSON(data []byte) error

type DeviceImageUpdateRequest

type DeviceImageUpdateRequest struct {
	ImageVersionID    int            `json:"imageVersionId,omitempty"`
	DeviceIPs         []string       `json:"deviceIps,omitempty"`
	ConfigID          string         `json:"configId,omitempty"`
	ResourcePackageID FlexibleString `json:"resourcePackageId,omitempty"`
	Reset             bool           `json:"reset,omitempty"`
	AutoInstall       bool           `json:"autoInstall"`
}

type DeviceImageUpdateResult

type DeviceImageUpdateResult struct {
	DeviceIP string         `json:"deviceIp,omitempty"`
	TaskID   FlexibleString `json:"taskId,omitempty"`
	Raw      RawObject      `json:"-"`
}

func (*DeviceImageUpdateResult) UnmarshalJSON

func (r *DeviceImageUpdateResult) UnmarshalJSON(data []byte) error

type DeviceInfo

type DeviceInfo struct {
	InstanceCode   string             `json:"instanceCode,omitempty"`
	PadCode        string             `json:"padCode,omitempty"`
	StorageSum     FlexibleString     `json:"storageSum,omitempty"`
	StorageFree    FlexibleString     `json:"storageFree,omitempty"`
	AppInstallList []DeviceAppInstall `json:"appInstallList,omitempty"`
	InstanceID     string             `json:"instanceId,omitempty"`
	AndroidID      string             `json:"androidId,omitempty"`
	IMEI           string             `json:"imei,omitempty"`
	IMSI           string             `json:"imsi,omitempty"`
	Mac            string             `json:"mac,omitempty"`
	Status         FlexibleString     `json:"status,omitempty"`
	Raw            RawObject          `json:"-"`
}

func (*DeviceInfo) UnmarshalJSON

func (d *DeviceInfo) UnmarshalJSON(data []byte) error

type DeviceMonitorInfo

type DeviceMonitorInfo struct {
	DeviceIP    string         `json:"deviceIp,omitempty"`
	RecordTime  FlexibleString `json:"recordTime,omitempty"`
	CPURate     float64        `json:"cpuRate,omitempty"`
	GPURate     float64        `json:"gpuRate,omitempty"`
	MemRate     float64        `json:"memRate,omitempty"`
	StorageRate float64        `json:"storageRate,omitempty"`
	Raw         RawObject      `json:"-"`
}

func (*DeviceMonitorInfo) UnmarshalJSON

func (d *DeviceMonitorInfo) UnmarshalJSON(data []byte) error

type DeviceMonitorInfoHistory added in v0.4.0

type DeviceMonitorInfoHistory struct {
	DeviceIP    string        `json:"deviceIp,omitempty"`
	IOLoadRate  []MetricPoint `json:"ioLoadRate,omitempty"`
	CPULoadRate []MetricPoint `json:"cpuLoadRate,omitempty"`
	Raw         RawObject     `json:"-"`
}

func (*DeviceMonitorInfoHistory) UnmarshalJSON added in v0.4.0

func (d *DeviceMonitorInfoHistory) UnmarshalJSON(data []byte) error

type DeviceMonitorInfoQueryRequest

type DeviceMonitorInfoQueryRequest struct {
	DeviceIPs []string `json:"deviceIps,omitempty"`
	StartTime string   `json:"startTime,omitempty"`
	EndTime   string   `json:"endTime,omitempty"`
}

type DeviceMonitorInfoRequest

type DeviceMonitorInfoRequest struct {
	DeviceIPs []string `json:"deviceIps,omitempty"`
}

type DisconnectAllInstancesRequest

type DisconnectAllInstancesRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
}

type DisconnectCredential

type DisconnectCredential struct {
	UUID        string `json:"uuid,omitempty"`
	ServerToken string `json:"serverToken,omitempty"`
}

type DisconnectInstanceRequest

type DisconnectInstanceRequest struct {
	UUID        string `json:"uuid,omitempty"`
	ServerToken string `json:"serverToken,omitempty"`
}

type DownloadFileRequest

type DownloadFileRequest struct {
	InstanceFiles []InstanceFileDownload `json:"instanceFiles,omitempty"`
}

type EmulationAuthCode added in v0.4.0

type EmulationAuthCode struct {
	AuthCode     string         `json:"authCode,omitempty"`
	ExpireTime   FlexibleString `json:"expireTime,omitempty"`
	AuthStatus   int            `json:"authStatus,omitempty"`
	ActivateTime FlexibleString `json:"activateTime,omitempty"`
	PackageName  string         `json:"packageName,omitempty"`
	DeviceIP     string         `json:"deviceIp,omitempty"`
	InstanceIP   string         `json:"instanceIp,omitempty"`
	InstanceCode string         `json:"instanceCode,omitempty"`
	CreateTime   FlexibleString `json:"createTime,omitempty"`
	Raw          RawObject      `json:"-"`
}

func (*EmulationAuthCode) UnmarshalJSON added in v0.4.0

func (a *EmulationAuthCode) UnmarshalJSON(data []byte) error

type ExecuteScriptRequest

type ExecuteScriptRequest struct {
	PadCodes      []string `json:"padCodes,omitempty"`
	ScriptContent string   `json:"scriptContent,omitempty"`
}

type ExpireTimeResponse added in v0.3.0

type ExpireTimeResponse struct {
	FailList []string  `json:"failList,omitempty"`
	Raw      RawObject `json:"-"`
}

func (*ExpireTimeResponse) UnmarshalJSON added in v0.3.0

func (r *ExpireTimeResponse) UnmarshalJSON(data []byte) error

type ExportIPRequest added in v0.3.0

type ExportIPRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
}

type ExportIPResult added in v0.3.0

type ExportIPResult struct {
	InstanceCode    string    `json:"instanceCode,omitempty"`
	PublicIPAddress string    `json:"publicIpAddress,omitempty"`
	Raw             RawObject `json:"-"`
}

func (*ExportIPResult) UnmarshalJSON added in v0.3.0

func (r *ExportIPResult) UnmarshalJSON(data []byte) error

type FlexibleString

type FlexibleString string

func (FlexibleString) Int64

func (s FlexibleString) Int64() (int64, error)

func (FlexibleString) MarshalJSON added in v0.3.0

func (s FlexibleString) MarshalJSON() ([]byte, error)

func (FlexibleString) String

func (s FlexibleString) String() string

func (*FlexibleString) UnmarshalJSON

func (s *FlexibleString) UnmarshalJSON(data []byte) error

type FlowBandwidthPoint added in v0.4.0

type FlowBandwidthPoint struct {
	RecordTime FlexibleString `json:"recordTime,omitempty"`
	Send       FlexibleString `json:"send,omitempty"`
	Receive    FlexibleString `json:"receive,omitempty"`
	Raw        RawObject      `json:"-"`
}

func (*FlowBandwidthPoint) UnmarshalJSON added in v0.4.0

func (p *FlowBandwidthPoint) UnmarshalJSON(data []byte) error

type GetAuthorizedServerTokenRequest

type GetAuthorizedServerTokenRequest struct {
	UUID         string `json:"uuid,omitempty"`
	InstanceCode string `json:"instanceCode,omitempty"`
	OnlineTime   int    `json:"onlineTime"`
	GrantControl string `json:"grantControl,omitempty"`
}

type GetDesktopIconConfigRequest added in v0.2.0

type GetDesktopIconConfigRequest struct {
	InstanceCodes []string         `json:"instanceCodes,omitempty"`
	AppIDs        []FlexibleString `json:"appIds,omitempty"`
	Container     *int             `json:"container,omitempty"`
	Screen        *int             `json:"screen,omitempty"`
	X             *int             `json:"x,omitempty"`
	Y             *int             `json:"y,omitempty"`
}

type GetInstanceDeviceInfoRequest

type GetInstanceDeviceInfoRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
}

type GetServerTokenRequest

type GetServerTokenRequest struct {
	UUID          string   `json:"uuid,omitempty"`
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	OnlineTime    int      `json:"onlineTime"`
	GrantControl  string   `json:"grantControl,omitempty"`
}

type GetTaskResultRequest

type GetTaskResultRequest struct {
	TaskIDs []FlexibleString `json:"taskIds,omitempty"`
}

type HTTPError

type HTTPError struct {
	StatusCode int
	Status     string
	RawBody    []byte
}

func (*HTTPError) Error

func (e *HTTPError) Error() string

type IDCSummary added in v0.4.0

type IDCSummary struct {
	IDCName       string         `json:"idcName,omitempty"`
	IDCCode       string         `json:"idcCode,omitempty"`
	InstanceCount FlexibleString `json:"instanceCount,omitempty"`
	Raw           RawObject      `json:"-"`
}

func (*IDCSummary) UnmarshalJSON added in v0.4.0

func (s *IDCSummary) UnmarshalJSON(data []byte) error

type ImageFile added in v0.2.0

type ImageFile struct {
	ImageFileURL  string `json:"imageFileUrl,omitempty"`
	ImageFileName string `json:"imageFileName,omitempty"`
	ImageFileType string `json:"imageFileType,omitempty"`
	ImageFileMD5  string `json:"imageFileMd5,omitempty"`
}

type ImageInfo

type ImageInfo = InstanceImageInfo

type ImageUpdateInfo added in v0.2.0

type ImageUpdateInfo struct {
	TaskID            FlexibleString `json:"taskId,omitempty"`
	InstanceCode      string         `json:"instanceCode,omitempty"`
	ImageUpdateStatus string         `json:"imageUpdateStatus,omitempty"`
	Raw               RawObject      `json:"-"`
}

func (*ImageUpdateInfo) UnmarshalJSON added in v0.2.0

func (r *ImageUpdateInfo) UnmarshalJSON(data []byte) error

type ImageUpdateInfoRequest

type ImageUpdateInfoRequest struct {
	TaskIDs []FlexibleString `json:"taskIds,omitempty"`
}

type ImageUploadInfo added in v0.2.0

type ImageUploadInfo struct {
	ImageUploadStatus string    `json:"imageUploadStatus,omitempty"`
	Raw               RawObject `json:"-"`
}

func (*ImageUploadInfo) UnmarshalJSON added in v0.2.0

func (r *ImageUploadInfo) UnmarshalJSON(data []byte) error

type ImageUploadInfoRequest added in v0.2.0

type ImageUploadInfoRequest struct {
	ImageVersionID FlexibleString `json:"imageVersionId,omitempty"`
}

type IncreaseExpireTimeRequest added in v0.3.0

type IncreaseExpireTimeRequest struct {
	ServerTokens []string `json:"serverTokens,omitempty"`
	Time         int      `json:"time"`
}

type InitDUFSSnapshotRequest added in v0.2.0

type InitDUFSSnapshotRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	QuotaCapacity int      `json:"quotaCapacity,omitempty"`
	MemoryLimit   int      `json:"memoryLimit,omitempty"`
}

type InstallAppRequest

type InstallAppRequest struct {
	AppID         FlexibleString `json:"appId,omitempty"`
	InstanceCodes []string       `json:"instanceCodes,omitempty"`
}

type InstalledAppList added in v0.2.0

type InstalledAppList struct {
	InstanceCode         string               `json:"instanceCode,omitempty"`
	AppInstallRecordList []InstalledAppRecord `json:"appInstallRecordList,omitempty"`
	Raw                  RawObject            `json:"-"`
}

func (*InstalledAppList) UnmarshalJSON added in v0.2.0

func (r *InstalledAppList) UnmarshalJSON(data []byte) error

type InstalledAppRecord added in v0.2.0

type InstalledAppRecord struct {
	AppName     string         `json:"appName,omitempty"`
	PackageName string         `json:"packageName,omitempty"`
	VersionName string         `json:"versionName,omitempty"`
	Size        FlexibleString `json:"size,omitempty"`
	Raw         RawObject      `json:"-"`
}

func (*InstalledAppRecord) UnmarshalJSON added in v0.2.0

func (r *InstalledAppRecord) UnmarshalJSON(data []byte) error

type Instance

type Instance struct {
	InstanceID          string         `json:"instanceId,omitempty"`
	InstanceCode        string         `json:"instanceCode,omitempty"`
	InstanceIP          string         `json:"instanceIp,omitempty"`
	DeviceIP            string         `json:"deviceIp,omitempty"`
	DeviceIPSegment     string         `json:"deviceIpSegment,omitempty"`
	DeviceCode          string         `json:"deviceCode,omitempty"`
	InstanceType        string         `json:"instanceType,omitempty"`
	InstanceServerType  string         `json:"instanceServerType,omitempty"`
	InstanceGrade       string         `json:"instanceGrade,omitempty"`
	RomVersion          string         `json:"romVersion,omitempty"`
	MerchantPoolNo      FlexibleString `json:"merchantPoolNo,omitempty"`
	IDCCode             string         `json:"idcCode,omitempty"`
	IDCName             string         `json:"idcName,omitempty"`
	AvailableStatus     string         `json:"availableStatus,omitempty"`
	UsableStatus        string         `json:"usableStatus,omitempty"`
	MaintainStatus      int            `json:"maintainStatus,omitempty"`
	RecycleStatus       string         `json:"recycleStatus,omitempty"`
	TaskStatus          string         `json:"taskStatus,omitempty"`
	InstanceStatus      int            `json:"instanceStatus,omitempty"`
	DeviceStatus        int            `json:"deviceStatus,omitempty"`
	MalfunctionStatus   int            `json:"malfunctionStatus,omitempty"`
	NetworkStatus       int            `json:"networkStatus,omitempty"`
	BindStatus          string         `json:"bindStatus,omitempty"`
	ControlStatus       string         `json:"controlStatus,omitempty"`
	ImageVersionID      FlexibleString `json:"imageVersionId,omitempty"`
	ImageVersionName    string         `json:"imageVersionName,omitempty"`
	SnapshotMountStatus string         `json:"snapshotMountStatus,omitempty"`
	SnapshotID          FlexibleString `json:"snapshotId,omitempty"`
	MemoryLimit         FlexibleString `json:"memoryLimit,omitempty"`
	UpSpeed             FlexibleString `json:"upSpeed,omitempty"`
	DownSpeed           FlexibleString `json:"downSpeed,omitempty"`
	IntranetUpSpeed     FlexibleString `json:"intranetUpSpeed,omitempty"`
	IntranetDownSpeed   FlexibleString `json:"intranetDownSpeed,omitempty"`
	AllocateTime        FlexibleString `json:"allocateTime,omitempty"`
	RecycleTime         FlexibleString `json:"recycleTime,omitempty"`
	Tags                []InstanceTag  `json:"tags,omitempty"`
	EmulationAuthStatus int            `json:"emulationAuthStatus,omitempty"`
	Name                string         `json:"name,omitempty"`
	Status              FlexibleString `json:"status,omitempty"`
	IP                  string         `json:"ip,omitempty"`
	Raw                 RawObject      `json:"-"`
}

func (*Instance) UnmarshalJSON

func (i *Instance) UnmarshalJSON(data []byte) error

type InstanceActionRequest

type InstanceActionRequest struct {
	InstanceCode    string           `json:"instanceCode,omitempty"`
	InstanceCodes   []string         `json:"instanceCodes,omitempty"`
	PadCodes        []string         `json:"padCodes,omitempty"`
	MerchantPoolNos []FlexibleString `json:"merchantPoolNos,omitempty"`
	DeviceCodes     []string         `json:"deviceCodes,omitempty"`
	RebootType      int              `json:"rebootType,omitempty"`
	ResetType       string           `json:"resetType,omitempty"`
}

type InstanceAppMonitorInfo added in v0.3.0

type InstanceAppMonitorInfo struct {
	CPURateTopTen []AppMetricTop `json:"cpuRateTopTen,omitempty"`
	MemRateTopTen []AppMetricTop `json:"memRateTopTen,omitempty"`
	Raw           RawObject      `json:"-"`
}

func (*InstanceAppMonitorInfo) UnmarshalJSON added in v0.3.0

func (r *InstanceAppMonitorInfo) UnmarshalJSON(data []byte) error

type InstanceAppMonitorInfoRequest

type InstanceAppMonitorInfoRequest struct {
	InstanceCode string `json:"instanceCode,omitempty"`
	StartTime    string `json:"startTime,omitempty"`
	EndTime      string `json:"endTime,omitempty"`
}

type InstanceCountSummary added in v0.4.0

type InstanceCountSummary struct {
	TotalInstanceCount FlexibleString `json:"totalInstanceCount,omitempty"`
	IDCList            []IDCSummary   `json:"idcList,omitempty"`
	Raw                RawObject      `json:"-"`
}

func (*InstanceCountSummary) UnmarshalJSON added in v0.4.0

func (s *InstanceCountSummary) UnmarshalJSON(data []byte) error

type InstanceCustom added in v0.2.0

type InstanceCustom struct {
	InstanceCode string `json:"instanceCode,omitempty"`
	CustomCode   string `json:"customCode,omitempty"`
}

type InstanceFileDownload

type InstanceFileDownload struct {
	InstanceCode string `json:"instanceCode,omitempty"`
	FilePath     string `json:"filePath,omitempty"`
}

type InstanceFileUpload

type InstanceFileUpload struct {
	InstanceCode string `json:"instanceCode,omitempty"`
	FilePath     string `json:"filePath,omitempty"`
	FileURL      string `json:"fileUrl,omitempty"`
	TargetPath   string `json:"targetPath,omitempty"`
}

type InstanceImageInfo added in v0.3.0

type InstanceImageInfo struct {
	ImageVersionID     FlexibleString `json:"imageVersionId,omitempty"`
	ImageUploadStatus  string         `json:"imageUploadStatus,omitempty"`
	InstanceServerType string         `json:"instanceServerType,omitempty"`
	RomVersion         string         `json:"romVersion,omitempty"`
	ImageFiles         []ImageFile    `json:"imageFiles,omitempty"`
	BaseImageVersionID FlexibleString `json:"baseImageVersionId,omitempty"`
	ImageVersionName   string         `json:"imageVersionName,omitempty"`
	Describe           string         `json:"describe,omitempty"`
	CreateTime         FlexibleString `json:"createTime,omitempty"`
	Raw                RawObject      `json:"-"`
}

func (*InstanceImageInfo) UnmarshalJSON added in v0.3.0

func (i *InstanceImageInfo) UnmarshalJSON(data []byte) error

type InstanceMetricDetail added in v0.4.0

type InstanceMetricDetail struct {
	CPUUtilizationRate     FlexibleString `json:"cpuUtilizationRate,omitempty"`
	MemoryUtilizationRate  FlexibleString `json:"memoryUtilizationRate,omitempty"`
	StorageUtilizationRate FlexibleString `json:"storageUtilizationRate,omitempty"`
	IOReadSpeed            FlexibleString `json:"ioReadSpeed,omitempty"`
	IOWriteSpeed           FlexibleString `json:"ioWriteSpeed,omitempty"`
	StorageSum             FlexibleString `json:"storageSum,omitempty"`
	StorageFree            FlexibleString `json:"storageFree,omitempty"`
	MemorySum              FlexibleString `json:"memorySum,omitempty"`
	MemoryFree             FlexibleString `json:"memoryFree,omitempty"`
	CPUFreq                FlexibleString `json:"cpuFreq,omitempty"`
	MemoryFreq             FlexibleString `json:"memoryFreq,omitempty"`
	Temperature            FlexibleString `json:"temperature,omitempty"`
	CPULoad                FlexibleString `json:"cpuLoad,omitempty"`
	IODeviceWait           FlexibleString `json:"ioWait,omitempty"`
	DeviceUpTime           FlexibleString `json:"deviceUpTime,omitempty"`
	GPUFreq                FlexibleString `json:"gpuFreq,omitempty"`
	GPUUtilizationRate     FlexibleString `json:"gpuUtilizationRate,omitempty"`
	Raw                    RawObject      `json:"-"`
}

func (*InstanceMetricDetail) UnmarshalJSON added in v0.4.0

func (d *InstanceMetricDetail) UnmarshalJSON(data []byte) error

type InstanceMetricDetailRequest added in v0.3.0

type InstanceMetricDetailRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	RecordTime    string   `json:"recordTime,omitempty"`
}

type InstanceMonitorInfo added in v0.4.0

type InstanceMonitorInfo struct {
	InstanceCode string         `json:"instanceCode,omitempty"`
	InstanceIP   string         `json:"instanceIp,omitempty"`
	RecordTime   FlexibleString `json:"recordTime,omitempty"`
	CPURate      FlexibleString `json:"cpuRate,omitempty"`
	GPURate      FlexibleString `json:"gpuRate,omitempty"`
	MemRate      FlexibleString `json:"memRate,omitempty"`
	StorageRate  FlexibleString `json:"storageRate,omitempty"`
	Raw          RawObject      `json:"-"`
}

func (*InstanceMonitorInfo) UnmarshalJSON added in v0.4.0

func (i *InstanceMonitorInfo) UnmarshalJSON(data []byte) error

type InstanceMonitorInfoRequest

type InstanceMonitorInfoRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
}

type InstancePoolRequest

type InstancePoolRequest struct {
	MerchantPoolNo FlexibleString `json:"merchantPoolNo,omitempty"`
	AutoReset      bool           `json:"autoReset,omitempty"`
	InstanceCodes  []string       `json:"instanceCodes,omitempty"`
	Extra          RawObject      `json:"extra,omitempty"`
}

type InstanceScript

type InstanceScript struct {
	InstanceCode  string `json:"instanceCode,omitempty"`
	ScriptContent string `json:"scriptContent,omitempty"`
}

type InstanceTag

type InstanceTag struct {
	TagID                FlexibleString `json:"tagId,omitempty"`
	TagName              string         `json:"tagName,omitempty"`
	RelatedInstanceCount FlexibleString `json:"relatedInstanceCount,omitempty"`
	BelongToSubMerchant  bool           `json:"belongToSubMerchant,omitempty"`
	SubMerchantName      string         `json:"subMerchantName,omitempty"`
	Remark               string         `json:"remark,omitempty"`
	Raw                  RawObject      `json:"-"`
}

func (*InstanceTag) UnmarshalJSON

func (t *InstanceTag) UnmarshalJSON(data []byte) error

type InstanceTagRequest

type InstanceTagRequest struct {
	PageRequest
	Rows          int              `json:"rows,omitempty"`
	TagID         FlexibleString   `json:"tagId,omitempty"`
	TagIDs        []FlexibleString `json:"tagIds,omitempty"`
	TagName       string           `json:"tagName,omitempty"`
	Remark        string           `json:"remark,omitempty"`
	InstanceCodes []string         `json:"instanceCodes,omitempty"`
}

type ListAppsRequest

type ListAppsRequest struct {
	Page       int            `json:"page,omitempty"`
	Rows       int            `json:"rows,omitempty"`
	AppID      FlexibleString `json:"appId,omitempty"`
	AppPackage string         `json:"appPackage,omitempty"`
}

type ListBaseImagesRequest added in v0.3.0

type ListBaseImagesRequest struct {
	Page               int              `json:"page,omitempty"`
	Rows               int              `json:"rows,omitempty"`
	InstanceServerType string           `json:"instanceServerType,omitempty"`
	RomVersion         string           `json:"romVersion,omitempty"`
	ImageVersionIDs    []FlexibleString `json:"imageVersionIds,omitempty"`
}

type ListDUFSSnapshotsRequest

type ListDUFSSnapshotsRequest struct {
	SnapshotName   string           `json:"snapshotName,omitempty"`
	SnapshotStatus string           `json:"snapshotStatus,omitempty"`
	SnapshotIDs    []FlexibleString `json:"snapshotIds,omitempty"`
	Page           int              `json:"page,omitempty"`
	Rows           int              `json:"rows,omitempty"`
}

type ListDevicesRequest

type ListDevicesRequest struct {
	PageRequest
	Rows               int      `json:"rows,omitempty"`
	DeviceCodes        []string `json:"deviceCodes,omitempty"`
	DeviceIPs          []string `json:"deviceIps,omitempty"`
	DeviceIPSegment    string   `json:"deviceIpSegment,omitempty"`
	IDCCode            string   `json:"idcCode,omitempty"`
	InstanceServerType string   `json:"instanceServerType,omitempty"`
	RomVersion         string   `json:"romVersion,omitempty"`
	DeviceStatus       int      `json:"deviceStatus,omitempty"`
}

type ListEmulationAuthCodesRequest

type ListEmulationAuthCodesRequest struct {
	AuthCodes     []string `json:"authCodes,omitempty"`
	AuthStatus    *int     `json:"authStatus,omitempty"`
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	PackageName   string   `json:"packageName,omitempty"`
	Page          int      `json:"page,omitempty"`
	Rows          int      `json:"rows,omitempty"`
}

type ListImagesRequest

type ListImagesRequest = ListInstanceImagesRequest

type ListInstanceImagesRequest added in v0.3.0

type ListInstanceImagesRequest struct {
	Page               int              `json:"page,omitempty"`
	Rows               int              `json:"rows,omitempty"`
	ImageVersionID     FlexibleString   `json:"imageVersionId,omitempty"`
	ImageVersionIDs    []FlexibleString `json:"imageVersionIds,omitempty"`
	InstanceServerType string           `json:"instanceServerType,omitempty"`
	RomVersion         string           `json:"romVersion,omitempty"`
	ImageVersionName   string           `json:"imageVersionName,omitempty"`
}

type ListInstanceSnapshotsRequest

type ListInstanceSnapshotsRequest struct {
	SnapshotIDs    []FlexibleString `json:"snapshotIds,omitempty"`
	SnapshotName   string           `json:"snapshotName,omitempty"`
	SnapshotStatus string           `json:"snapshotStatus,omitempty"`
	Page           int              `json:"page,omitempty"`
	Rows           int              `json:"rows,omitempty"`
}

type ListInstancesRequest

type ListInstancesRequest struct {
	PageRequest
	Rows                int              `json:"rows,omitempty"`
	InstanceID          string           `json:"instanceId,omitempty"`
	InstanceIDs         []string         `json:"instanceIds,omitempty"`
	InstanceCode        string           `json:"instanceCode,omitempty"`
	InstanceCodes       []string         `json:"instanceCodes,omitempty"`
	Status              string           `json:"status,omitempty"`
	PoolID              string           `json:"poolId,omitempty"`
	MerchantPoolNos     []FlexibleString `json:"merchantPoolNos,omitempty"`
	DeviceIPs           []string         `json:"deviceIps,omitempty"`
	DeviceIPSegment     string           `json:"deviceIpSegment,omitempty"`
	IDCCode             string           `json:"idcCode,omitempty"`
	InstanceServerType  string           `json:"instanceServerType,omitempty"`
	InstanceType        string           `json:"instanceType,omitempty"`
	RomVersion          string           `json:"romVersion,omitempty"`
	InstanceGradeName   string           `json:"instanceGradeName,omitempty"`
	UsableStatus        string           `json:"usableStatus,omitempty"`
	MaintainStatus      int              `json:"maintainStatus,omitempty"`
	RecycleStatus       string           `json:"recycleStatus,omitempty"`
	TaskStatus          string           `json:"taskStatus,omitempty"`
	InstanceStatus      int              `json:"instanceStatus,omitempty"`
	DeviceStatus        int              `json:"deviceStatus,omitempty"`
	MalfunctionStatus   int              `json:"malfunctionStatus,omitempty"`
	NetworkStatus       int              `json:"networkStatus,omitempty"`
	BindStatus          string           `json:"bindStatus,omitempty"`
	ControlStatus       string           `json:"controlStatus,omitempty"`
	ImageVersionID      FlexibleString   `json:"imageVersionId,omitempty"`
	SnapshotMountStatus string           `json:"snapshotMountStatus,omitempty"`
	SnapshotID          FlexibleString   `json:"snapshotId,omitempty"`
	TagID               FlexibleString   `json:"tagId,omitempty"`
	EmulationAuthStatus int              `json:"emulationAuthStatus,omitempty"`
}

type ListTaskResultsRequest

type ListTaskResultsRequest struct {
	Page     int              `json:"page,omitempty"`
	Rows     int              `json:"rows,omitempty"`
	TaskIDs  []FlexibleString `json:"taskIds,omitempty"`
	TaskType string           `json:"taskType,omitempty"`
}

type MaintainStatusRequest

type MaintainStatusRequest struct {
	InstanceCodes  []string `json:"instanceCodes,omitempty"`
	MaintainStatus int      `json:"maintainStatus"`
}

type MalfunctionStatistic

type MalfunctionStatistic struct {
	StatisticsTime          string    `json:"statisticsTime,omitempty"`
	ServerType              string    `json:"serverType,omitempty"`
	InstanceMalfunctionRate float64   `json:"instanceMalfunctionRate,omitempty"`
	Raw                     RawObject `json:"-"`
}

func (*MalfunctionStatistic) UnmarshalJSON

func (m *MalfunctionStatistic) UnmarshalJSON(data []byte) error

type MalfunctionStatisticsRequest

type MalfunctionStatisticsRequest struct {
	StartTime          string `json:"startTime,omitempty"`
	EndTime            string `json:"endTime,omitempty"`
	TimeUnit           string `json:"timeUnit,omitempty"`
	IncludeSubMerchant bool   `json:"includeSubMerchant,omitempty"`
}

type MemoryLimitRequest

type MemoryLimitRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	IsLimit       bool     `json:"isLimit"`
	MemoryLimit   int      `json:"memoryLimit,omitempty"`
}

type MetricPoint added in v0.4.0

type MetricPoint struct {
	RecordTime FlexibleString `json:"recordTime,omitempty"`
	Value      FlexibleString `json:"value,omitempty"`
	Raw        RawObject      `json:"-"`
}

func (*MetricPoint) UnmarshalJSON added in v0.4.0

func (p *MetricPoint) UnmarshalJSON(data []byte) error

type MountDUFSSnapshotRequest added in v0.2.0

type MountDUFSSnapshotRequest struct {
	InstanceCodes []string       `json:"instanceCodes,omitempty"`
	SnapshotID    FlexibleString `json:"snapshotId,omitempty"`
	QuotaCapacity int            `json:"quotaCapacity,omitempty"`
	MemoryLimit   int            `json:"memoryLimit,omitempty"`
}

type NetworkBandwidthListRequest

type NetworkBandwidthListRequest = NetworkBandwidthRequest

type NetworkBandwidthPoint added in v0.3.0

type NetworkBandwidthPoint struct {
	RecordTime string         `json:"recordTime,omitempty"`
	Bandwidth  FlexibleString `json:"bandwidth,omitempty"`
	Send       FlexibleString `json:"send,omitempty"`
	Receive    FlexibleString `json:"receive,omitempty"`
	Raw        RawObject      `json:"-"`
}

func (*NetworkBandwidthPoint) UnmarshalJSON added in v0.3.0

func (r *NetworkBandwidthPoint) UnmarshalJSON(data []byte) error

type NetworkBandwidthRequest added in v0.3.0

type NetworkBandwidthRequest struct {
	IDCCode   string `json:"idcCode,omitempty"`
	BeginTime string `json:"beginTime,omitempty"`
	EndTime   string `json:"endTime,omitempty"`
	StatUnit  string `json:"statUnit,omitempty"`
}

type NetworkBandwidthStats added in v0.3.0

type NetworkBandwidthStats struct {
	Peek          FlexibleString          `json:"peek,omitempty"`
	Peek95        FlexibleString          `json:"peek95,omitempty"`
	Average       FlexibleString          `json:"average,omitempty"`
	BandwidthList []NetworkBandwidthPoint `json:"bandwidthList,omitempty"`
	Raw           RawObject               `json:"-"`
}

func (*NetworkBandwidthStats) UnmarshalJSON added in v0.3.0

func (r *NetworkBandwidthStats) UnmarshalJSON(data []byte) error

type NetworkProxyConfig

type NetworkProxyConfig struct {
	InstanceCode  string `json:"instanceCode,omitempty"`
	ProxyHost     string `json:"proxyHost,omitempty"`
	ProxyPort     int    `json:"proxyPort,omitempty"`
	ProxyUser     string `json:"proxyUser,omitempty"`
	ProxyPassword string `json:"proxyPassword,omitempty"`
	ProxyWhite    string `json:"proxyWhite,omitempty"`
}

type NetworkProxyWorkflowRequest

type NetworkProxyWorkflowRequest struct {
	NetworkProxyConfigs []NetworkProxyConfig `json:"networkProxyConfigs,omitempty"`
}

type NewPadRequest added in v0.2.0

type NewPadRequest struct {
	PadModels []PadModel `json:"padModels,omitempty"`
}

type OSSConfig

type OSSConfig struct {
	Endpoint  string `json:"endpoint,omitempty"`
	Bucket    string `json:"bucket,omitempty"`
	AccessKey string `json:"accessKey,omitempty"`
	SecretKey string `json:"secretKey,omitempty"`
	Protocol  string `json:"protocol,omitempty"`
}

type OpenAccountRequest

type OpenAccountRequest struct {
	UserName        string           `json:"userName,omitempty"`
	Phone           string           `json:"phone,omitempty"`
	Nickname        string           `json:"nickname,omitempty"`
	RoleNames       []string         `json:"roleNames,omitempty"`
	MerchantPoolNos []FlexibleString `json:"merchantPoolNos,omitempty"`
}

type OpenAccountResponse added in v0.2.0

type OpenAccountResponse struct {
	Password string    `json:"password,omitempty"`
	Raw      RawObject `json:"-"`
}

func (*OpenAccountResponse) UnmarshalJSON added in v0.2.0

func (r *OpenAccountResponse) UnmarshalJSON(data []byte) error

type Option

type Option func(*Config)

func WithAuthVersion

func WithAuthVersion(authVersion string) Option

func WithBaseURL

func WithBaseURL(baseURL string) Option

func WithDebug

func WithDebug(debug bool) Option

func WithHTTPClient

func WithHTTPClient(httpClient *http.Client) Option

func WithLogger

func WithLogger(logger *slog.Logger) Option

func WithNonceFunc

func WithNonceFunc(fn func() int64) Option

func WithTimeout

func WithTimeout(timeout time.Duration) Option

type PadAvailableCount added in v0.4.0

type PadAvailableCount struct {
	TotalAvailableCount FlexibleString `json:"totalAvailableCount,omitempty"`
	IDCInfos            []PadCountIDC  `json:"idcInfos,omitempty"`
	Raw                 RawObject      `json:"-"`
}

func (*PadAvailableCount) UnmarshalJSON added in v0.4.0

func (p *PadAvailableCount) UnmarshalJSON(data []byte) error

type PadCountIDC added in v0.4.0

type PadCountIDC struct {
	IDCName         string         `json:"idcName,omitempty"`
	IDCCode         string         `json:"idcCode,omitempty"`
	AvailableCount  FlexibleString `json:"availableCount,omitempty"`
	EnableBindCount FlexibleString `json:"enableBindCount,omitempty"`
	Raw             RawObject      `json:"-"`
}

func (*PadCountIDC) UnmarshalJSON added in v0.4.0

func (p *PadCountIDC) UnmarshalJSON(data []byte) error

type PadCountRequest

type PadCountRequest struct {
	IDCCodes       []string       `json:"idcCodes,omitempty"`
	ServerType     string         `json:"serverType,omitempty"`
	MerchantPoolNo FlexibleString `json:"merchantPoolNo,omitempty"`
}

type PadEnableBindCount added in v0.4.0

type PadEnableBindCount struct {
	TotalEnableBindCount FlexibleString `json:"totalEnableBindCount,omitempty"`
	IDCInfos             []PadCountIDC  `json:"idcInfos,omitempty"`
	Raw                  RawObject      `json:"-"`
}

func (*PadEnableBindCount) UnmarshalJSON added in v0.4.0

func (p *PadEnableBindCount) UnmarshalJSON(data []byte) error

type PadModel added in v0.2.0

type PadModel struct {
	PadCode      string `json:"padCode,omitempty"`
	IMEI         string `json:"imei,omitempty"`
	SerialNo     string `json:"serialno,omitempty"`
	WiFiMac      string `json:"wifimac,omitempty"`
	AndroidID    string `json:"androidid,omitempty"`
	Model        string `json:"model,omitempty"`
	Brand        string `json:"brand,omitempty"`
	Manufacturer string `json:"manufacturer,omitempty"`
}

type Page

type Page[T any] struct {
	Records   []T             `json:"records,omitempty"`
	List      []T             `json:"list,omitempty"`
	PageData  []T             `json:"pageData,omitempty"`
	Total     FlexibleString  `json:"total,omitempty"`
	TotalPage FlexibleString  `json:"totalPage,omitempty"`
	Page      FlexibleString  `json:"page,omitempty"`
	Size      FlexibleString  `json:"size,omitempty"`
	Rows      FlexibleString  `json:"rows,omitempty"`
	Raw       json.RawMessage `json:"-"`
}

func (*Page[T]) UnmarshalJSON

func (p *Page[T]) UnmarshalJSON(data []byte) error

type PageRequest

type PageRequest struct {
	Page int `json:"page,omitempty"`
}

type QueryFlowRequest

type QueryFlowRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	StartTime     string   `json:"startTime,omitempty"`
	EndTime       string   `json:"endTime,omitempty"`
	BillingType   string   `json:"billingType,omitempty"`
	TaskDesc      string   `json:"taskDesc,omitempty"`
}

type QueryFlowResponse added in v0.3.0

type QueryFlowResponse struct {
	TaskID FlexibleString `json:"taskId,omitempty"`
	Raw    RawObject      `json:"-"`
}

func (*QueryFlowResponse) UnmarshalJSON added in v0.3.0

func (r *QueryFlowResponse) UnmarshalJSON(data []byte) error

type QueryFlowResult added in v0.4.0

type QueryFlowResult struct {
	TaskID        FlexibleString       `json:"taskId,omitempty"`
	TaskDesc      string               `json:"taskDesc,omitempty"`
	BillingType   string               `json:"billingType,omitempty"`
	TaskStatus    string               `json:"taskStatus,omitempty"`
	Msg           string               `json:"msg,omitempty"`
	BillingValue  FlexibleString       `json:"billingValue,omitempty"`
	BandwidthList []FlowBandwidthPoint `json:"bandwidthList,omitempty"`
	Raw           RawObject            `json:"-"`
}

func (*QueryFlowResult) UnmarshalJSON added in v0.4.0

func (r *QueryFlowResult) UnmarshalJSON(data []byte) error

type QueryFlowResultRequest

type QueryFlowResultRequest struct {
	TaskID FlexibleString `json:"taskId,omitempty"`
}

type RawObject

type RawObject map[string]json.RawMessage

type RebootDeviceRequest added in v0.2.0

type RebootDeviceRequest struct {
	DeviceCodes []string `json:"deviceCodes,omitempty"`
	RebootType  int      `json:"rebootType,omitempty"`
}

type RecommendAppIconRefreshRequest

type RecommendAppIconRefreshRequest struct {
	InstanceCodes []string         `json:"instanceCodes,omitempty"`
	AppIDs        []FlexibleString `json:"appIds,omitempty"`
}

type RemoveAlarmStrategyRequest added in v0.3.0

type RemoveAlarmStrategyRequest struct {
	AlarmStrategyIDs []FlexibleString `json:"alarmStrategyIds,omitempty"`
}

type RemoveDUFSSnapshotRequest added in v0.2.0

type RemoveDUFSSnapshotRequest struct {
	SnapshotIDs []FlexibleString `json:"snapshotIds,omitempty"`
}

type RemoveDesktopIconConfigRequest added in v0.2.0

type RemoveDesktopIconConfigRequest struct {
	InstanceCodes []string         `json:"instanceCodes,omitempty"`
	AppIDs        []FlexibleString `json:"appIds,omitempty"`
}

type RemoveImageRequest added in v0.2.0

type RemoveImageRequest struct {
	ImageVersionIDs []FlexibleString `json:"imageVersionIds,omitempty"`
}

type RequestOption

type RequestOption func(*requestConfig)

func WithRequestAuthVersion

func WithRequestAuthVersion(authVersion string) RequestOption

type Response

type Response[T any] struct {
	Code      int            `json:"code"`
	Message   string         `json:"msg"`
	Data      T              `json:"data"`
	Timestamp FlexibleString `json:"ts"`
}

type RestoreInstanceRequest

type RestoreInstanceRequest struct {
	SnapshotID    FlexibleString `json:"snapshotId,omitempty"`
	InstanceCodes []string       `json:"instanceCodes,omitempty"`
}

type SSHInfo

type SSHInfo struct {
	InstanceCode string `json:"instanceCode,omitempty"`
	SSHCommand   string `json:"sshCommand,omitempty"`
	SSHPwd       string `json:"sshPwd,omitempty"`
}

type SSHInfoRequest

type SSHInfoRequest struct {
	InstanceCode string `json:"instanceCode,omitempty"`
	ConnectType  int    `json:"connectType,omitempty"`
	LiveTime     int    `json:"liveTime,omitempty"`
}

type SSHInfoResponse

type SSHInfoResponse struct {
	SSHInfo    SSHInfo        `json:"sshInfo,omitempty"`
	ExpireTime FlexibleString `json:"expireTime,omitempty"`
	Raw        RawObject      `json:"-"`
}

func (*SSHInfoResponse) UnmarshalJSON

func (r *SSHInfoResponse) UnmarshalJSON(data []byte) error

type SaveDesktopIconConfigRequest added in v0.2.0

type SaveDesktopIconConfigRequest struct {
	InstanceCodes       []string       `json:"instanceCodes,omitempty"`
	AppID               FlexibleString `json:"appId,omitempty"`
	Container           int            `json:"container"`
	Screen              int            `json:"screen"`
	X                   int            `json:"x"`
	Y                   int            `json:"y"`
	OverwriteCoordinate bool           `json:"overwriteCoordinate,omitempty"`
}

type SaveInstancePoolRequest added in v0.2.0

type SaveInstancePoolRequest struct {
	ParentMerchantPoolNo FlexibleString `json:"parentMerchantPoolNo,omitempty"`
	InstancePoolName     string         `json:"instancePoolName,omitempty"`
	InstancePoolType     string         `json:"instancePoolType,omitempty"`
}

type SaveInstancePoolResponse added in v0.2.0

type SaveInstancePoolResponse struct {
	MerchantPoolNo FlexibleString `json:"merchantPoolNo,omitempty"`
	Raw            RawObject      `json:"-"`
}

func (*SaveInstancePoolResponse) UnmarshalJSON added in v0.2.0

func (r *SaveInstancePoolResponse) UnmarshalJSON(data []byte) error

type SaveInstanceTagResponse added in v0.3.0

type SaveInstanceTagResponse struct {
	TagID FlexibleString `json:"tagId,omitempty"`
	Raw   RawObject      `json:"-"`
}

func (*SaveInstanceTagResponse) UnmarshalJSON added in v0.3.0

func (r *SaveInstanceTagResponse) UnmarshalJSON(data []byte) error

type ScreenshotRequest

type ScreenshotRequest struct {
	PadCodes    []string `json:"padCodes,omitempty"`
	Quality     int      `json:"quality,omitempty"`
	PictureType string   `json:"pictureType,omitempty"`
}

type ScreenshotResponse

type ScreenshotResponse struct {
	TaskID FlexibleString `json:"taskId,omitempty"`
	URL    string         `json:"url,omitempty"`
	Raw    RawObject      `json:"-"`
}

func (*ScreenshotResponse) UnmarshalJSON

func (r *ScreenshotResponse) UnmarshalJSON(data []byte) error

type ScreenshotResultRequest

type ScreenshotResultRequest struct {
	TaskIDs []FlexibleString `json:"taskIds,omitempty"`
}

type ScreenshotURL

type ScreenshotURL struct {
	InstanceCode  string    `json:"instanceCode,omitempty"`
	ScreenshotURL string    `json:"screenshotUrl,omitempty"`
	Raw           RawObject `json:"-"`
}

func (*ScreenshotURL) UnmarshalJSON

func (s *ScreenshotURL) UnmarshalJSON(data []byte) error

type ScreenshotURLRequest

type ScreenshotURLRequest struct {
	InstanceCode  string   `json:"instanceCode,omitempty"`
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	FullQuality   int      `json:"fullQuality,omitempty"`
	Scale         int      `json:"scale,omitempty"`
	Rotate        int      `json:"rotate,omitempty"`
	PictureType   string   `json:"pictureType,omitempty"`
}

type ScreenshotURLResponse

type ScreenshotURLResponse struct {
	SuccessList []ScreenshotURL `json:"successList,omitempty"`
	FailList    []string        `json:"failList,omitempty"`
	ExpireTime  FlexibleString  `json:"expireTime,omitempty"`
	Raw         RawObject       `json:"-"`
}

func (*ScreenshotURLResponse) UnmarshalJSON

func (r *ScreenshotURLResponse) UnmarshalJSON(data []byte) error

type ServerTokenError

type ServerTokenError struct {
	InstanceCode string    `json:"instanceCode,omitempty"`
	ErrorMsg     string    `json:"errorMsg,omitempty"`
	Raw          RawObject `json:"-"`
}

func (*ServerTokenError) UnmarshalJSON

func (e *ServerTokenError) UnmarshalJSON(data []byte) error

type ServerTokenResponse

type ServerTokenResponse struct {
	ServerToken  string               `json:"serverToken,omitempty"`
	Token        string               `json:"token,omitempty"`
	InstanceCode string               `json:"instanceCode,omitempty"`
	ExpireTime   FlexibleString       `json:"expireTime,omitempty"`
	SuccessList  []ServerTokenSuccess `json:"successList,omitempty"`
	ErrorList    []ServerTokenError   `json:"errorList,omitempty"`
	Raw          RawObject            `json:"-"`
}

func (*ServerTokenResponse) UnmarshalJSON

func (r *ServerTokenResponse) UnmarshalJSON(data []byte) error

type ServerTokenSuccess

type ServerTokenSuccess struct {
	InstanceCode string    `json:"instanceCode,omitempty"`
	ServerToken  string    `json:"serverToken,omitempty"`
	Raw          RawObject `json:"-"`
}

func (*ServerTokenSuccess) UnmarshalJSON

func (s *ServerTokenSuccess) UnmarshalJSON(data []byte) error

type SessionControlSwitchFailure added in v0.3.0

type SessionControlSwitchFailure struct {
	ServerToken string    `json:"serverToken,omitempty"`
	ErrorMsg    string    `json:"errorMsg,omitempty"`
	Raw         RawObject `json:"-"`
}

func (*SessionControlSwitchFailure) UnmarshalJSON added in v0.3.0

func (f *SessionControlSwitchFailure) UnmarshalJSON(data []byte) error

type SessionControlSwitchRequest

type SessionControlSwitchRequest struct {
	ControlServerTokens []string `json:"controlServerTokens,omitempty"`
	WatchServerTokens   []string `json:"watchServerTokens,omitempty"`
}

type SetDUFSSnapshotQuotaRequest added in v0.2.0

type SetDUFSSnapshotQuotaRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	QuotaCapacity int      `json:"quotaCapacity,omitempty"`
}

type SetResolutionRequest

type SetResolutionRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	Width         int      `json:"width,omitempty"`
	Height        int      `json:"height,omitempty"`
	DPI           int      `json:"dpi,omitempty"`
	FPS           int      `json:"fps,omitempty"`
}

type SetSpeedRequest

type SetSpeedRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	Direction     string   `json:"direction,omitempty"`
	Speed         float64  `json:"speed,omitempty"`
	IntranetSpeed float64  `json:"intranetSpeed,omitempty"`
}

type SnapshotInfo

type SnapshotInfo struct {
	SnapshotID     FlexibleString `json:"snapshotId,omitempty"`
	SnapshotName   string         `json:"snapshotName,omitempty"`
	SnapshotStatus string         `json:"snapshotStatus,omitempty"`
	InstanceCode   string         `json:"instanceCode,omitempty"`
	IDCCode        string         `json:"idcCode,omitempty"`
	Progress       string         `json:"progress,omitempty"`
	SnapshotSize   FlexibleString `json:"snapshotSize,omitempty"`
	FailReason     string         `json:"failReason,omitempty"`
	Raw            RawObject      `json:"-"`
}

func (*SnapshotInfo) UnmarshalJSON

func (s *SnapshotInfo) UnmarshalJSON(data []byte) error

type SnapshotMountInfo added in v0.2.0

type SnapshotMountInfo struct {
	InstanceCode  string         `json:"instanceCode,omitempty"`
	SnapshotID    FlexibleString `json:"snapshotId,omitempty"`
	QuotaCapacity int            `json:"quotaCapacity,omitempty"`
	MemoryLimit   int            `json:"memoryLimit,omitempty"`
}

type SnapshotRequest

type SnapshotRequest struct {
	SnapshotID     FlexibleString   `json:"snapshotId,omitempty"`
	SnapshotIDs    []FlexibleString `json:"snapshotIds,omitempty"`
	SnapshotName   string           `json:"snapshotName,omitempty"`
	SnapshotStatus string           `json:"snapshotStatus,omitempty"`
	InstanceCode   string           `json:"instanceCode,omitempty"`
	InstanceCodes  []string         `json:"instanceCodes,omitempty"`
	Page           int              `json:"page,omitempty"`
	Rows           int              `json:"rows,omitempty"`
	Quota          FlexibleString   `json:"quota,omitempty"`
}

type StopEventTasksRequest

type StopEventTasksRequest struct {
	TaskIDs []FlexibleString `json:"taskIds,omitempty"`
}

type SummaryData added in v0.4.0

type SummaryData struct {
	TotalData     InstanceCountSummary `json:"totalData,omitempty"`
	AvailableData InstanceCountSummary `json:"availableData,omitempty"`
	BoundData     InstanceCountSummary `json:"boundData,omitempty"`
	Raw           RawObject            `json:"-"`
}

func (*SummaryData) UnmarshalJSON added in v0.4.0

func (s *SummaryData) UnmarshalJSON(data []byte) error

type SummaryDataRequest

type SummaryDataRequest struct {
	MerchantPoolNo FlexibleString `json:"merchantPoolNo,omitempty"`
	IncludeSubPool bool           `json:"includeSubPool"`
}

type TaskFailure

type TaskFailure struct {
	InstanceCode string    `json:"instanceCode,omitempty"`
	ServerToken  string    `json:"serverToken,omitempty"`
	Msg          string    `json:"msg,omitempty"`
	Raw          RawObject `json:"-"`
}

func (*TaskFailure) UnmarshalJSON

func (f *TaskFailure) UnmarshalJSON(data []byte) error

type TaskResponse

type TaskResponse struct {
	TaskID       FlexibleString `json:"taskId,omitempty"`
	InstanceCode string         `json:"instanceCode,omitempty"`
	PadCode      string         `json:"padCode,omitempty"`
	DeviceCode   string         `json:"deviceCode,omitempty"`
	DeviceIP     string         `json:"deviceIp,omitempty"`
	AuthCode     string         `json:"authCode,omitempty"`
	SnapshotID   FlexibleString `json:"snapshotId,omitempty"`
	ErrorMsg     string         `json:"errorMsg,omitempty"`
	Raw          RawObject      `json:"-"`
}

func (*TaskResponse) UnmarshalJSON

func (r *TaskResponse) UnmarshalJSON(data []byte) error

type TaskResult

type TaskResult struct {
	TaskID      FlexibleString  `json:"taskId,omitempty"`
	PadCode     string          `json:"padCode,omitempty"`
	TaskStatus  FlexibleString  `json:"taskStatus,omitempty"`
	TaskResult  string          `json:"taskResult,omitempty"`
	TaskType    string          `json:"taskType,omitempty"`
	CreateTime  FlexibleString  `json:"createTime,omitempty"`
	ExecuteTime FlexibleString  `json:"executeTime,omitempty"`
	DeviceIP    string          `json:"deviceIp,omitempty"`
	URL         string          `json:"url,omitempty"`
	Status      FlexibleString  `json:"status,omitempty"`
	Code        FlexibleString  `json:"code,omitempty"`
	Msg         string          `json:"msg,omitempty"`
	Data        json.RawMessage `json:"data,omitempty"`
	Raw         json.RawMessage `json:"-"`
}

func (*TaskResult) UnmarshalJSON

func (r *TaskResult) UnmarshalJSON(data []byte) error

type TaskType

type TaskType struct {
	Type string    `json:"type,omitempty"`
	Name string    `json:"name,omitempty"`
	Raw  RawObject `json:"-"`
}

func (*TaskType) UnmarshalJSON

func (t *TaskType) UnmarshalJSON(data []byte) error

type UninstallAppRequest

type UninstallAppRequest struct {
	AppID         FlexibleString `json:"appId,omitempty"`
	InstanceCodes []string       `json:"instanceCodes,omitempty"`
}

type UnmountDUFSSnapshotRequest added in v0.2.0

type UnmountDUFSSnapshotRequest struct {
	InstanceCodes []string `json:"instanceCodes,omitempty"`
	SnapshotName  string   `json:"snapshotName,omitempty"`
}

type UpdateAlarmStrategyEnableStatusRequest added in v0.3.0

type UpdateAlarmStrategyEnableStatusRequest struct {
	AlarmStrategyIDs []FlexibleString `json:"alarmStrategyIds,omitempty"`
	EnableStatus     int              `json:"enableStatus"`
}

type UpdateExpireTimeRequest added in v0.3.0

type UpdateExpireTimeRequest struct {
	ServerTokens []string       `json:"serverTokens,omitempty"`
	ExpireTime   FlexibleString `json:"expireTime,omitempty"`
}

type UpdateImageRequest added in v0.2.0

type UpdateImageRequest struct {
	ImageVersionID    FlexibleString `json:"imageVersionId,omitempty"`
	InstanceCodes     []string       `json:"instanceCodes,omitempty"`
	ConfigID          string         `json:"configId,omitempty"`
	ResourcePackageID FlexibleString `json:"resourcePackageId,omitempty"`
	Reset             bool           `json:"reset,omitempty"`
	AutoInstall       *bool          `json:"autoInstall,omitempty"`
}

type UploadApp

type UploadApp struct {
	AppID   FlexibleString `json:"appId,omitempty"`
	AppName string         `json:"appName,omitempty"`
	PkgName string         `json:"pkgName,omitempty"`
	URL     string         `json:"url,omitempty"`
	MD5Sum  string         `json:"md5sum,omitempty"`
}

type UploadAppsRequest

type UploadAppsRequest struct {
	Apps   []UploadApp    `json:"apps,omitempty"`
	TaskID FlexibleString `json:"taskId,omitempty"`
}

type UploadFileRequest

type UploadFileRequest struct {
	InstanceCodes     []string `json:"instanceCodes,omitempty"`
	FileURL           string   `json:"fileUrl,omitempty"`
	FileName          string   `json:"fileName,omitempty"`
	FileMD5           string   `json:"fileMd5,omitempty"`
	CustomizeFilePath string   `json:"customizeFilePath,omitempty"`
	AutoInstall       int      `json:"autoInstall,omitempty"`
}

type UploadFileResponse

type UploadFileResponse struct {
	TaskID FlexibleString `json:"taskId,omitempty"`
	FileID FlexibleString `json:"fileId,omitempty"`
	Raw    RawObject      `json:"-"`
}

func (*UploadFileResponse) UnmarshalJSON

func (r *UploadFileResponse) UnmarshalJSON(data []byte) error

type UploadImageRequest added in v0.2.0

type UploadImageRequest struct {
	ImageFiles         []ImageFile    `json:"imageFiles,omitempty"`
	InstanceServerType string         `json:"instanceServerType,omitempty"`
	RomVersion         string         `json:"romVersion,omitempty"`
	BaseImageVersionID FlexibleString `json:"baseImageVersionId,omitempty"`
	ImageVersionName   string         `json:"imageVersionName,omitempty"`
	Describe           string         `json:"describe,omitempty"`
}

type UploadImageResponse added in v0.2.0

type UploadImageResponse struct {
	ImageVersionID FlexibleString `json:"imageVersionId,omitempty"`
	Raw            RawObject      `json:"-"`
}

func (*UploadImageResponse) UnmarshalJSON added in v0.2.0

func (r *UploadImageResponse) UnmarshalJSON(data []byte) error

Directories

Path Synopsis
examples
basic command

Jump to

Keyboard shortcuts

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