model

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2025 License: MIT Imports: 31 Imported by: 4

Documentation

Index

Constants

View Source
const (
	POSTPAID_BY_HOUR InstanceChargeType = "POSTPAID_BY_HOUR"
	ON_DEMAND        InstanceChargeType = "ON_DEMAND"
	SPOT             InstanceChargeType = "SPOT"
	PREPAID          InstanceChargeType = "PREPAID"

	Terminate InstancePolicy = "Terminate"
	Reserve   InstancePolicy = "Reserve"
)

Variables

View Source
var (
	ErrCloudNotSupported = fmt.Errorf("profile cloud not supported") // 配置文件中的云不能匹配到
	ErrProfileNotFound   = fmt.Errorf("profile not found")
)

Functions

func Contains

func Contains(states []EMRClusterStatus, state EMRClusterStatus) bool

func TimeParse

func TimeParse(t string) (time.Time, error)

按照`ISO8601`标准表示,并且使用`UTC`时间。格式为:`YYYY-MM-DDThh:mm:ssZ` to time.Time

Types

type AddTagsInput

type AddTagsInput struct {
	Tags        Tags      `json:"tags"`
	InstanceIds []*string `json:"instance_ids" binding:"required"`
}

type AttachVolumeInput

type AttachVolumeInput struct {
	VolumeID           *string `json:"volume_id"`
	InstanceID         *string `json:"instance_id"`
	DeleteWithInstance *bool   `json:"delete_with_instance"`
}

AttachVolumeInput represents the input for attaching a volume to an instance

type Attr

type Attr struct {
	Type    *string `json:"type"`
	Details *string `json:"details"`
}

type Box

type Box struct {
	Rect  *ImageRect `json:"rect"`
	Score *int64     `json:"score"`
}

type Bucket

type Bucket struct {
	Name       string `json:"name"`
	CreateTime string `json:"create_time"` // "2006-01-02 15:04:05" localTime
	Location   string `json:"location"`
	Tags       Tags   `json:"tags"`
}

type ClientIo

type ClientIo interface {
	GetAwsEc2Client(profile, region string) (*ec2.EC2, error)
	GetAwsEbsClient(profile, region string) (*ebs.EBS, error)
	GetAwsSqsClient(profile, region string) (*sqs.SQS, error)
	GetAWSEmrClient(profile, region string) (*emr.EMR, error)
	GetAWSCredential(profile string) (*credentials.Credentials, error)
	GetAWSS3Client(profile, region string) (*s3.S3, error)
	GetAwsRoute53Client(profile, region string) (*route53.Route53, error)
	GetAwsRoute53DomainClient(profile string) (*route53domains.Route53Domains, error)

	GetTencentCvmClient(profile, region string) (*cvm.Client, error)
	GetTencentCbsClient(profile, region string) (*cbs.Client, error)
	GetTencentEmrClient(profile, region string) (*tencentEmr.Client, error)
	GetTencentVpcClient(profile, region string) (*tencentVpc.Client, error)
	GetTencentCosClient(profile, region string) (*cos.Client, error)
	GetTencentCosLifecycleClient(profile, region, bucket string) (*cos.Client, error)
	GetTencentTagsClient(profile, region string) (*tag.Client, error)
	GetTencentOcrClient(profile, region string) (*ocr.Client, error)
	GetTencentOcrTiiaClient(profile, region string) (*tiia.Client, error)
	GetTencentDnsPodClient(profile string) (*dnspod.Client, error)
	GetTencentPrivateDNSClient(profile string) (*privatedns.Client, error)
	GetTencentMonitorClient(profile, region string) (*monitor.Client, error)
}

type Cloud

type Cloud string
const (
	AWS     Cloud = "aws"
	TENCENT Cloud = "tencent"
)

func (Cloud) ToString

func (i Cloud) ToString() string

type CloudIO

type CloudIO interface {

	// monitor
	GetMonitorMetricData(profile, region string, input GetMonitorMetricDataRequest) (*GetMonitorMetricDataResponse, error)

	DescribeInstances(profile, region string, input DescribeInstancesInput) (InstanceResponse, error)
	CreateInstance(profile, region string, input CreateInstanceInput) (CreateInstanceResponse, error)
	ModifyInstance(profile, region string, input ModifyInstanceInput) (ModifyInstanceResponse, error)
	DeleteInstance(profile, region string, input DeleteInstanceInput) (DeleteInstanceResponse, error)
	DescribeKeyPairs(profile, region string, input CommonFilter) ([]KeyPair, error)
	DescribeImages(profile, region string, input CommonFilter) ([]Image, error)
	DescribeInstanceTypes(profile, region string) ([]InstanceType, error)
	// 机器包年包月费用查询
	DescribeInstancePrice(profile, region string, input DescribeInstancePriceInput) (DescribeInstancePriceResponse, error)

	// Volume
	DescribeVolumes(profile, region string, input DescribeVolumesInput) ([]Volume, error)
	CreateVolume(profile, region string, input CreateVolumeInput) (string, error)
	ModifyVolume(profile, region string, input ModifyVolumeInput) error
	DeleteVolume(profile, region string, input DeleteVolumeInput) error
	AttachVolume(profile, region string, input AttachVolumeInput) error
	DetachVolume(profile, region string, input DetachVolumeInput) error

	// VPC
	QueryVPC(profile, region string, input CommonFilter) ([]VPC, error)
	QuerySubnet(profile, region string, input CommonFilter) ([]Subnet, error)
	QueryEIP(profile, region string, input CommonFilter) ([]EIP, error)
	QueryNAT(profile, region string, input CommonFilter) ([]NAT, error)
	QuerySecurityGroups(profile, region string, input CommonFilter) ([]SecurityGroup, error)
	CreateSecurityGroupWithPolicies(profile, region string, input CreateSecurityGroupWithPoliciesInput) (CreateSecurityGroupWithPoliciesResponse, error) // 创建安全组并添加策略
	CreateSecurityGroupPolicies(profile, region string, input CreateSecurityGroupPoliciesInput) (CreateSecurityGroupPoliciesResponse, error)             // 创建安全组策略

	// Tags
	CreateTags(profile, region string, input CreateTagsInput) error
	AddTagsToResource(profile, region string, input AddTagsInput) error
	RemoveTagsFromResource(profile, region string, input RemoveTagsInput) error
	ModifyTagsForResource(profile, region string, input ModifyTagsInput) error

	// EMR
	QueryEmrCluster(EmrFilter) (FilterEmrResponse, error) // 方便 Post使用,将Profile和Region放入filter
	DescribeEmrCluster(DescribeInput) ([]DescribeEmrCluster, error)
	CreateEmrCluster(profile, region string, input CreateEmrClusterInput) (CreateEmrClusterResponse, error)

	// tencent region is not required
	DescribeDomainList(profile, region string, input DescribeDomainListRequest) (DescribeDomainListResponse, error)
	DescribeRecordList(profile, region string, input DescribeRecordListRequest) (DescribeRecordListResponse, error)
	DescribeRecordListWithPages(profile, region string, input DescribeRecordListWithPageRequest) (ListRecordsPageResponse, error)
	DescribeRecord(profile, region string, input DescribeRecordRequest) (Record, error)
	CreateRecord(profile, region string, input CreateRecordRequest) (CreateRecordResponse, error)
	ModifyRecord(profile, region string, ignoreType bool, input ModifyRecordRequest) error
	DeleteRecord(profile, region string, input DeleteRecordRequest) (CommonDnsResponse, error)

	// Private_Dns
	DescribePrivateDomainList(profile string, input DescribeDomainListRequest) (DescribePrivateDomainListResponse, error)
	CreatePrivateRecord(profile string, input CreateRecordRequest) (CreateRecordResponse, error)
	DeletePrivateRecord(profile string, input DeletePrivateRecordRequest) error
	ModifyPrivateRecord(profile string, input ModifyRecordRequest) error
	DescribePrivateRecordList(profile string, input DescribePrivateRecordListRequest) (DescribePrivateRecordListResponse, error)
	DescribePrivateRecordListWithPages(profile string, input DescribePrivateDnsRecordListWithPageRequest) (ListRecordsPageResponse, error)

	// OCR
	CommonOCR(profile, region string, input OcrRequest) (OcrResponse, error)
	CreatePicture(profile, region string, input CreatePictureRequest) (CreatePictureResponse, error)
	GetPictureByName(profile, region string, input CommonPictureRequest) (GetPictureByNameResponse, error)
	QueryPicture(profile, region string, input QueryPictureRequest) (QueryPictureResponse, error)
	DeletePicture(profile, region string, input CommonPictureRequest) (CommonPictureResponse, error)
	UpdatePicture(profile, region string, input UpdatePictureRequest) (CommonPictureResponse, error)
	SearchPicture(profile, region string, input SearchPictureRequest) (SearchPictureResponse, error)

	// S3 COS
	CreateBucket(profile, region string, input CreateBucketRequest) error
	CreateBucketLifecycle(profile, region string, input CreateBucketLifecycleRequest) error
	GetBucketLifecycle(profile, region string, input GetBucketLifecycleRequest) (GetBucketLifecycleResponse, error)
	// DeleteBucketLifecycle(profile, region string, input DeleteBucketLifecycleRequest) error
	DeleteBucket(profile, region string, input DeleteBucketRequest) (DeleteBucketResponse, error)
	ListBucket(profile, region string, input ListBucketRequest) (ListBucketResponse, error) // 比官方多支持了 aws location 返回,并且都带上了tag返回。
	GetObjectPregisn(profile, region string, input ObjectPregisnRequest) (ObjectPregisnResponse, error)
	GetObjectPregisnWithAKSK(ak, sk, region string, input ObjectPregisnRequest) (ObjectPregisnResponse, error) // 支持AKSK的方式获取对象的预签名URL

	// SQS
	CreateSqs(profile, region string, input CreateSqsRequest) error
}

