type CreateSnapshotResponse struct {
JobID string `json:"jobid,omitempty"`
Account string `json:"account,omitempty"`
Created string `json:"created,omitempty"`
Domain string `json:"domain,omitempty"`
Domainid string `json:"domainid,omitempty"`
Id string `json:"id,omitempty"`
Intervaltype string `json:"intervaltype,omitempty"`
Name string `json:"name,omitempty"`
Physicalsize int64 `json:"physicalsize,omitempty"`
Project string `json:"project,omitempty"`
Projectid string `json:"projectid,omitempty"`
Revertable bool `json:"revertable,omitempty"`
Snapshottype string `json:"snapshottype,omitempty"`
State string `json:"state,omitempty"`
Tags []struct {
Account string `json:"account,omitempty"`
Customer string `json:"customer,omitempty"`
Domain string `json:"domain,omitempty"`
Domainid string `json:"domainid,omitempty"`
Key string `json:"key,omitempty"`
Project string `json:"project,omitempty"`
Projectid string `json:"projectid,omitempty"`
Resourceid string `json:"resourceid,omitempty"`
Resourcetype string `json:"resourcetype,omitempty"`
Value string `json:"value,omitempty"`
} `json:"tags,omitempty"`
Volumeid string `json:"volumeid,omitempty"`
Volumename string `json:"volumename,omitempty"`
Volumetype string `json:"volumetype,omitempty"`
Zoneid string `json:"zoneid,omitempty"`
}
type CreateSnapshotResponse struct {
JobID string `json:"jobid,omitempty"`
Account string `json:"account,omitempty"`
Created string `json:"created,omitempty"`
Domain string `json:"domain,omitempty"`
Domainid string `json:"domainid,omitempty"`
Id string `json:"id,omitempty"`
Intervaltype string `json:"intervaltype,omitempty"`
Name string `json:"name,omitempty"`
Physicalsize int64 `json:"physicalsize,omitempty"`
Project string `json:"project,omitempty"`
Projectid string `json:"projectid,omitempty"`
Revertable bool `json:"revertable,omitempty"`
Snapshottype string `json:"snapshottype,omitempty"`
State string `json:"state,omitempty"`
Tags []Tag `json:"tags,omitempty"`
Volumeid string `json:"volumeid,omitempty"`
Volumename string `json:"volumename,omitempty"`
Volumetype string `json:"volumetype,omitempty"`
Zoneid string `json:"zoneid,omitempty"`
}
現在あらゆる構造体中のTagsフィールドはTag型ではない(型が定義されていない)ので、たとえばCreateSnapshotResponseやDeployValueVirtualMachineResponseのTagsを引数にとるような関数が作れません。
Tags以外にもEgressrule、Securitygroup、Nic(Networknameのフィールドを持つものとそうでないものがある)なども型で定義して、それを使い回すとよいと思います