| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571 |
- // Copyright 2018 JDCLOUD.COM
- //
- // 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.
- //
- // NOTE: This class is auto generated by the jdcloud code generator program.
- package client
- import (
- "github.com/jdcloud-api/jdcloud-sdk-go/core"
- disk "github.com/jdcloud-api/jdcloud-sdk-go/services/disk/apis"
- "encoding/json"
- "errors"
- )
- type DiskClient struct {
- core.JDCloudClient
- }
- func NewDiskClient(credential *core.Credential) *DiskClient {
- if credential == nil {
- return nil
- }
- config := core.NewConfig()
- config.SetEndpoint("disk.jdcloud-api.com")
- return &DiskClient{
- core.JDCloudClient{
- Credential: *credential,
- Config: *config,
- ServiceName: "disk",
- Revision: "0.12.6",
- Logger: core.NewDefaultLogger(core.LogInfo),
- }}
- }
- func (c *DiskClient) SetConfig(config *core.Config) {
- c.Config = *config
- }
- func (c *DiskClient) SetLogger(logger core.Logger) {
- c.Logger = logger
- }
- func (c *DiskClient) DisableLogger() {
- c.Logger = core.NewDummyLogger()
- }
- /* 查询快照策略 */
- func (c *DiskClient) DescribeSnapPolices(request *disk.DescribeSnapPolicesRequest) (*disk.DescribeSnapPolicesResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeSnapPolicesResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 修改快照的名字或描述信息 */
- func (c *DiskClient) ModifySnapshotAttribute(request *disk.ModifySnapshotAttributeRequest) (*disk.ModifySnapshotAttributeResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.ModifySnapshotAttributeResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 删除云硬盘快照:快照状态必须为 available 或 error 状态。
- - 快照独立于云硬盘生命周期,删除快照不会对创建快照的云硬盘有任何影响。
- - 快照删除后不可恢复,请谨慎操作。
- */
- func (c *DiskClient) DeleteSnapshots(request *disk.DeleteSnapshotsRequest) (*disk.DeleteSnapshotsResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DeleteSnapshotsResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 修改快照策略 */
- func (c *DiskClient) UpdateSnapshotPolicy(request *disk.UpdateSnapshotPolicyRequest) (*disk.UpdateSnapshotPolicyResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.UpdateSnapshotPolicyResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询快照链的快照个数和快照总容量 */
- func (c *DiskClient) DescribeSnapshotChain(request *disk.DescribeSnapshotChainRequest) (*disk.DescribeSnapshotChainResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeSnapshotChainResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询快照策略与磁盘绑定关系 */
- func (c *DiskClient) DescribeSnapshotPolicyDiskRelations(request *disk.DescribeSnapshotPolicyDiskRelationsRequest) (*disk.DescribeSnapshotPolicyDiskRelationsResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeSnapshotPolicyDiskRelationsResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 删除快照策略 */
- func (c *DiskClient) DeleteSnapshotPolicy(request *disk.DeleteSnapshotPolicyRequest) (*disk.DeleteSnapshotPolicyResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DeleteSnapshotPolicyResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询某一块云硬盘的信息详情 */
- func (c *DiskClient) DescribeDisk(request *disk.DescribeDiskRequest) (*disk.DescribeDiskResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeDiskResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 扩容云硬盘到指定大小,云硬盘状态必须为 available。
- - 当云硬盘正在创建快照时,不允许扩容。
- */
- func (c *DiskClient) ExtendDisk(request *disk.ExtendDiskRequest) (*disk.ExtendDiskResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.ExtendDiskResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 查询您已经创建的云硬盘。
- - filters多个过滤条件之间是逻辑与(AND),每个条件内部的多个取值是逻辑或(OR)
- */
- func (c *DiskClient) DescribeVolumesIgnoreServiceCode(request *disk.DescribeVolumesIgnoreServiceCodeRequest) (*disk.DescribeVolumesIgnoreServiceCodeResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeVolumesIgnoreServiceCodeResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 修改云硬盘的名字或描述信息,名字或描述信息至少要指定一个。 */
- func (c *DiskClient) ModifyDiskAttribute(request *disk.ModifyDiskAttributeRequest) (*disk.ModifyDiskAttributeResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.ModifyDiskAttributeResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 绑定/解绑快照策略与磁盘关系 */
- func (c *DiskClient) ApplySnapshotPolicies(request *disk.ApplySnapshotPoliciesRequest) (*disk.ApplySnapshotPoliciesResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.ApplySnapshotPoliciesResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询快照容量 */
- func (c *DiskClient) DescribeSnapshotsCapacity(request *disk.DescribeSnapshotsCapacityRequest) (*disk.DescribeSnapshotsCapacityResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeSnapshotsCapacityResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 创建一块或多块按配置或者按使用时长付费的云硬盘。
- - 云硬盘类型包括高效云盘(premium-hdd)、SSD云盘(ssd)、通用型SSD(ssd.gp1)、性能型SSD(ssd.io1)、容量型HDD(hdd.std1)。
- - 计费方式默认为按配置付费。
- - 创建完成后,云硬盘状态为 available。
- - 可选参数快照 ID用于从快照创建新盘。
- - 批量创建时,云硬盘的命名为 硬盘名称-数字,例如 myDisk-1,myDisk-2。
- - maxCount为最大努力,不保证一定能达到maxCount。
- - userTags 为创建云盘时打的标签
- */
- func (c *DiskClient) CreateDisks(request *disk.CreateDisksRequest) (*disk.CreateDisksResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.CreateDisksResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 删除单个云硬盘快照:快照状态必须为 available 或 error 状态。
- - 快照独立于云硬盘生命周期,删除快照不会对创建快照的云硬盘有任何影响。
- - 快照删除后不可恢复,请谨慎操作。
- */
- func (c *DiskClient) DeleteSnapshot(request *disk.DeleteSnapshotRequest) (*disk.DeleteSnapshotResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DeleteSnapshotResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询云硬盘快照列表,filters多个过滤条件之间是逻辑与(AND),每个条件内部的多个取值是逻辑或(OR) */
- func (c *DiskClient) DescribeSnapshots(request *disk.DescribeSnapshotsRequest) (*disk.DescribeSnapshotsResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeSnapshotsResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 仅可对制作快照的源硬盘进行数据恢复操作。
- - 仅源硬盘处于可用状态时才能使用快照进行数据恢复操作。
- - 云硬盘恢复后,当前数据将被清除,请您谨慎操作。
- */
- func (c *DiskClient) RestoreDisk(request *disk.RestoreDiskRequest) (*disk.RestoreDiskResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.RestoreDiskResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 创建快照策略 */
- func (c *DiskClient) CreateSnapshotPolicy(request *disk.CreateSnapshotPolicyRequest) (*disk.CreateSnapshotPolicyResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.CreateSnapshotPolicyResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询快照策略 */
- func (c *DiskClient) DescribeSnapshotPolicies(request *disk.DescribeSnapshotPoliciesRequest) (*disk.DescribeSnapshotPoliciesResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeSnapshotPoliciesResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 查询您已经创建的云硬盘。
- - filters多个过滤条件之间是逻辑与(AND),每个条件内部的多个取值是逻辑或(OR)
- */
- func (c *DiskClient) DescribeDisks(request *disk.DescribeDisksRequest) (*disk.DescribeDisksResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeDisksResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 删除一块按配置计费的云硬盘,云盘类型包括高效云盘、SSD云盘、通用型SSD、性能型SSD和容量型HDD。
- - 删除云盘时,云盘的状态必须为 待挂载(Available)。
- - 云盘被删除后,云硬盘快照可以被保留。
- */
- func (c *DiskClient) DeleteDisk(request *disk.DeleteDiskRequest) (*disk.DeleteDiskResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DeleteDiskResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* - 为指定云硬盘创建快照,新生成的快照的状态为creating。
- - 同一地域下单用户快照的配额为15块。
- - 为保证数据完整性,请您在创建快照之前,停止对云硬盘进行写入操作,以保证快照数据的完整性。
- - 在执行创建快照前,建议您对云硬盘进行卸载操作,创建快照后再重新挂载到云主机上。
- - 手动快照的生命周期独立于云硬盘,请您及时删除不需要的快照。
- - 创建快照所需时间取决于云硬盘容量的大小,云硬盘容量越大耗时越长。
- */
- func (c *DiskClient) CreateSnapshot(request *disk.CreateSnapshotRequest) (*disk.CreateSnapshotResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.CreateSnapshotResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询云硬盘快照信息详情 */
- func (c *DiskClient) DescribeSnapshot(request *disk.DescribeSnapshotRequest) (*disk.DescribeSnapshotResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeSnapshotResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
- /* 查询云硬盘和快照资源的配额 */
- func (c *DiskClient) DescribeQuota(request *disk.DescribeQuotaRequest) (*disk.DescribeQuotaResponse, error) {
- if request == nil {
- return nil, errors.New("Request object is nil. ")
- }
- resp, err := c.Send(request, c.ServiceName)
- if err != nil {
- return nil, err
- }
- jdResp := &disk.DescribeQuotaResponse{}
- err = json.Unmarshal(resp, jdResp)
- if err != nil {
- c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
- return nil, err
- }
- return jdResp, err
- }
|