type Color

type Color struct {
	Color      *string  `json:"color"`
	Percentage *float64 `json:"percentage"`
	Label      *string  `json:"label"`
}

type CommonContract

type CommonContract interface {
	QueryOcr(profile, region string, input OcrRequest) (OcrResponse, error)

	// monitor 获取监控指标
	GetMonitorMetricData(profile, region string, input GetMonitorMetricDataRequest) (*GetMonitorMetricDataResponse, error)
	// tiia
	CreatePicture(profile, region string, input CreatePictureRequest) (CreatePictureResponse, error)
	GetPictureByName(profile, region string, input CommonPictureRequest) (GetPictureByNameResponse, error)
	QueryPicture(profile, region string, input QueryPictureRequest) (QueryPictureResponse, error)
	DeletePicture(profile, region string, input CommonPictureRequest) (CommonPictureResponse, error)
	UpdatePicture(profile, region string, input UpdatePictureRequest) (CommonPictureResponse, error)
	SearchPicture(profile, region string, input SearchPictureRequest) (SearchPictureResponse, error)

	PrivateDomainList(profile string, req DescribeDomainListRequest) (DescribePrivateDomainListResponse, error)
	PrivateRecordList(profile string, req DescribePrivateRecordListRequest) (DescribePrivateRecordListResponse, error)
	PrivateRecordListWithPages(profile string, req DescribePrivateDnsRecordListWithPageRequest) (ListRecordsPageResponse, error)
	PrivateCreateRecord(profile string, req CreateRecordRequest) (CreateRecordResponse, error)
	PrivateModifyRecord(profile string, req ModifyRecordRequest) error
	PrivateDeleteRecord(profile string, req DeletePrivateRecordRequest) error

	DescribeDomainList(profile, region string, req DescribeDomainListRequest) (DescribeDomainListResponse, error)
	DescribeRecordList(profile, region string, req DescribeRecordListRequest) (DescribeRecordListResponse, error)
	DescribeRecordListWithPages(profile, region string, req DescribeRecordListWithPageRequest) (ListRecordsPageResponse, error)
	DescribeRecord(profile, region string, req DescribeRecordRequest) (Record, error)
	CreateRecord(profile, region string, req CreateRecordRequest) (CreateRecordResponse, error)
	ModifyRecord(profile, region string, ignoreType bool, req ModifyRecordRequest) error
	DeleteRecord(profile, region string, req DeleteRecordRequest) (CommonDnsResponse, error)

	DescribeEmrCluster(DescribeInput) ([]DescribeEmrCluster, error)
	QueryEmrCluster(EmrFilter) (FilterEmrResponse, error)

	DescribeInstances(profile, region string, input InstanceFilter) (InstanceResponse, error)
	CreateInstance(profile, region string, input CreateInstanceInput) (CreateInstanceResponse, error)
	ModifyInstance(profile, region string, input ModifyInstanceInput) (ModifyInstanceResponse, error)
	DeleteInstance(profile, region string, input DeleteInstanceInput) (DeleteInstanceResponse, error)
	DescribeImages(profile, region string, input CommonFilter) ([]Image, error)
	DescribeKeyPairs(profile, region string, input CommonFilter) ([]KeyPair, error)
	DescribeInstanceTypes(profile, region string) ([]InstanceType, error)
	DescribeInstancePrice(profile, region string, input DescribeInstancePriceInput) (DescribeInstancePriceResponse, error)

	// tags
	CreateTags(profile, region string, input CreateTagsInput) error
	AddTagsToResource(profile, region string, input AddTagsInput) error
	RemoveTagsFromResource(profile, region string, input RemoveTagsInput) error
	ModifyTagsForResource(profile, region string, input ModifyTagsInput) error

	QueryVPCs(profile, region string, input CommonFilter) ([]VPC, error)
	QuerySubnets(profile, region string, input CommonFilter) ([]Subnet, error)
	QueryEIPs(profile, region string, input CommonFilter) ([]EIP, error)
	QueryNATs(profile, region string, input CommonFilter) ([]NAT, error)
	QuerySecurityGroups(profile, region string, input CommonFilter) ([]SecurityGroup, error)

	CreateBucket(profile, region string, input CreateBucketRequest) error
	DeleteBucket(profile, region string, input DeleteBucketRequest) (DeleteBucketResponse, error)
	ListBuckets(profile, region string, input ListBucketRequest) (ListBucketResponse, error)

	CreateBucketLifecycle(profile, region string, input CreateBucketLifecycleRequest) error
	GetBucketLifecycle(profile, region string, input GetBucketLifecycleRequest) (GetBucketLifecycleResponse, error)

	GetObjectPregisn(profile, region string, input ObjectPregisnRequest) (ObjectPregisnResponse, error)
	GetObjectPregisnWithAKSK(cloud Cloud, ak, sk, region string, input ObjectPregisnRequest) (ObjectPregisnResponse, error)

	DescribeVolumes(profile, region string, input DescribeVolumesInput) ([]Volume, error)
}

实现自动区分云的对象接口

type CommonDnsResponse

type CommonDnsResponse struct {
	Meta interface{} `json:"meta"`
}

type CommonFilter

type CommonFilter struct {
	ID string `json:"id"`
}

type CommonPictureRequest

type CommonPictureRequest struct {
	GroupId  *string `json:"group_id" binding:"required"`
	EntityId *string `json:"entity_id" binding:"required"`
	PicName  *string `json:"pic_name"`
}

type CommonPictureResponse

type CommonPictureResponse struct {
	RequestId *string `json:"request_id"`
}

type Coord

type Coord struct {
	X *int64 `json:"x"`
	Y *int64 `json:"y"`
}

type CreateBucketLifecycleRequest

type CreateBucketLifecycleRequest struct {
	Bucket     *string
	Lifecycles []Lifecycle
}

func (*CreateBucketLifecycleRequest) ToCOSLifecycle

<LifecycleConfiguration>

<Rule>
	<ID>huggingface模型定期删除</ID>
	<Filter>
		<Prefix>hg/</Prefix>
	</Filter>
	<Status>Enabled</Status>
	<Expiration>
		<Days>5</Days>
	</Expiration>
</Rule>
<Rule>
	<ID>OPS_BASE</ID>
	<Filter/>
	<Status>Enabled</Status>
	<AbortIncompleteMultipartUpload>
		<DaysAfterInitiation>30</DaysAfterInitiation>
	</AbortIncompleteMultipartUpload>
