Files
cloudpods/pkg/cloudprovider/resources.go
2020-04-11 15:43:06 +08:00

961 lines
24 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cloudprovider
import (
"context"
"time"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/tristate"
"yunion.io/x/pkg/util/secrules"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/util/billing"
)
type ICloudResource interface {
GetId() string
GetName() string
GetGlobalId() string
GetStatus() string
Refresh() error
IsEmulated() bool
GetMetadata() *jsonutils.JSONDict
}
type IVirtualResource interface {
ICloudResource
GetProjectId() string
}
type IBillingResource interface {
GetBillingType() string
GetCreatedAt() time.Time
GetExpiredAt() time.Time
SetAutoRenew(autoRenew bool) error
IsAutoRenew() bool
}
type ICloudRegion interface {
ICloudResource
// GetLatitude() float32
// GetLongitude() float32
GetGeographicInfo() SGeographicInfo
GetIZones() ([]ICloudZone, error)
GetIVpcs() ([]ICloudVpc, error)
GetIEips() ([]ICloudEIP, error)
GetIVpcById(id string) (ICloudVpc, error)
GetIZoneById(id string) (ICloudZone, error)
GetIEipById(id string) (ICloudEIP, error)
// Esxi没有zone需要通过region确认vm是否被删除
GetIVMById(id string) (ICloudVM, error)
GetIDiskById(id string) (ICloudDisk, error)
GetISecurityGroupById(secgroupId string) (ICloudSecurityGroup, error)
GetISecurityGroupByName(vpcId string, name string) (ICloudSecurityGroup, error)
CreateISecurityGroup(conf *SecurityGroupCreateInput) (ICloudSecurityGroup, error)
CreateIVpc(name string, desc string, cidr string) (ICloudVpc, error)
CreateEIP(eip *SEip) (ICloudEIP, error)
GetISnapshots() ([]ICloudSnapshot, error)
GetISnapshotById(snapshotId string) (ICloudSnapshot, error)
CreateSnapshotPolicy(*SnapshotPolicyInput) (string, error)
UpdateSnapshotPolicy(*SnapshotPolicyInput, string) error
DeleteSnapshotPolicy(string) error
ApplySnapshotPolicyToDisks(snapshotPolicyId string, diskId string) error
CancelSnapshotPolicyToDisks(snapshotPolicyId string, diskId string) error
GetISnapshotPolicies() ([]ICloudSnapshotPolicy, error)
GetISnapshotPolicyById(snapshotPolicyId string) (ICloudSnapshotPolicy, error)
GetIHosts() ([]ICloudHost, error)
GetIHostById(id string) (ICloudHost, error)
GetIStorages() ([]ICloudStorage, error)
GetIStorageById(id string) (ICloudStorage, error)
GetIStoragecaches() ([]ICloudStoragecache, error)
GetIStoragecacheById(id string) (ICloudStoragecache, error)
GetILoadBalancers() ([]ICloudLoadbalancer, error)
GetILoadBalancerAcls() ([]ICloudLoadbalancerAcl, error)
GetILoadBalancerCertificates() ([]ICloudLoadbalancerCertificate, error)
GetILoadBalancerBackendGroups() ([]ICloudLoadbalancerBackendGroup, error) // for aws only
GetILoadBalancerById(loadbalancerId string) (ICloudLoadbalancer, error)
GetILoadBalancerAclById(aclId string) (ICloudLoadbalancerAcl, error)
GetILoadBalancerCertificateById(certId string) (ICloudLoadbalancerCertificate, error)
CreateILoadBalancer(loadbalancer *SLoadbalancer) (ICloudLoadbalancer, error)
CreateILoadBalancerAcl(acl *SLoadbalancerAccessControlList) (ICloudLoadbalancerAcl, error)
CreateILoadBalancerCertificate(cert *SLoadbalancerCertificate) (ICloudLoadbalancerCertificate, error)
GetISkus() ([]ICloudSku, error)
CreateISku(name string, vCpu int, memoryMb int) error
GetINetworkInterfaces() ([]ICloudNetworkInterface, error)
GetIBuckets() ([]ICloudBucket, error)
CreateIBucket(name string, storageClassStr string, acl string) error
DeleteIBucket(name string) error
IBucketExist(name string) (bool, error)
GetIBucketById(name string) (ICloudBucket, error)
GetIBucketByName(name string) (ICloudBucket, error)
GetIDBInstances() ([]ICloudDBInstance, error)
GetIDBInstanceById(instanceId string) (ICloudDBInstance, error)
GetIDBInstanceBackups() ([]ICloudDBInstanceBackup, error)
GetIDBInstanceBackupById(backupId string) (ICloudDBInstanceBackup, error)
CreateIDBInstance(desc *SManagedDBInstanceCreateConfig) (ICloudDBInstance, error)
GetIElasticcaches() ([]ICloudElasticcache, error)
GetIElasticcacheById(id string) (ICloudElasticcache, error)
CreateIElasticcaches(ec *SCloudElasticCacheInput) (ICloudElasticcache, error)
GetCloudEnv() string
GetProvider() string
GetICloudEvents(start time.Time, end time.Time, withReadEvent bool) ([]ICloudEvent, error) //获取公有云操作日志接口
GetCapabilities() []string
GetICloudQuotas() ([]ICloudQuota, error)
}
type ICloudZone interface {
ICloudResource
GetIRegion() ICloudRegion
GetIHosts() ([]ICloudHost, error)
GetIHostById(id string) (ICloudHost, error)
GetIStorages() ([]ICloudStorage, error)
GetIStorageById(id string) (ICloudStorage, error)
}
type ICloudImage interface {
ICloudResource
Delete(ctx context.Context) error
GetIStoragecache() ICloudStoragecache
GetSizeByte() int64
GetImageType() string
GetImageStatus() string
GetOsType() string
GetOsDist() string
GetOsVersion() string
GetOsArch() string
GetMinOsDiskSizeGb() int
GetMinRamSizeMb() int
GetImageFormat() string
GetCreatedAt() time.Time
}
type ICloudStoragecache interface {
ICloudResource
GetIImages() ([]ICloudImage, error)
GetIImageById(extId string) (ICloudImage, error)
GetPath() string
CreateIImage(snapshotId, imageName, osType, imageDesc string) (ICloudImage, error)
DownloadImage(userCred mcclient.TokenCredential, imageId string, extId string, path string) (jsonutils.JSONObject, error)
UploadImage(ctx context.Context, userCred mcclient.TokenCredential, image *SImageCreateOption, isForce bool) (string, error)
}
type ICloudStorage interface {
ICloudResource
GetIStoragecache() ICloudStoragecache
GetIZone() ICloudZone
GetIDisks() ([]ICloudDisk, error)
GetStorageType() string
GetMediumType() string
GetCapacityMB() int64 // MB
GetStorageConf() jsonutils.JSONObject
GetEnabled() bool
CreateIDisk(name string, sizeGb int, desc string) (ICloudDisk, error)
GetIDiskById(idStr string) (ICloudDisk, error)
GetMountPoint() string
IsSysDiskStore() bool
}
type ICloudHost interface {
ICloudResource
GetIVMs() ([]ICloudVM, error)
GetIVMById(id string) (ICloudVM, error)
GetIWires() ([]ICloudWire, error)
GetIStorages() ([]ICloudStorage, error)
GetIStorageById(id string) (ICloudStorage, error)
// GetStatus() string // os status
GetEnabled() bool // is enabled
GetHostStatus() string // service status
GetAccessIp() string //
GetAccessMac() string //
GetSysInfo() jsonutils.JSONObject
GetSN() string
GetCpuCount() int
GetNodeCount() int8
GetCpuDesc() string
GetCpuMhz() int
GetCpuCmtbound() float32
GetMemSizeMB() int
GetMemCmtbound() float32
GetReservedMemoryMb() int
GetStorageSizeMB() int
GetStorageType() string
GetHostType() string
GetIsMaintenance() bool
GetVersion() string
CreateVM(desc *SManagedVMCreateConfig) (ICloudVM, error)
GetIHostNics() ([]ICloudHostNetInterface, error)
}
type ICloudVM interface {
IBillingResource
IVirtualResource
ConvertPublicIpToEip() error
GetIHost() ICloudHost
GetIHostId() string
GetIDisks() ([]ICloudDisk, error)
GetINics() ([]ICloudNic, error)
GetIEIP() (ICloudEIP, error)
// GetStatus() string
// GetRemoteStatus() string
GetSerialOutput(port int) (string, error) // 目前仅谷歌云windows机器会使用到此接口
GetVcpuCount() int
GetVmemSizeMB() int //MB
GetBootOrder() string
GetVga() string
GetVdi() string
GetOSType() string
GetOSName() string
GetBios() string
GetMachine() string
GetInstanceType() string
GetSecurityGroupIds() ([]string, error)
AssignSecurityGroup(secgroupId string) error
SetSecurityGroups(secgroupIds []string) error
GetHypervisor() string
// GetSecurityGroup() ICloudSecurityGroup
StartVM(ctx context.Context) error
StopVM(ctx context.Context, isForce bool) error
DeleteVM(ctx context.Context) error
UpdateVM(ctx context.Context, name string) error
UpdateUserData(userData string) error
RebuildRoot(ctx context.Context, config *SManagedVMRebuildRootConfig) (string, error)
DeployVM(ctx context.Context, name string, username string, password string, publicKey string, deleteKeypair bool, description string) error
ChangeConfig(ctx context.Context, config *SManagedVMChangeConfig) error
GetVNCInfo() (jsonutils.JSONObject, error)
AttachDisk(ctx context.Context, diskId string) error
DetachDisk(ctx context.Context, diskId string) error
CreateDisk(ctx context.Context, sizeMb int, uuid string, driver string) error
Renew(bc billing.SBillingCycle) error
GetError() error
}
type ICloudNic interface {
GetIP() string
GetMAC() string
InClassicNetwork() bool
GetDriver() string
GetINetwork() ICloudNetwork
}
type ICloudEIP interface {
IBillingResource
IVirtualResource
GetIpAddr() string
GetMode() string
GetINetworkId() string
GetAssociationType() string
GetAssociationExternalId() string
GetBandwidth() int
GetInternetChargeType() string
Delete() error
Associate(conf *AssociateConfig) error
Dissociate() error
ChangeBandwidth(bw int) error
}
type ICloudSecurityGroup interface {
ICloudResource
GetDescription() string
GetRules() ([]secrules.SecurityRule, error)
GetVpcId() string
SyncRules(rules []secrules.SecurityRule) error
Delete() error
}
type ICloudRouteTable interface {
ICloudResource
GetDescription() string
GetRegionId() string
GetVpcId() string
GetType() string
GetIRoutes() ([]ICloudRoute, error)
}
type ICloudRoute interface {
GetType() string
GetCidr() string
GetNextHopType() string
GetNextHop() string
}
type ICloudDisk interface {
IBillingResource
IVirtualResource
GetIStorage() (ICloudStorage, error)
GetIStorageId() string
// GetStatus() string
GetDiskFormat() string
GetDiskSizeMB() int // MB
GetIsAutoDelete() bool
GetTemplateId() string
GetDiskType() string
GetFsFormat() string
GetIsNonPersistent() bool
GetDriver() string
GetCacheMode() string
GetMountpoint() string
GetAccessPath() string
Delete(ctx context.Context) error
CreateISnapshot(ctx context.Context, name string, desc string) (ICloudSnapshot, error)
GetISnapshot(idStr string) (ICloudSnapshot, error)
GetISnapshots() ([]ICloudSnapshot, error)
GetExtSnapshotPolicyIds() ([]string, error)
Resize(ctx context.Context, newSizeMB int64) error
Reset(ctx context.Context, snapshotId string) (string, error)
Rebuild(ctx context.Context) error
}
type ICloudSnapshot interface {
IVirtualResource
GetSizeMb() int32
GetDiskId() string
GetDiskType() string
Delete() error
}
type ICloudSnapshotPolicy interface {
IVirtualResource
IsActivated() bool
GetRetentionDays() int
GetRepeatWeekdays() ([]int, error)
GetTimePoints() ([]int, error)
}
type ICloudVpc interface {
// GetGlobalId() // 若vpc属于globalvpc,此函数返回格式必须是 'region.GetGlobalId()/vpc.GetGlobalId()'
ICloudResource
GetRegion() ICloudRegion
GetIsDefault() bool
GetCidrBlock() string
// GetStatus() string
GetIWires() ([]ICloudWire, error)
GetISecurityGroups() ([]ICloudSecurityGroup, error)
GetIRouteTables() ([]ICloudRouteTable, error)
Delete() error
GetIWireById(wireId string) (ICloudWire, error)
GetINatGateways() ([]ICloudNatGateway, error)
}
type ICloudWire interface {
ICloudResource
GetIVpc() ICloudVpc
GetIZone() ICloudZone
GetINetworks() ([]ICloudNetwork, error)
GetBandwidth() int
GetINetworkById(netid string) (ICloudNetwork, error)
CreateINetwork(name string, cidr string, desc string) (ICloudNetwork, error)
}
type ICloudNetwork interface {
IVirtualResource
GetIWire() ICloudWire
// GetStatus() string
GetIpStart() string
GetIpEnd() string
GetIpMask() int8
GetGateway() string
GetServerType() string
// GetIsPublic() bool
// GetPublicScope() rbacutils.TRbacScope
Delete() error
GetAllocTimeoutSeconds() int
}
type ICloudHostNetInterface interface {
GetDevice() string
GetDriver() string
GetMac() string
GetIndex() int8
IsLinkUp() tristate.TriState
GetIpAddr() string
GetMtu() int32
GetNicType() string
}
type ICloudLoadbalancer interface {
IVirtualResource
GetAddress() string
GetAddressType() string
GetNetworkType() string
GetNetworkIds() []string
GetVpcId() string
GetZoneId() string
GetLoadbalancerSpec() string
GetChargeType() string
GetEgressMbps() int
GetIEIP() (ICloudEIP, error)
Delete(ctx context.Context) error
Start() error
Stop() error
GetILoadBalancerListeners() ([]ICloudLoadbalancerListener, error)
GetILoadBalancerBackendGroups() ([]ICloudLoadbalancerBackendGroup, error)
CreateILoadBalancerBackendGroup(group *SLoadbalancerBackendGroup) (ICloudLoadbalancerBackendGroup, error)
GetILoadBalancerBackendGroupById(groupId string) (ICloudLoadbalancerBackendGroup, error)
CreateILoadBalancerListener(ctx context.Context, listener *SLoadbalancerListener) (ICloudLoadbalancerListener, error)
GetILoadBalancerListenerById(listenerId string) (ICloudLoadbalancerListener, error)
}
type ICloudLoadbalancerListener interface {
IVirtualResource
GetListenerType() string
GetListenerPort() int
GetScheduler() string
GetAclStatus() string
GetAclType() string
GetAclId() string
GetEgressMbps() int
GetHealthCheck() string
GetHealthCheckType() string
GetHealthCheckTimeout() int
GetHealthCheckInterval() int
GetHealthCheckRise() int
GetHealthCheckFail() int
GetHealthCheckReq() string
GetHealthCheckExp() string
GetBackendGroupId() string
GetBackendServerPort() int
// HTTP && HTTPS
GetHealthCheckDomain() string
GetHealthCheckURI() string
GetHealthCheckCode() string
CreateILoadBalancerListenerRule(rule *SLoadbalancerListenerRule) (ICloudLoadbalancerListenerRule, error)
GetILoadBalancerListenerRuleById(ruleId string) (ICloudLoadbalancerListenerRule, error)
GetILoadbalancerListenerRules() ([]ICloudLoadbalancerListenerRule, error)
GetStickySession() string
GetStickySessionType() string
GetStickySessionCookie() string
GetStickySessionCookieTimeout() int
XForwardedForEnabled() bool
GzipEnabled() bool
// HTTPS
GetCertificateId() string
GetTLSCipherPolicy() string
HTTP2Enabled() bool
Start() error
Stop() error
Sync(ctx context.Context, listener *SLoadbalancerListener) error
Delete(ctx context.Context) error
}
type ICloudLoadbalancerListenerRule interface {
IVirtualResource
IsDefault() bool
GetDomain() string
GetPath() string
GetCondition() string
GetBackendGroupId() string
Delete(ctx context.Context) error
}
type ICloudLoadbalancerBackendGroup interface {
IVirtualResource
IsDefault() bool
GetType() string
GetLoadbalancerId() string
GetILoadbalancerBackends() ([]ICloudLoadbalancerBackend, error)
GetILoadbalancerBackendById(backendId string) (ICloudLoadbalancerBackend, error)
GetProtocolType() string // huawei only .后端云服务器组的后端协议。
GetScheduler() string // huawei only
GetHealthCheck() (*SLoadbalancerHealthCheck, error) // huawei only
GetStickySession() (*SLoadbalancerStickySession, error) // huawei only
AddBackendServer(serverId string, weight int, port int) (ICloudLoadbalancerBackend, error)
RemoveBackendServer(serverId string, weight int, port int) error
Delete(ctx context.Context) error
Sync(ctx context.Context, group *SLoadbalancerBackendGroup) error
}
type ICloudLoadbalancerBackend interface {
IVirtualResource
GetWeight() int
GetPort() int
GetBackendType() string
GetBackendRole() string
GetBackendId() string
SyncConf(ctx context.Context, port, weight int) error
}
type ICloudLoadbalancerCertificate interface {
IVirtualResource
Sync(name, privateKey, publickKey string) error
Delete() error
GetCommonName() string
GetSubjectAlternativeNames() string
GetFingerprint() string // return value format: <algo>:<fingerprint>比如sha1:7454a14fdb8ae1ea8b2f72e458a24a76bd23ec19
GetExpireTime() time.Time
GetPublickKey() string
GetPrivateKey() string
}
type ICloudLoadbalancerAcl interface {
IVirtualResource
GetAclListenerID() string // huawei only
GetAclEntries() []SLoadbalancerAccessControlListEntry
Sync(acl *SLoadbalancerAccessControlList) error
Delete() error
}
type ICloudSku interface {
ICloudResource
GetInstanceTypeFamily() string
GetInstanceTypeCategory() string
GetPrepaidStatus() string
GetPostpaidStatus() string
GetCpuCoreCount() int
GetMemorySizeMB() int
GetOsName() string
GetSysDiskResizable() bool
GetSysDiskType() string
GetSysDiskMinSizeGB() int
GetSysDiskMaxSizeGB() int
GetAttachedDiskType() string
GetAttachedDiskSizeGB() int
GetAttachedDiskCount() int
GetDataDiskTypes() string
GetDataDiskMaxCount() int
GetNicType() string
GetNicMaxCount() int
GetGpuAttachable() bool
GetGpuSpec() string
GetGpuCount() int
GetGpuMaxCount() int
Delete() error
}
type ICloudProject interface {
ICloudResource
}
type ICloudNatGateway interface {
ICloudResource
IBillingResource
// 获取 NAT 规格
GetNatSpec() string
GetIEips() ([]ICloudEIP, error)
GetINatDTable() ([]ICloudNatDEntry, error)
GetINatSTable() ([]ICloudNatSEntry, error)
// ID is the ID of snat entry/rule or dnat entry/rule.
GetINatDEntryByID(id string) (ICloudNatDEntry, error)
GetINatSEntryByID(id string) (ICloudNatSEntry, error)
// Read the description of these two structures before using.
CreateINatDEntry(rule SNatDRule) (ICloudNatDEntry, error)
CreateINatSEntry(rule SNatSRule) (ICloudNatSEntry, error)
}
// ICloudNatDEntry describe a DNat rule which transfer externalIp:externalPort to
// internalIp:internalPort with IpProtocol(tcp/udp)
type ICloudNatDEntry interface {
ICloudResource
GetIpProtocol() string
GetExternalIp() string
GetExternalPort() int
GetInternalIp() string
GetInternalPort() int
Delete() error
}
// ICloudNatSEntry describe a SNat rule which transfer internalIp(GetIP()) to externalIp which from sourceCIDR
type ICloudNatSEntry interface {
ICloudResource
GetIP() string
GetSourceCIDR() string
GetNetworkId() string
Delete() error
}
type ICloudNetworkInterface interface {
ICloudResource
GetMacAddress() string
GetAssociateType() string
GetAssociateId() string
GetICloudInterfaceAddresses() ([]ICloudInterfaceAddress, error)
}
type ICloudInterfaceAddress interface {
GetGlobalId() string //返回IP即可
GetINetworkId() string
GetIP() string
IsPrimary() bool
}
type ICloudDBInstance interface {
IVirtualResource
IBillingResource
Reboot() error
GetMasterInstanceId() string
GetSecurityGroupId() string
GetPort() int
GetEngine() string
GetEngineVersion() string
//实例规格
GetInstanceType() string
GetVcpuCount() int
GetVmemSizeMB() int //MB
GetDiskSizeGB() int
//基础版、高可用?
GetCategory() string
GetStorageType() string
GetMaintainTime() string
GetConnectionStr() string
GetInternalConnectionStr() string
GetIZoneId() string
GetIVpcId() string
GetDBNetwork() (*SDBInstanceNetwork, error)
GetIDBInstanceParameters() ([]ICloudDBInstanceParameter, error)
GetIDBInstanceDatabases() ([]ICloudDBInstanceDatabase, error)
GetIDBInstanceAccounts() ([]ICloudDBInstanceAccount, error)
GetIDBInstanceBackups() ([]ICloudDBInstanceBackup, error)
ChangeConfig(ctx context.Context, config *SManagedDBInstanceChangeConfig) error
Renew(bc billing.SBillingCycle) error
OpenPublicConnection() error
ClosePublicConnection() error
CreateDatabase(conf *SDBInstanceDatabaseCreateConfig) error
CreateAccount(conf *SDBInstanceAccountCreateConfig) error
CreateIBackup(conf *SDBInstanceBackupCreateConfig) (string, error)
RecoveryFromBackup(conf *SDBInstanceRecoveryConfig) error
Delete() error
}
type ICloudDBInstanceParameter interface {
GetGlobalId() string
GetKey() string
GetValue() string
GetDescription() string
}
type ICloudDBInstanceBackup interface {
IVirtualResource
GetEngine() string
GetEngineVersion() string
GetDBInstanceId() string
GetStartTime() time.Time
GetEndTime() time.Time
GetBackupSizeMb() int
GetDBNames() string
GetBackupMode() string
Delete() error
}
type ICloudDBInstanceDatabase interface {
ICloudResource
GetCharacterSet() string
Delete() error
}
type ICloudDBInstanceAccount interface {
ICloudResource
GetIDBInstanceAccountPrivileges() ([]ICloudDBInstanceAccountPrivilege, error)
ResetPassword(password string) error
GrantPrivilege(database, privilege string) error
RevokePrivilege(database string) error
Delete() error
}
type ICloudDBInstanceAccountPrivilege interface {
GetGlobalId() string
GetPrivilege() string
GetDBName() string
}
type ICloudElasticcache interface {
IVirtualResource
IBillingResource
GetInstanceType() string
GetCapacityMB() int
GetArchType() string
GetNodeType() string
GetEngine() string
GetEngineVersion() string
GetVpcId() string
GetZoneId() string
GetNetworkType() string
GetNetworkId() string
GetPrivateDNS() string
GetPrivateIpAddr() string
GetPrivateConnectPort() int
GetPublicDNS() string
GetPublicIpAddr() string
GetPublicConnectPort() int
GetMaintainStartTime() string
GetMaintainEndTime() string
GetAuthMode() string
GetICloudElasticcacheAccounts() ([]ICloudElasticcacheAccount, error)
GetICloudElasticcacheAcls() ([]ICloudElasticcacheAcl, error)
GetICloudElasticcacheBackups() ([]ICloudElasticcacheBackup, error)
GetICloudElasticcacheParameters() ([]ICloudElasticcacheParameter, error)
GetICloudElasticcacheAccount(accountId string) (ICloudElasticcacheAccount, error)
GetICloudElasticcacheAcl(aclId string) (ICloudElasticcacheAcl, error)
GetICloudElasticcacheBackup(backupId string) (ICloudElasticcacheBackup, error)
Restart() error
Delete() error
ChangeInstanceSpec(spec string) error
SetMaintainTime(maintainStartTime, maintainEndTime string) error
AllocatePublicConnection(port int) (string, error) // return url & error info
ReleasePublicConnection() error
CreateAccount(account SCloudElasticCacheAccountInput) (ICloudElasticcacheAccount, error)
CreateAcl(aclName, securityIps string) (ICloudElasticcacheAcl, error)
CreateBackup() (ICloudElasticcacheBackup, error)
FlushInstance() error
UpdateAuthMode(noPasswordAccess bool) error
UpdateInstanceParameters(config jsonutils.JSONObject) error
UpdateBackupPolicy(config SCloudElasticCacheBackupPolicyUpdateInput) error
}
type ICloudElasticcacheAccount interface {
ICloudResource
GetAccountType() string
GetAccountPrivilege() string
Delete() error
ResetPassword(input SCloudElasticCacheAccountResetPasswordInput) error
UpdateAccount(input SCloudElasticCacheAccountUpdateInput) error
}
type ICloudElasticcacheAcl interface {
ICloudResource
GetIpList() string
Delete() error
UpdateAcl(securityIps string) error
}
type ICloudElasticcacheBackup interface {
ICloudResource
GetBackupSizeMb() int
GetBackupType() string
GetBackupMode() string
GetDownloadURL() string
GetStartTime() time.Time
GetEndTime() time.Time
Delete() error
RestoreInstance(instanceId string) error
}
type ICloudElasticcacheParameter interface {
ICloudResource
GetParameterKey() string
GetParameterValue() string
GetParameterValueRange() string
GetDescription() string
GetModifiable() bool
GetForceRestart() bool
}
type ICloudEvent interface {
GetName() string
GetService() string
GetAction() string
GetResourceType() string
GetRequestId() string
GetRequest() jsonutils.JSONObject
GetAccount() string
IsSuccess() bool
GetCreatedAt() time.Time
}
type ICloudQuota interface {
GetGlobalId() string
GetDesc() string
GetQuotaType() string
GetMaxQuotaCount() int
GetCurrentQuotaUsedCount() int
}
type ICloudPolicyDefinition interface {
GetGlobalId() string
GetName() string
GetCategory() string
GetCondition() string
GetParameters() *jsonutils.JSONDict
}