</Rule>

</LifecycleConfiguration>

to COSLifecycle

func (*CreateBucketLifecycleRequest) ToS3Lifecycle

to aws lifecycle

type CreateBucketRequest

type CreateBucketRequest struct {
	BucketName *string `json:"name" binding:"required"` // 腾讯云必须带上 appid, examplebucket-1250000000
	Tags       Tags    `json:"tags"`
}

type CreateEmrClusterInput

type CreateEmrClusterInput struct {
	Name               *string             `json:"name"`
	Tags               Tags                `json:"tags"`
	APPs               []*string           `json:"apps"` // hive、flink、spark
	EMRVersion         *string             `json:"emr_version"`
	InstanceChargeType *InstanceChargeType `json:"instance_charge_type"`
	ResourceSpec       *ResourceSpec       `json:"resource_spec"`
}

func (*CreateEmrClusterInput) ToAwsRequest

func (c *CreateEmrClusterInput) ToAwsRequest() (*emr.RunJobFlowInput, error)

func (*CreateEmrClusterInput) ToTencentEmrInstanceRequest

func (c *CreateEmrClusterInput) ToTencentEmrInstanceRequest() (*txemr.CreateInstanceRequest, error)

type CreateEmrClusterResponse

type CreateEmrClusterResponse struct {
	ID string `json:"id"`
}

type CreateInstanceInput

type CreateInstanceInput struct {
	Name               *string             `json:"name"`
	Count              *int64              `json:"count" default:"1"` // 默认 1 个
	ImageID            *string             `json:"image_id"`
	InstanceType       *string             `json:"instance_type"`
	InstanceChargeType *InstanceChargeType `json:"instance_charge_type"` // 默认按需
	Zone               *string             `json:"zone"`                 // 这里写可用区 ID后台转换
	SystemDisk         *Disk               `json:"system_disk"`
	DataDisks          []Disk              `json:"data_disks"`
	RoleName           *string             `json:"role_name"`
	VpcID              *string             `json:"vpc_id"`
	SecurityGroupIDs   []*string           `json:"security_group_ids"`
	SubnetID           *string             `json:"subnet_id"`
	UserData           *string             `json:"user_data"` // base64
	Password           *string             `json:"password"`
	KeyIds             []*string           `json:"key_ids"`
	Tags               Tags                `json:"tags"`
}

Create

func (*CreateInstanceInput) ToTencentRunInstancesRequest

func (i *CreateInstanceInput) ToTencentRunInstancesRequest() *cvm.RunInstancesRequest

set default

type CreateInstanceResponse

type CreateInstanceResponse struct {
	Meta        any       `json:"meta"`
	InstanceIds []*string `json:"instance_ids"`
}

type CreatePictureRequest

type CreatePictureRequest struct {
	GroupId     *string `json:"group_id" binding:"required"`
	EntityId    *string `json:"entity_id" binding:"required"`
	PicName     *string `json:"pic_name" binding:"required"`
	ImageUrl    *string `json:"image_url"`
	ImageBase64 *string `json:"image_base64"`
	Tags        *string `json:"tags"`
}

type CreatePictureResponse

type CreatePictureResponse struct {
	Object    Object  `json:"object"`
	RequestId *string `json:"request_id"`
}

type CreateRecordRequest

type CreateRecordRequest struct {
	Domain     *string `json:"domain" binding:"required"`
	SubDomain  *string `json:"sub_domain" binding:"required"`  //主机记录,如 www,可选,如果不传,默认为 @。
	RecordType *string `json:"record_type" binding:"required"` //记录类型,通过 API 记录类型获得,大写英文,比如:A 。
	Value      *string `json:"value" binding:"required"`       //记录值,如 IP。
	TTL        *uint64 `json:"ttl"`                            //记录生效时间,默认(aws 300)(腾讯 600),最大值604800秒。
	Info       *string `json:"info"`                           //备注,主要描述创建原因用途(aws不支持,tencent支持,但是private dns 不支持)
}

type CreateRecordResponse

type CreateRecordResponse struct {
	RecordId *string     `json:"record_id"`
	Meta     interface{} `json:"meta"`
}

type CreateSecurityGroupPoliciesInput

type CreateSecurityGroupPoliciesInput struct {
	SecurityGroupId *string   `json:"security_group_id" binding:"required"`
	PolicySet       PolicySet `json:"policy_set" binding:"required"`
}

type CreateSecurityGroupPoliciesResponse

type CreateSecurityGroupPoliciesResponse struct {
	Result any
}

type CreateSecurityGroupWithPoliciesInput

type CreateSecurityGroupWithPoliciesInput struct {
	GroupName        *string   `json:"group_name" binding:"required"`
	GroupDescription *string   `json:"group_description"`
	PolicySet        PolicySet `json:"policy_set"`
}

type CreateSecurityGroupWithPoliciesResponse

type CreateSecurityGroupWithPoliciesResponse struct {
	Data any
}

type CreateSqsRequest

type CreateSqsRequest struct {
	QueueName     string            `json:"queue_name"`
	Type          string            `json:"type"`   // normal | fifo
	Policy        string            `json:"policy"` // 策略
	Config        SqsConfig         `json:"config"`
	Encryption    bool              `json:"encryption"`     // 是否开启加密
	RedrivePolicy *RedrivePolicy    `json:"redrive_policy"` // 死信队列策略
	Tags          map[string]string `json:"tags"`           // 标签
}

func (*CreateSqsRequest) ToCreateQueueInput

func (c *CreateSqsRequest) ToCreateQueueInput() (*sqs.CreateQueueInput, error)

to sqs.CreateQueueInput

type CreateTagsInput

type CreateTagsInput struct {
	Tags Tags
}

type CreateVolumeInput

type CreateVolumeInput struct {
	Name               *string `json:"name"`
	Size               *int64  `json:"size"`        // GB
	Type               *string `json:"type"`        // volume type
	Zone               *string `json:"zone"`        // availability zone
	InstanceID         *string `json:"instance_id"` // attach to instance
	Tags               Tags    `json:"tags"`        // volume tags
	DeleteWithInstance *bool   `json:"delete_with_instance"`
}

CreateVolumeInput represents the input for creating a volume

type DataPoint

type DataPoint struct {
	// 时间戳
	Timestamps []*float64 `json:"timestamp"`
	// 指标值
	Values []*float64 `json:"value"`
}

type DeleteBucketRequest

type DeleteBucketRequest struct {
	BucketName *string `json:"name" binding:"required"`
}

type DeleteBucketResponse

type DeleteBucketResponse struct {
	Meta any `json:"meta"`
}

type DeleteInstanceInput

type DeleteInstanceInput struct {
	InstanceIds []*string `json:"instance_ids"`
	ReleaseDisk *bool     `json:"release_disk"`
}

func (*DeleteInstanceInput) ToTencentTerminateInstancesRequest

func (i *DeleteInstanceInput) ToTencentTerminateInstancesRequest() *cvm.TerminateInstancesRequest

默认不释放

type DeleteInstanceResponse

type DeleteInstanceResponse struct {
	Meta any `json:"meta"`
}

type DeletePrivateRecordRequest

type DeletePrivateRecordRequest struct {
	Domain    *string   `json:"domain" binding:"required"`
	RecordId  *string   `json:"record_id" `
	RecordIds []*string `json:"record_ids"`
}

type DeleteRecordRequest

type DeleteRecordRequest struct {
	Domain     *string `json:"domain" binding:"required"`
	SubDomain  *string `json:"sub_domain" binding:"required"`
	RecordType *string `json:"record_type" binding:"required"`
}

type DeleteVolumeInput

type DeleteVolumeInput struct {
	VolumeID *string `json:"volume_id"`
	Force    *bool   `json:"force"` // force delete if volume is in-use
}

DeleteVolumeInput represents the input for deleting a volume

type DescribeDomainListRequest

type DescribeDomainListRequest struct {
	DomainKeyword *string `json:"keyword"`
}

type DescribeDomainListResponse

type DescribeDomainListResponse struct {
	RequestId       *string          `json:"request_id"`
	DomainList      []Domain         `json:"domain_list"`
	DomainCountInfo *DomainCountInfo `json:"domain_count_info"`
}

type DescribeEmrCluster

type DescribeEmrCluster struct {
	Meta       any // 原始数据
	ID, Name   *string
	Status     EMRClusterStatus
	CreateTime *time.Time
	Tags       Tags
}

type DescribeInput

type DescribeInput struct {
	Profile *string   `json:"profile" binding:"required"`
	Region  *string   `json:"region" binding:"required"` // 为空则取默认
	IDS     []*string `json:"ids"`                       // 为空则取所有
}

type DescribeInstancePriceInput

type DescribeInstancePriceInput struct {
	Zone         *string `json:"zone" binding:"required"`         // 可用区
	ImageId      *string `json:"imageId" binding:"required"`      // 镜像ID
	InstanceType *string `json:"instanceType" binding:"required"` // 实例规格
	Period       *int64  `json:"period" binding:"required"`       // 购买时长,单位:月
	SystemDisk   *Disk   `json:"systemDisk" binding:"required"`   // 系统盘类型
	DataDisks    []Disk  `json:"dataDisks"`                       // 数据盘类型
}

DescribeInstancePriceInput 定义查询实例价格的输入参数

type DescribeInstancePriceResponse

type DescribeInstancePriceResponse struct {
	OriginalPrice *float64 `json:"originalPrice"` // 原价,单位:元
	DiscountPrice *float64 `json:"discountPrice"` // 折扣价,单位:元
	Discount      *float64 `json:"discount"`      // 折扣,单位:%
	Currency      *string  `json:"currency"`      // 货币类型:CNY
}

DescribeInstancePriceResponse 定义查询实例价格的返回结果

type DescribeInstancesInput

type DescribeInstancesInput struct {
	InstanceIds []*string
	Filters     []*Filter
	Size        *int64
	NextMarker  *string
}

每次请求的`Filters`的上限为10,`Filter.Values`的上限为5。参数不支持同时指定`InstanceIds`和`Filters`。

type DescribePrivateDnsRecordListWithPageRequest

type DescribePrivateDnsRecordListWithPageRequest struct {
	Domain *string `json:"domain" binding:"required"` // 支持使用域名或者ID
	Limit  *int64  `json:"limit"`                     // 分页 默认100
	Page   *int64  `json:"page"`                      // 页码
}

type DescribePrivateDomainListResponse

type DescribePrivateDomainListResponse struct {
	DomainList []PrivateDomain `json:"domain_list"`
	TotalCount *int64          `json:"total_count"`
}

type DescribePrivateRecordListRequest

type DescribePrivateRecordListRequest struct {
	Domain  *string `json:"domain" binding:"required"`
	Keyword *string `json:"keyword"` // 只支持二级域名的模糊搜索
}

type DescribePrivateRecordListResponse

type DescribePrivateRecordListResponse struct {
	TotalCount *int64   `json:"total_count"`
	RecordList []Record `json:"record_list"`
}

type DescribeRecordListRequest

type DescribeRecordListRequest struct {
	Domain  *string `json:"domain" binding:"required"`
	Keyword *string `json:"keyword"` // 只支持二级域名的模糊搜索
}

type DescribeRecordListResponse

type DescribeRecordListResponse struct {
	Total      int64    `json:"total"`
	RecordList []Record `json:"record_list"`
}

type DescribeRecordListWithPageRequest

type DescribeRecordListWithPageRequest struct {
	Domain *string `json:"domain" binding:"required"` // 支持使用域名或者ID
	Limit  *int64  `json:"limit"`                     // 分页 默认100
	Page   *int64  `json:"page"`                      // 页码
}

type DescribeRecordRequest

type DescribeRecordRequest struct {
	Domain     *string `json:"domain" binding:"required"`
	SubDomain  *string `json:"sub_domain" binding:"required"`
	RecordType *string `json:"record_type"`
}

type DescribeVolumesInput

type DescribeVolumesInput struct {
	VolumeIDs  []string `json:"volume_ids"`
	InstanceID *string  `json:"instance_id"`
}

DescribeVolumesInput represents the input for describing volumes

type DetachVolumeInput

type DetachVolumeInput struct {
	VolumeID   *string `json:"volume_id"`
	InstanceID *string `json:"instance_id"`
	Force      *bool   `json:"force"` // force detach
}

DetachVolumeInput represents the input for detaching a volume from an instance

type Dimension

type Dimension struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

type Disk

type Disk struct {
	Size *int64  `json:"size"`
	Type *string `json:"type"` // 硬盘介质类型,腾讯云支持的类型如下:CLOUD_BASIC:表示普通云硬盘 CLOUD_PREMIUM:表示高性能云硬盘 CLOUD_SSD:表示SSD云硬盘 CLOUD_HSSD:表示增强型SSD云硬盘 CLOUD_TSSD:表示极速型SSD云硬盘 CLOUD_BSSD:表示通用型SSD云硬盘
}

type Domain

type Domain struct {
	DomainId *string `json:"domain_id"`
	Name     *string `json:"name"`
	Meta     any     `json:"meta"`
}

type DomainCountInfo

type DomainCountInfo struct {
	Total *int64 `json:"total"`
}

type EIP

type EIP struct {
	ID            *string `json:"id"`
	Region        string  `json:"region"`
	CloudProvider Cloud   `json:"cloud_provider"`
	Account       string  `json:"account"`
	Tags          *Tags   `json:"tags"`
	Name          *string `json:"name"`
	// `EIP`状态,包含'CREATING'(创建中),'BINDING'(绑定中),'BIND'(已绑定),'UNBINDING'(解绑中),'UNBIND'(已解绑),'OFFLINING'(释放中),'BIND_ENI'(绑定悬空弹性网卡)
	Status             *string    `json:"status"`
	AddressIp          *string    `json:"address_ip"`
	InstanceId         *string    `json:"instance_id"`
	CreatedTime        *time.Time `json:"created_time"`
	NetworkInterfaceId string     `json:"network_interface_id"`
	PrivateAddressIp   string     `json:"private_address_ip"`
	Bandwidth          *int64     `json:"bandwidth"`
	InternetChargeType *string    `json:"internet_charge_type"`
}

type EMRClusterStatus

type EMRClusterStatus string
const (
	EMRClusterWaiting              EMRClusterStatus = "WAITING"
	EMRClusterStarting             EMRClusterStatus = "STARTING"
	EMRClusterBootstrapping        EMRClusterStatus = "BOOTSTRAPPING"
	EMRClusterRunning              EMRClusterStatus = "RUNNING"
	EMRClusterTerminated           EMRClusterStatus = "TERMINATED"
	EMRClusterTerminating          EMRClusterStatus = "TERMINATING"
	EMRClusterTerminatedWithErrors EMRClusterStatus = "TERMINATED_WITH_ERRORS"
	EMRClusterUnknown              EMRClusterStatus = "UNKNOWN"
)

func EMRClusterStatusList

func EMRClusterStatusList() []EMRClusterStatus

func FmtTencentState

func FmtTencentState(state *int64) EMRClusterStatus

fmtState 转换 EMR 集群状态 接入腾讯云 实例的状态码。取值范围: <li>2:表示集群运行中。</li> <li>3:表示集群创建中。</li> <li>4:表示集群扩容中。 </li> <li>5:表示集群增加router节点中。</li> <li>6:表示集群安装组件中。</li> <li>7:表示集群执行命令中。 </li> <li>8:表示重启服务中。</li> <li>9:表示进入维护中。</li> <li>10:表示服务暂停中。</li> <li>11:表示退出维护中。 </li> <li>12:表示退出暂停中。</li> <li>13:表示配置下发中。</li> <li>14:表示销毁集群中。</li> <li>15:表示销毁core节点中。 </li> <li>16:销毁task节点中。</li> <li>17:表示销毁router节点中。</li> <li>18:表示更改webproxy密码中。</li> <li>19:表示集群隔离中。 </li> <li>20:表示集群冲正中。</li> <li>21:表示集群回收中。</li> <li>22:表示变配等待中。</li> <li>23:表示集群已隔离。 </li> <li>24:表示缩容节点中。</li> <li>33:表示集群等待退费中。</li> <li>34:表示集群已退费。</li> <li>301:表示创建失败。 </li> <li>302:表示扩容失败。</li> 注意:此字段可能返回 null,表示取不到有效值。 201 集群隔离中

type EMRInstaceSpec

type EMRInstaceSpec struct {
	InstanceCount *int64  `json:"instance_count"`
	InstanceType  *string `json:"instance_type"`
	DiskType      *string `json:"disk_type"`
	DiskSize      *int64  `json:"disk_size"`
	DiskNum       *int64  `json:"disk_num"`
	RootSize      *int64  `json:"root_size"`
}

tencent https://cloud.tencent.com/document/api/589/33981#Resource

type EmrCluster

type EmrCluster struct {
	ID, Name *string
	Status   EMRClusterStatus
	AddTime  time.Time
}

更详细的信息用Describe接口查询

type EmrConfig

type EmrConfig struct {
	Private        EmrConfigDetail `mapstructure:"private"`
	Public         EmrConfigDetail `mapstructure:"public"`
	EmrTidbPrivate EmrConfigDetail `mapstructure:"tidb-private"`
}

type EmrConfigDetail

type EmrConfigDetail struct {
	KeyId           string `mapstructure:"key_id"`            // 云账号的key_id
	VpcId           string `mapstructure:"vpc_id"`            // vpc_id
	SubnetId        string `mapstructure:"subnet_id"`         // 子网id
	SgId            string `mapstructure:"sg_id" `            // 安全组id
	SgSlave         string `mapstructure:"sg_slave"`          // 安全组id
	SgServiceAccess string `mapstructure:"sg_service_access"` // 安全组id aws 特有私有子网需要
	Zone            string `mapstructure:"zone"`              // 可用区
	LogUri          string `mapstructure:"log_uri"`           // 日志路径 cosn://xxxxx/xxx
	Role            Role   `mapstructure:"role"`              // 角色
}

type EmrContact

type EmrContact interface {
}

type EmrFilter

type EmrFilter struct {
	Profile       *string            `json:"profile" binding:"required"`
	Region        *string            `json:"region" binding:"required"` // 为空则取默认
	ClusterStates []EMRClusterStatus `json:"cluster_states"`
	Period        *time.Duration     `json:"period"` // aws支持的,腾讯云没有用到
	NextMarker    *string            `json:"next_marker"`
}

type EmrSubnet

type EmrSubnet string
const (
	EmrSubnetPublic  EmrSubnet = "public"
	EmrSubnetPrivate EmrSubnet = "private"
	EmrTidbPrivate   EmrSubnet = "tidb-private"
)

type Filter

type Filter struct {
	Name   *string   `type:"string"`
	Values []*string `locationName:"Value" locationNameList:"item" type:"list"`
}

type FilterEmrResponse

type FilterEmrResponse struct {
	NextMarker *string
	Clusters   []EmrCluster
}

type GetBucketLifecycleRequest

type GetBucketLifecycleRequest struct {
	Bucket *string
}

type GetBucketLifecycleResponse

type GetBucketLifecycleResponse struct {
	Lifecycle []Lifecycle
}

type GetMonitorMetricDataRequest

type GetMonitorMetricDataRequest struct {
	InstanceType MetricInstanceType `json:"instance_type"`
	// 存储类型,仅当 InstanceType 为 MetricInstanceTypeCOS 时有效
	MetricsType *MetricsType `json:"storage_type,omitempty"`

	Instances []string `json:"instances,omitempty"` // cos 的 bucket 列表 一次最多 10个对象
}

只封装几个常用的数据获取,其他需要的可以自己扩展

func (*GetMonitorMetricDataRequest) ToTencentRequest

toTencentRequest

type GetMonitorMetricDataResponse

type GetMonitorMetricDataResponse struct {
	MetricName  string       `json:"metric_name"`
	MetricDatas []MetricData `json:"metric_datas"`
	Period      int64        `json:"period"`
}

type GetPictureByNameResponse

type GetPictureByNameResponse struct {
	GroupId    *string     `json:"group_id"`
	EntityId   *string     `json:"entity_id"`
	ImageInfos []ImageInfo `json:"image_infos"`
	RequestId  *string     `json:"request_id"`
}

type Group

type Group struct {
	CreateTime  *string `json:"create_time"` // "2023-02-02 18:04:08"
	UpdateTime  *string `json:"update_time"` // "2023-02-02 18:04:08"
	GroupId     *string `json:"group_id"`
	GroupName   *string `json:"group_name"`
	GroupType   *int64  `json:"group_type"`
	MaxCapacity *int64  `json:"max_capacity"`
	MaxQps      *int64  `json:"max_qps"`
	PicCount    *int64  `json:"pic_count"`
	Brief       *string `json:"brief"`
}

type Image

type Image struct {
	ID       string `json:"id"`
	Name     string `json:"name"`
	Arch     string `json:"arch"`
	Platform string `json:"platform"`
}

type ImageInfo

type ImageInfo struct {
	CustomContent *string `json:"custom_content"`
	EntityId      *string `json:"entity_id"`
	PicName       *string `json:"pic_name"`
	Score         *int64  `json:"score"`
	Tags          *string `json:"tags"`
}

type ImageRect

type ImageRect struct {
	X      *int64 `json:"x"`
	Y      *int64 `json:"y"`
	Width  *int64 `json:"width"`
	Height *int64 `json:"height"`
}

type Instance

type Instance struct {
	Name               *string        `json:"name"`
	InstanceID         *string        `json:"instance_id" gorm:"primarykey"`
	Profile            string         `json:"profile"`
	Zone               *string        `json:"zone"`
	KeyIDs             []*string      `json:"key_ids" gorm:"serializer:json"`
	Region             *string        `json:"region"`
	PrivateIP          []*string      `json:"private_ip" gorm:"serializer:json"`
	Platform           *string        `json:"platform"`
	PublicIP           []*string      `json:"public_ip" gorm:"serializer:json"`
	Status             InstanceStatus `json:"status"`
	Owner              *string        `json:"owner"`
	InstanceType       *string        `json:"instance_type"`
	Tags               *Tags          `json:"tags" gorm:"serializer:json"`
	InstanceChargeType *string        `json:"instance_charge_type"`
	CreatedTime        *time.Time     `json:"created_time"` // UTC 时间
}

type InstanceChargeType

type InstanceChargeType string

func (InstanceChargeType) IsValidForTencent

func (t InstanceChargeType) IsValidForTencent() bool

IsValid 判断是否是有效的实例计费类型,腾讯只支持 2 个类型 按量和包年包月

func (InstanceChargeType) String

func (InstanceChargeType) TString

func (t InstanceChargeType) TString() *string

func (InstanceChargeType) ToTencentEmrChargeType

func (t InstanceChargeType) ToTencentEmrChargeType() *uint64

*uint64 实例计费模式。取值范围: <li>0:表示按量计费。</li> <li>1:表示包年包月。</li>

type InstanceFilter

type InstanceFilter struct {
	Name       *string         `json:"name"`        // 机器名称,使用字符串包含匹配方式
	IDs        []*string       `json:"ids"`         // 机器ID列表,使用字符串包含匹配方式
	PrivateIp  *string         `json:"private_ip"`  // 私有IP
	PublicIp   *string         `json:"public_ip"`   // 公有IP
	Status     *InstanceStatus `json:"status"`      // 机器状态
	Owner      *string         `json:"owner"`       // 机器所有者,tags的Owner
	Size       *int64          `json:"size"`        // 分页大小
	NextMarker *string         `json:"next_marker"` // 如果没有下一页,返回nil 腾讯云直接返回所有数据,不需要分页
}

func (*InstanceFilter) ToAwsDescribeInstancesInput

func (q *InstanceFilter) ToAwsDescribeInstancesInput() DescribeInstancesInput

func (*InstanceFilter) ToTxDescribeInstancesInput

func (q *InstanceFilter) ToTxDescribeInstancesInput() DescribeInstancesInput

type InstancePolicy

type InstancePolicy string

type InstanceResponse

type InstanceResponse struct {
	Instances  []Instance `json:"instances"`
	NextMarker *string    `json:"next_marker"` // 如果没有下一页,返回nil 腾讯云直接返回所有数据,不需要分页
}

type InstanceStatus

type InstanceStatus string
const (
	InstanceStatusRunning InstanceStatus = "RUNNING"
	InstanceStatusStopped InstanceStatus = "STOPPED"
	InstanceStatusPending InstanceStatus = "PENDING"
	InstanceStatusUnknown InstanceStatus = "UNKNOWN"
	// STARTING
	InstanceStatusStarting InstanceStatus = "STARTING"
	// REBOOTING
	InstanceStatusRebooting InstanceStatus = "REBOOTING"
	// TERMINATED
	InstanceStatusTerminated InstanceStatus = "TERMINATED"
	// STOPPING
	InstanceStatusStopping InstanceStatus = "STOPPING"
)

func ToInstanceStatus

func ToInstanceStatus(s string) InstanceStatus

func (InstanceStatus) TString

func (i InstanceStatus) TString() *InstanceStatus

func (InstanceStatus) ToString

func (i InstanceStatus) ToString() string

type InstanceType

type InstanceType struct {
	Type string `json:"type"`
	CPU  int64  `json:"cpu"`
	Mem  int64  `json:"mem"`
}

type KeyPair

type KeyPair struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	PublicKey string `json:"public_ley"`
}

type Lifecycle

type Lifecycle struct {
	ID                             *string                                  `xml:"ID" json:"id" binding:"required"`
	Filter                         *LifecycleFilter                         `xml:"Filter" json:"filter"`
	Status                         *bool                                    `xml:"Status" json:"status"`
	Expiration                     *LifecycleExpiration                     `xml:"Expiration" json:"expiration"`
	NoncurrentVersionExpiration    *LifecycleNoncurrentVersionExpiration    `xml:"NoncurrentVersionExpiration" json:"noncurrent_version_expiration"`
	Transitions                    []LifecycleTransition                    `xml:"Transition" json:"transition"`
	NoncurrentVersionTransitions   []LifecycleNoncurrentVersionTransition   `xml:"NoncurrentVersionTransition" json:"noncurrent_version_transition"`
	AbortIncompleteMultipartUpload *LifecycleAbortIncompleteMultipartUpload `xml:"AbortIncompleteMultipartUpload" json:"abort_incomplete_multipart_upload"`
}

type LifecycleAbortIncompleteMultipartUpload

type LifecycleAbortIncompleteMultipartUpload struct {
	DaysAfterInitiation *int `xml:"DaysAfterInitiation" json:"days_after_initiation"`
}

type LifecycleExpiration

type LifecycleExpiration struct {
	Days *int `xml:"Days" json:"days"`
	// Date                      *string `xml:"Date" json:"date"` // timestampFormat:"iso8601" "2006-01-02T15:04:05Z"
	ExpiredObjectDeleteMarker *bool `xml:"ExpiredObjectDeleteMarker" json:"expired_object_delete_marker"`
}

type LifecycleFilter

type LifecycleFilter struct {
	Prefix *string `xml:"Prefix" json:"prefix"` // "" 表示整个存储桶
}

type LifecycleNoncurrentVersionExpiration

type LifecycleNoncurrentVersionExpiration struct {
	NoncurrentDays *int    `xml:"NoncurrentDays" json:"noncurrent_days"`
	StorageClass   *string `xml:"StorageClass" json:"storage_class"` // "STANDARD" "STANDARD_IA" "ARCHIVE"
}

type LifecycleNoncurrentVersionTransition

type LifecycleNoncurrentVersionTransition struct {
	NoncurrentDays *int    `xml:"NoncurrentDays" json:"noncurrent_days"`
	StorageClass   *string `xml:"StorageClass" json:"storage_class"` // "STANDARD" "STANDARD_IA" "ARCHIVE"
}

type LifecycleTransition

type LifecycleTransition struct {
	StorageClass *string `xml:"StorageClass" json:"storage_class"` // "STANDARD" "STANDARD_IA" "ARCHIVE"
	// Date         *string `xml:"Date" json:"date"`                  // timestampFormat:"iso8601" "2006-01-02T15:04:05Z"
	Days *int `xml:"Days" json:"days"`
}

type ListBucketRequest

type ListBucketRequest struct {
	KeyWord *string `json:"keyword"`
}

type ListBucketResponse

type ListBucketResponse struct {
	Buckets []*Bucket `json:"buckets"`
	Total   int64     `json:"total"`
}

type ListRecordsPageResponse

type ListRecordsPageResponse struct {
	PrePage    *int64   `json:"pre_page"`
	NextPage   *int64   `json:"next_page"`
	RecordList []Record `json:"record_list"`
}

type MetricData

type MetricData struct {
	Dimensions []Dimension `json:"dimensions"`
	DataPoints []DataPoint `json:"data_points"`
}

type MetricInstanceType

type MetricInstanceType int

MetricInstanceType 监控指标实例类型

const (
	// 云服务器实例
	MetricInstanceTypeCVM MetricInstanceType = iota
	// 云数据库实例
	MetricInstanceTypeCDB
	// 负载均衡实例
	MetricInstanceTypeLB
	// 对象存储实例
	MetricInstanceTypeCOS
	// 内容分发网络实例
	MetricInstanceTypeCDN
)

func (MetricInstanceType) String

func (t MetricInstanceType) String() string

String 转换为字符串

type MetricName

type MetricName string

MetricName 监控指标名称

const (
	// 对象存储总量
	MetricNameCOSStorage MetricName = "cos_storage"
	// 机器磁盘使用率
	MetricNameDiskUsage MetricName = "disk_usage"
)

type MetricsType

type MetricsType int

MetricsType 存储类型

const (
	// 标准存储
	MetricsTypeStandard MetricsType = iota
	// 低频存储
	MetricsTypeInfrequent
	// 归档存储
	MetricsTypeArchive
	// PUT类请求 QPS
	MetricsTypePutQps
	// GET类请求 QPS
	MetricsTypeGetQps
	// 删除对象请求 QPS DeleteObjectRequestsPs
	MetricsTypeDeleteQps
	// 批量删除对象请求 QPS
	MetricsTypeDeleteMultiObjQps

	// 磁盘使用率
	MetricsTypeCvmDiskUsage
)

func (MetricsType) String

func (t MetricsType) String() string

String 转换为字符串

type ModifyAction

type ModifyAction string
const (
	StartInstance            ModifyAction = "start_instance"
	StopInstance             ModifyAction = "stop_instance"
	RebootInstance           ModifyAction = "reboot_instance"
	ResetInstance            ModifyAction = "reset_instance"
	ChangeInstanceType       ModifyAction = "change_instance_type"
	ChangeInstanceTags       ModifyAction = "change_instance_tags"
	ChangeInstanceChargeType ModifyAction = "change_instance_charge_type"
	ChangeInstanceDiskType   ModifyAction = "change_instance_disk_type"
)

type ModifyInstanceInput

type ModifyInstanceInput struct {
	Action             ModifyAction
	InstanceIDs        []string            `json:"instance_ids"`         // ["ins-r8hr2upy","ins-5d8a23rs"]
	InstanceType       *string             `json:"instance_type"`        // Action="change_instance_type" 时必填
	InstanceChargeType *InstanceChargeType `json:"instance_charge_type"` // Action="change_instance_charge_type" 时必填
	ModifyTagsInput    *struct {
		Key   *string `json:"key"`
		Value *string `json:"value"`
	} `json:"modify_tags_input"` // Action="change_instance_tags" 时必填
	ForceStop *bool `json:"force_stop"` // Action="stop_instance" 时可选,是否强制关机,默认 false
}

type ModifyInstanceResponse

type ModifyInstanceResponse struct {
	Meta any `json:"meta"`
}

type ModifyRecordRequest

type ModifyRecordRequest struct {
	Domain     *string `json:"domain" binding:"required"`
	RecordType *string `json:"record_type" binding:"required"` //记录类型,通过 API 记录类型获得,大写英文,比如:A 。
	Value      *string `json:"value" binding:"required"`       //记录值,如 IP。
	RecordId   *uint64 `json:"record_id"`                      //记录ID。
	SubDomain  *string `json:"sub_domain" binding:"required"`  //主机记录,如 www,可选,如果不传,默认为 @。
	TTL        *uint64 `json:"ttl"`                            //记录生效时间,默认600秒(10分钟),最大值604800秒。
	Weight     *uint64 `json:"weight"`                         //记录权重,值为1-100。
	Status     *bool   `json:"status"`                         //AWS该参数无效。腾讯该参数为是否启用,true 启用,false 禁用。
	Info       *string `json:"info"`                           //备注,主要描述修改原因用途(aws不支持,tencent支持)
}

type ModifyTagsInput

type ModifyTagsInput struct {
	InstanceId *string `json:"instance_id" binding:"required"`
	Key        *string `json:"key" binding:"required"`
	Value      *string `json:"value" binding:"required"`
}

type ModifyVolumeInput

type ModifyVolumeInput struct {
	VolumeID *string `json:"volume_id"`
	Size     *int64  `json:"size"` // new size in GB
	Type     *string `json:"type"` // new volume type
}

ModifyVolumeInput represents the input for modifying a volume

type NAT

type NAT struct {
	ID            string    `json:"id"`
	Region        string    `json:"region"`
	Account       string    `json:"account"`
	CloudProvider Cloud     `json:"cloud_provider"`
	Tags          *Tags     `json:"tags"`
	Name          string    `json:"name"`
	CreatedTime   time.Time `json:"created_time"`
	Status        string    `json:"status"`
	AddressIps    []string  `json:"address_ips"`
	VpcID         string    `json:"vpc_id"`
	Zone          *string   `json:"zone"`
	SubnetID      string    `json:"subnet_id"`
}

type Object

type Object struct {
	Box        *Box     `json:"box"`
	Colors     []*Color `json:"colors"`
	CategoryId *int64   `json:"category_id"`
	Attributes []*Attr  `json:"attributes"`
	AllBox     []*Box   `json:"all_box"`
}

type ObjectPregisnRequest

type ObjectPregisnRequest struct {
	Bucket *string `json:"bucket" binding:"required"`
	Key    *string `json:"key" binding:"required"`
	Expire *int64  `json:"expire"` // 默认 1 小时。 签名最多支持7天(604800秒),控制台上最多 12小时(43200秒)
}

type ObjectPregisnResponse

type ObjectPregisnResponse struct {
	Url string `json:"url"`
}

type OcrRequest

type OcrRequest struct {
	ImageBase64  *string `json:"image_base64"`
	ImageUrl     *string `json:"image_url"`
	LanguageType *string `json:"language_type"`
}

type OcrResponse

type OcrResponse struct {
	TextDetections []TextDetection `json:"text_detections"`
}

type PolicySet

type PolicySet struct {
	Egress  []SecurityGroupPolicy `json:"egress"`  // 出站规则
	Ingress []SecurityGroupPolicy `json:"ingress"` // 入站规则
}

func (*PolicySet) ToTencentPolicySet

func (p *PolicySet) ToTencentPolicySet() *tencentVpc.SecurityGroupPolicySet

to *tencentVpc.SecurityGroupPolicySet

type PrivateDomain

type PrivateDomain struct {
	DomainId    *string `json:"domain_id"`
	Name        *string `json:"name"`
	RecordCount *int64  `json:"record_count"`
	VpcSet      any     `json:"vpc_set"`
	Status      *string `json:"status"` // 私有域绑定VPC状态,未关联vpc:SUSPEND,已关联VPC:ENABLED,关联VPC失败:FAILED
	Tags        any     `json:"tags"`
}

type ProfileConfig

type ProfileConfig struct {
	Name string `mapstructure:"name" binding:"required"`
	AK   string `mapstructure:"ak" binding:"required"`
	SK   string `mapstructure:"sk" binding:"required"`
	// Regions []string `mapstructure:"regions" binding:"required"` // init clinet must have region
	Cloud Cloud `mapstructure:"cloud" binding:"required"`
}

type QueryPictureRequest

type QueryPictureRequest struct {
	Offset  *int64  `json:"offset"`
	Limit   *int64  `json:"limit"`
	GroupId *string `json:"group_id"`
}

type QueryPictureResponse

type QueryPictureResponse struct {
	Groups    []Group `json:"groups"`
	RequestId *string `json:"request_id"`
}

type Record

type Record struct {
	RecordId   *string `json:"record_id"`
	Value      *string `json:"value"` // aws []string 腾讯 string,aws取 1 个可能会有 bug.
	SubDomain  *string `json:"sub_domain"`
	RecordLine *string `json:"record_line"`
	RecordType *string `json:"record_type"`
	TTL        *uint64 `json:"ttl"`
	Status     *string `json:"status"` // ENABLE 和 DISABLE
	UpdatedOn  *string `json:"updated_on"`
	Weight     *uint64 `json:"weight"`
	DomainId   *uint64 `json:"domain_id"`
	Remark     *string `json:"remark"`
}

type RedrivePolicy

type RedrivePolicy struct {
	MaxReceiveCount     string `json:"max_receive_count" default:"10"`
	DeadLetterTargetArn string `json:"dead_letter_target_arn"`
}

type RemoveTagsInput

type RemoveTagsInput struct {
	InstanceId *string   `json:"instance_id" binding:"required"`
	Keys       []*string `json:"keys"`
}

type ResourceSpec

type ResourceSpec struct {
	HA                 *bool           `json:"ha"`
	VPC                *string         `json:"vpc"`
	Subnet             *string         `json:"subnet"`
	SgId               *string         `json:"sg_id"`
	Passwd             *string         `json:"passwd"`
	KeyID              *string         `json:"key_id"`
	MasterResourceSpec *EMRInstaceSpec `json:"master_resource_spec"`
	CoreResourceSpec   *EMRInstaceSpec `json:"core_resource_spec"`
	TaskResourceSpec   *EMRInstaceSpec `json:"task_resource_spec"`
}

type Role

type Role struct {
	JobFlowRole string `mapstructure:"job_flow_role"` // ec2的role
	ServiceRole string `mapstructure:"service_role"`  // emr服务的role
}

type SearchPictureRequest

type SearchPictureRequest struct {
	GroupId        *string    `json:"group_id" binding:"required"`
	ImageUrl       *string    `json:"image_url"`
	ImageBase64    *string    `json:"image_base64"`
	Limit          *int64     `json:"limit"`
	Offset         *int64     `json:"offset"`
	MatchThreshold *int64     `json:"match_threshold"`
	Filter         *string    `json:"filter"`
	ImageRect      *ImageRect `json:"image_rect"`
	EnableDetect   *bool      `json:"enable_detect"` // 是否需要启用主体识别,默认为TRUE 。
	CategoryId     *int64     `json:"category_id"`   // 识别的商品类别ID,若不填则为全部类别。
}

type SearchPictureResponse

type SearchPictureResponse struct {
	RequestId  *string     `json:"request_id"`
	Count      *int64      `json:"count"`
	ImageInfos []ImageInfo `json:"image_infos"`
	Object     Object      `json:"object"`
}

type SecurityGroup

type SecurityGroup struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

type SecurityGroupPolicy

type SecurityGroupPolicy struct {
	SecurityGroupId   *string `json:"security_group_id"`
	Protocol          *string `json:"protocol" binding:"required"`   // 协议,取值: TCP,UDP,ICMP,ICMPv6,ALL。
	Port              *string `json:"port" binding:"required"`       // 端口范围,取值:1~65535。示例值:22
	CidrBlock         *string `json:"cidr_block" binding:"required"` // 来源IP或CIDR 示例值:0.0.0.0/16
	Action            *string `json:"action" binding:"required"`     // ACCEPT 或者 DROP
	PolicyDescription *string `json:"policy_description"`            // 描述
	ModifyTime        *string `json:"modify_time"`                   // 修改时间
}

func (*SecurityGroupPolicy) ToTencentPolicy

func (policy *SecurityGroupPolicy) ToTencentPolicy() *tencentVpc.SecurityGroupPolicy

to *tencentVpc.SecurityGroupPolicy

type SqsConfig

type SqsConfig struct {
	// 可见性超时 0-12小时 from 0 to 43,200 (12 hours). Default: 30.
	VisibilityTimeout int `json:"visibility_timeout"`
	// 消息保留时间 应介于 60 秒至 1209600 秒之间。
	MessageRetention int `json:"message_retention"`
	// 最大消息大小 KB 应介于  1024-262144
	MaximumMessageSize int `json:"max_message_size"`
	// 接收消息等待时间 0-20秒
	ReceiveWaitTime int `json:"receive_wait_time"`
	// 交付延迟 0-15分钟
	DelaySeconds int `json:"delay_seconds"`
}

type Subnet

type Subnet struct {
	ID                      *string    `json:"id"`
	Region                  string     `json:"region"`
	Account                 string     `json:"account"`
	CloudProvider           Cloud      `json:"cloud_provider"`
	Tags                    *Tags      `json:"tags"`
	VpcID                   *string    `json:"vpc_id"`
	Name                    *string    `json:"name"`
	CidrBlock               *string    `json:"cidr_block"`
	AvailableIpAddressCount int64      `json:"available_ip_address_count"`
	IsDefault               *bool      `json:"is_default"`
	Zone                    *string    `json:"zone"`
	RouteTableId            *string    `json:"route_table_id"`
	CreatedTime             *time.Time `json:"created_time"`
	NetworkAclId            *string    `json:"network_acl_id"`
}

type Tag

type Tag struct {
	Key   string
	Value string
}

type Tags

type Tags []Tag

func AwsTagsToModelTags

func AwsTagsToModelTags(tags []*ec2.Tag) *Tags

aws tags to model tags []*ec2.Tag

func NewTagsFromAWSEmrTags

func NewTagsFromAWSEmrTags(tags []*emr.Tag) Tags

func NewTagsFromAWSS3Tags

func NewTagsFromAWSS3Tags(tags []*s3.Tag) Tags

func NewTagsFromTencentCosTags

func NewTagsFromTencentCosTags(tags []cos.BucketTaggingTag) Tags

func NewTagsFromTencentEmrTags

func NewTagsFromTencentEmrTags(tags []*tencentEmr.Tag) Tags

func TencentTagsToModelTags

func TencentTagsToModelTags(tags []*cvm.Tag) *Tags

tencent tags to model tags

func TencentVpcTagsFmt

func TencentVpcTagsFmt(tags []*tencentVpc.Tag) *Tags

func (*Tags) Add

func (t *Tags) Add(key, value string)

add

func (Tags) GetEnvType

func (t Tags) GetEnvType() *string

get EnvType

func (Tags) GetName

func (t Tags) GetName() *string

func (Tags) GetOwner

func (t Tags) GetOwner() *string

get Owner

func (Tags) GetTagValueByKey

func (t Tags) GetTagValueByKey(key string) *string

更通用的方法

func (Tags) GetTeam

func (t Tags) GetTeam() *string

get Team

func (Tags) GetTimeByKey

func (t Tags) GetTimeByKey(key string, location *time.Location) (*time.Time, error)

获取到期时间ExpireTime 格式支持 202506101220 2025061012 20250610

func (*Tags) Remove

func (t *Tags) Remove(key string)

remove

func (*Tags) Scan

func (t *Tags) Scan(value interface{}) error

for gorm

func (Tags) ToAWSEmrTags

func (t Tags) ToAWSEmrTags() []*emr.Tag

to aws emr tags

func (Tags) ToAWSS3Tags

func (t Tags) ToAWSS3Tags() []*s3.Tag

to aws s3 tags

func (*Tags) ToRunInstanceTags

func (t *Tags) ToRunInstanceTags() []*cvm.TagSpecification

func (Tags) ToString

func (t Tags) ToString() string

to string

func (Tags) ToTencentCosTags

func (t Tags) ToTencentCosTags() []cos.BucketTaggingTag

to tencent cos tags

func (*Tags) ToTencentEmrTags

func (t *Tags) ToTencentEmrTags() []*tencentEmr.Tag

[]*emr.Tag

func (*Tags) ToTencentTags

func (t *Tags) ToTencentTags() []*tencentTag.Tag

func (Tags) Value

func (t Tags) Value() (driver.Value, error)

Value implements the Valuer interface for Tags

type TencenteDiskType

type TencenteDiskType string

硬盘介质类型。取值范围: CLOUD_BASIC:表示普通云硬盘 CLOUD_PREMIUM:表示高性能云硬盘 CLOUD_BSSD:表示通用型SSD云硬盘 CLOUD_SSD:表示SSD云硬盘 CLOUD_HSSD:表示增强型SSD云硬盘 CLOUD_TSSD:表示极速型SSD云硬盘。

const (
	TencenteDiskTypeCLOUD_BASIC   TencenteDiskType = "CLOUD_BASIC"
	TencenteDiskTypeCLOUD_PREMIUM TencenteDiskType = "CLOUD_PREMIUM"
	TencenteDiskTypeCLOUD_BSSD    TencenteDiskType = "CLOUD_BSSD"
	TencenteDiskTypeCLOUD_SSD     TencenteDiskType = "CLOUD_SSD"
	TencenteDiskTypeCLOUD_HSSD    TencenteDiskType = "CLOUD_HSSD"
	TencenteDiskTypeCLOUD_TSSD    TencenteDiskType = "CLOUD_TSSD"
)

type TextDetection

type TextDetection struct {
	DetectedText *string  `json:"detected_text"` // 识别出的文本行内容
	Confidence   *int64   `json:"confidence"`    // 置信度 0 ~100
	Polygon      []*Coord `json:"polygon"`       // 文本行在图像中的四点坐标
}

type UpdatePictureRequest

type UpdatePictureRequest struct {
	GroupId  *string `json:"group_id" binding:"required"`
	EntityId *string `json:"entity_id" binding:"required"`
	PicName  *string `json:"pic_name"`
	Tags     *string `json:"tags"` // 新的自定义标签,最多不超过10个,格式为JSON
}

type VPC

type VPC struct {
	ID            string `json:"id"`
	Region        string `json:"region"`
	CloudProvider Cloud  `json:"cloud_provider"`
	Account       string `json:"account"`
	Tags          *Tags  `json:"tags"`
	IsDefault     bool   `json:"is_default"`
	CidrBlock     string `json:"cidr_block"`
}

type Volume

type Volume struct {
	VolumeID    *string           `json:"volume_id" gorm:"column:volume_id;primary_key"`
	Attachments VolumeAttachments `json:"attachments" gorm:"column:attachments;type:json"`
	Name        *string           `json:"name" gorm:"column:name"`
	Size        *int64            `json:"size" gorm:"column:size"`                 // GB
	Type        *string           `json:"type" gorm:"column:type"`                 // volume type
	Status      *string           `json:"status" gorm:"column:status"`             // volume status
	Zone        *string           `json:"zone" gorm:"column:zone"`                 // availability zone
	Profile     string            `json:"profile" gorm:"column:profile"`           // cloud profile
	Region      string            `json:"region" gorm:"column:region"`             // cloud region
	Tags        *Tags             `json:"tags" gorm:"column:tags;type:json"`       // volume tags
	CreatedTime *time.Time        `json:"created_time" gorm:"column:created_time"` // creation time
}

Volume represents a cloud disk volume

type VolumeAttachment

type VolumeAttachment struct {
	InstanceID         *string `json:"instance_id"`
	DeleteWithInstance *bool   `json:"delete_with_instance"`
}

type VolumeAttachments

type VolumeAttachments []*VolumeAttachment

func (*VolumeAttachments) Scan

func (v *VolumeAttachments) Scan(value interface{}) error

func (VolumeAttachments) Value

func (v VolumeAttachments) Value() (driver.Value, error)

Jump to

Keyboard shortcuts

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