update ucloud-uhost builder (#9466)
* update ucloud-uhost builder, docs and deps Co-authored-by: Wilken Rivera <dev@wilkenrivera.com> Co-authored-by: Adrien Delorme <azr@users.noreply.github.com>
This commit is contained in:
parent
e54ad3f1fb
commit
8a8abdf615
|
@ -1,12 +1,19 @@
|
||||||
|
//go:generate struct-markdown
|
||||||
package common
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
|
|
||||||
"github.com/hashicorp/packer/template/interpolate"
|
"github.com/hashicorp/packer/template/interpolate"
|
||||||
"github.com/hashicorp/packer/version"
|
"github.com/hashicorp/packer/version"
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/external"
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/private/protocol/http"
|
||||||
"github.com/ucloud/ucloud-sdk-go/services/uaccount"
|
"github.com/ucloud/ucloud-sdk-go/services/uaccount"
|
||||||
"github.com/ucloud/ucloud-sdk-go/services/ufile"
|
"github.com/ucloud/ucloud-sdk-go/services/ufile"
|
||||||
"github.com/ucloud/ucloud-sdk-go/services/uhost"
|
"github.com/ucloud/ucloud-sdk-go/services/uhost"
|
||||||
|
@ -14,18 +21,41 @@ import (
|
||||||
"github.com/ucloud/ucloud-sdk-go/services/vpc"
|
"github.com/ucloud/ucloud-sdk-go/services/vpc"
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud"
|
"github.com/ucloud/ucloud-sdk-go/ucloud"
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/auth"
|
"github.com/ucloud/ucloud-sdk-go/ucloud/auth"
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/ucloud/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type AccessConfig struct {
|
type AccessConfig struct {
|
||||||
PublicKey string `mapstructure:"public_key"`
|
// This is the UCloud public key. It must be provided unless `profile` is set,
|
||||||
PrivateKey string `mapstructure:"private_key"`
|
// but it can also be sourced from the `UCLOUD_PUBLIC_KEY` environment variable.
|
||||||
Region string `mapstructure:"region"`
|
PublicKey string `mapstructure:"public_key" required:"true"`
|
||||||
ProjectId string `mapstructure:"project_id"`
|
// This is the UCloud private key. It must be provided unless `profile` is set,
|
||||||
BaseUrl string `mapstructure:"base_url"`
|
// but it can also be sourced from the `UCLOUD_PRIVATE_KEY` environment variable.
|
||||||
|
PrivateKey string `mapstructure:"private_key" required:"true"`
|
||||||
|
// This is the UCloud region. It must be provided, but it can also be sourced from
|
||||||
|
// the `UCLOUD_REGION` environment variables.
|
||||||
|
Region string `mapstructure:"region" required:"true"`
|
||||||
|
// This is the UCloud project id. It must be provided, but it can also be sourced
|
||||||
|
// from the `UCLOUD_PROJECT_ID` environment variables.
|
||||||
|
ProjectId string `mapstructure:"project_id" required:"true"`
|
||||||
|
// This is the base url. (Default: `https://api.ucloud.cn`).
|
||||||
|
BaseUrl string `mapstructure:"base_url" required:"false"`
|
||||||
|
// This is the UCloud profile name as set in the shared credentials file, it can
|
||||||
|
// also be sourced from the `UCLOUD_PROFILE` environment variables.
|
||||||
|
Profile string `mapstructure:"profile" required:"false"`
|
||||||
|
// This is the path to the shared credentials file, it can also be sourced from
|
||||||
|
// the `UCLOUD_SHARED_CREDENTIAL_FILE` environment variables. If this is not set
|
||||||
|
// and a profile is specified, `~/.ucloud/credential.json` will be used.
|
||||||
|
SharedCredentialsFile string `mapstructure:"shared_credentials_file" required:"false"`
|
||||||
|
|
||||||
client *UCloudClient
|
client *UCloudClient
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type cloudShellCredential struct {
|
||||||
|
Cookie string `json:"cookie"`
|
||||||
|
Profile string `json:"profile"`
|
||||||
|
CSRFToken string `json:"csrf_token"`
|
||||||
|
}
|
||||||
|
|
||||||
func (c *AccessConfig) Client() (*UCloudClient, error) {
|
func (c *AccessConfig) Client() (*UCloudClient, error) {
|
||||||
if c.client != nil {
|
if c.client != nil {
|
||||||
return c.client, nil
|
return c.client, nil
|
||||||
|
@ -37,13 +67,54 @@ func (c *AccessConfig) Client() (*UCloudClient, error) {
|
||||||
if c.BaseUrl != "" {
|
if c.BaseUrl != "" {
|
||||||
cfg.BaseUrl = c.BaseUrl
|
cfg.BaseUrl = c.BaseUrl
|
||||||
}
|
}
|
||||||
|
cfg.LogLevel = log.PanicLevel
|
||||||
cfg.UserAgent = fmt.Sprintf("Packer-UCloud/%s", version.FormattedVersion())
|
cfg.UserAgent = fmt.Sprintf("Packer-UCloud/%s", version.FormattedVersion())
|
||||||
// set default max retry count
|
// set default max retry count
|
||||||
cfg.MaxRetries = 3
|
cfg.MaxRetries = 3
|
||||||
|
|
||||||
cred := auth.NewCredential()
|
cred := auth.NewCredential()
|
||||||
cred.PublicKey = c.PublicKey
|
var cloudShellCredHandler ucloud.HttpRequestHandler
|
||||||
cred.PrivateKey = c.PrivateKey
|
if len(c.Profile) > 0 {
|
||||||
|
// load public/private key from shared credential file
|
||||||
|
credV, err := external.LoadUCloudCredentialFile(c.SharedCredentialsFile, c.Profile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("cannot load shared %q credential file, %s", c.Profile, err)
|
||||||
|
}
|
||||||
|
cred = *credV
|
||||||
|
} else if len(c.PublicKey) > 0 && len(c.PrivateKey) > 0 {
|
||||||
|
cred.PublicKey = c.PublicKey
|
||||||
|
cred.PrivateKey = c.PrivateKey
|
||||||
|
} else if v := os.Getenv("CLOUD_SHELL"); v == "true" {
|
||||||
|
csCred := make([]cloudShellCredential, 0)
|
||||||
|
// load credential from default cloud shell credential path
|
||||||
|
if err := loadJSONFile(defaultCloudShellCredPath(), &csCred); err != nil {
|
||||||
|
return nil, fmt.Errorf("must set credential about public_key and private_key, %s", err)
|
||||||
|
}
|
||||||
|
// get default cloud shell credential
|
||||||
|
defaultCsCred := &cloudShellCredential{}
|
||||||
|
for i := 0; i < len(csCred); i++ {
|
||||||
|
if csCred[i].Profile == "default" {
|
||||||
|
defaultCsCred = &csCred[i]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if defaultCsCred == nil || len(defaultCsCred.Cookie) == 0 || len(defaultCsCred.CSRFToken) == 0 {
|
||||||
|
return nil, fmt.Errorf("must set credential about public_key and private_key, default credential is null")
|
||||||
|
}
|
||||||
|
|
||||||
|
// set cloud shell client handler
|
||||||
|
cloudShellCredHandler = func(c *ucloud.Client, req *http.HttpRequest) (*http.HttpRequest, error) {
|
||||||
|
if err := req.SetHeader("Cookie", defaultCsCred.Cookie); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := req.SetHeader("Csrf-Token", defaultCsCred.CSRFToken); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return req, nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return nil, fmt.Errorf("must set credential about public_key and private_key")
|
||||||
|
}
|
||||||
|
|
||||||
c.client = &UCloudClient{}
|
c.client = &UCloudClient{}
|
||||||
c.client.UHostConn = uhost.NewClient(&cfg, &cred)
|
c.client.UHostConn = uhost.NewClient(&cfg, &cred)
|
||||||
|
@ -52,6 +123,24 @@ func (c *AccessConfig) Client() (*UCloudClient, error) {
|
||||||
c.client.UAccountConn = uaccount.NewClient(&cfg, &cred)
|
c.client.UAccountConn = uaccount.NewClient(&cfg, &cred)
|
||||||
c.client.UFileConn = ufile.NewClient(&cfg, &cred)
|
c.client.UFileConn = ufile.NewClient(&cfg, &cred)
|
||||||
|
|
||||||
|
if cloudShellCredHandler != nil {
|
||||||
|
if err := c.client.UHostConn.AddHttpRequestHandler(cloudShellCredHandler); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := c.client.UNetConn.AddHttpRequestHandler(cloudShellCredHandler); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := c.client.VPCConn.AddHttpRequestHandler(cloudShellCredHandler); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := c.client.UAccountConn.AddHttpRequestHandler(cloudShellCredHandler); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := c.client.UFileConn.AddHttpRequestHandler(cloudShellCredHandler); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return c.client, nil
|
return c.client, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,12 +158,28 @@ func (c *AccessConfig) Prepare(ctx *interpolate.Context) []error {
|
||||||
errs = append(errs, fmt.Errorf("%q must be set", "region"))
|
errs = append(errs, fmt.Errorf("%q must be set", "region"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if c.ProjectId == "" {
|
||||||
|
c.ProjectId = os.Getenv("UCLOUD_PROJECT_ID")
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.ProjectId == "" {
|
||||||
|
errs = append(errs, fmt.Errorf("%q must be set", "projectId"))
|
||||||
|
}
|
||||||
|
|
||||||
if c.BaseUrl != "" {
|
if c.BaseUrl != "" {
|
||||||
if _, err := url.Parse(c.BaseUrl); err != nil {
|
if _, err := url.Parse(c.BaseUrl); err != nil {
|
||||||
errs = append(errs, fmt.Errorf("%q is invalid, should be an valid ucloud base_url, got %q, parse error: %s", "base_url", c.BaseUrl, err))
|
errs = append(errs, fmt.Errorf("%q is invalid, should be an valid ucloud base_url, got %q, parse error: %s", "base_url", c.BaseUrl, err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if c.Profile == "" {
|
||||||
|
c.Profile = os.Getenv("UCLOUD_PROFILE")
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.SharedCredentialsFile == "" {
|
||||||
|
c.SharedCredentialsFile = os.Getenv("UCLOUD_SHARED_CREDENTIAL_FILE")
|
||||||
|
}
|
||||||
|
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
return errs
|
return errs
|
||||||
}
|
}
|
||||||
|
@ -90,12 +195,16 @@ func (c *AccessConfig) Config() error {
|
||||||
c.PrivateKey = os.Getenv("UCLOUD_PRIVATE_KEY")
|
c.PrivateKey = os.Getenv("UCLOUD_PRIVATE_KEY")
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.ProjectId == "" {
|
if c.Profile == "" {
|
||||||
c.ProjectId = os.Getenv("UCLOUD_PROJECT_ID")
|
c.Profile = os.Getenv("UCLOUD_PROFILE")
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.PublicKey == "" || c.PrivateKey == "" || c.ProjectId == "" {
|
if c.SharedCredentialsFile == "" {
|
||||||
return fmt.Errorf("%q, %q, and %q must be set", "public_key", "private_key", "project_id")
|
c.SharedCredentialsFile = os.Getenv("UCLOUD_SHARED_CREDENTIAL_FILE")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c.PublicKey == "" || c.PrivateKey == "") && c.Profile == "" && os.Getenv("CLOUD_SHELL") != "true" {
|
||||||
|
return fmt.Errorf("%q, %q must be set in template file or environment variables", "public_key", "private_key")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
||||||
|
@ -148,11 +257,10 @@ func (c *AccessConfig) ValidateZone(region, zone string) error {
|
||||||
|
|
||||||
func (c *AccessConfig) getSupportedProjectIds() ([]string, error) {
|
func (c *AccessConfig) getSupportedProjectIds() ([]string, error) {
|
||||||
client, err := c.Client()
|
client, err := c.Client()
|
||||||
conn := client.UAccountConn
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
conn := client.UAccountConn
|
||||||
req := conn.NewGetProjectListRequest()
|
req := conn.NewGetProjectListRequest()
|
||||||
resp, err := conn.GetProjectList(req)
|
resp, err := conn.GetProjectList(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -171,11 +279,11 @@ func (c *AccessConfig) getSupportedProjectIds() ([]string, error) {
|
||||||
|
|
||||||
func (c *AccessConfig) getSupportedRegions() ([]string, error) {
|
func (c *AccessConfig) getSupportedRegions() ([]string, error) {
|
||||||
client, err := c.Client()
|
client, err := c.Client()
|
||||||
conn := client.UAccountConn
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conn := client.UAccountConn
|
||||||
req := conn.NewGetRegionRequest()
|
req := conn.NewGetRegionRequest()
|
||||||
resp, err := conn.GetRegion(req)
|
resp, err := conn.GetRegion(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -194,11 +302,11 @@ func (c *AccessConfig) getSupportedRegions() ([]string, error) {
|
||||||
|
|
||||||
func (c *AccessConfig) getSupportedZones(region string) ([]string, error) {
|
func (c *AccessConfig) getSupportedZones(region string) ([]string, error) {
|
||||||
client, err := c.Client()
|
client, err := c.Client()
|
||||||
conn := client.UAccountConn
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conn := client.UAccountConn
|
||||||
req := conn.NewGetRegionRequest()
|
req := conn.NewGetRegionRequest()
|
||||||
resp, err := conn.GetRegion(req)
|
resp, err := conn.GetRegion(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -215,3 +323,36 @@ func (c *AccessConfig) getSupportedZones(region string) ([]string, error) {
|
||||||
|
|
||||||
return validZones, nil
|
return validZones, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func defaultCloudShellCredPath() string {
|
||||||
|
return filepath.Join(userHomeDir(), ".ucloud", "credential.json")
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadJSONFile(path string, p interface{}) error {
|
||||||
|
f, err := os.Open(path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
c, err := ioutil.ReadAll(f)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = json.Unmarshal(c, p)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func userHomeDir() string {
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH")
|
||||||
|
if home == "" {
|
||||||
|
home = os.Getenv("USERPROFILE")
|
||||||
|
}
|
||||||
|
return home
|
||||||
|
}
|
||||||
|
return os.Getenv("HOME")
|
||||||
|
}
|
||||||
|
|
|
@ -28,4 +28,11 @@ var BootDiskTypeMap = NewStringConverter(map[string]string{
|
||||||
"cloud_ssd": "CLOUD_SSD",
|
"cloud_ssd": "CLOUD_SSD",
|
||||||
"local_normal": "LOCAL_NORMAL",
|
"local_normal": "LOCAL_NORMAL",
|
||||||
"local_ssd": "LOCAL_SSD",
|
"local_ssd": "LOCAL_SSD",
|
||||||
|
"cloud_rssd": "CLOUD_RSSD",
|
||||||
|
})
|
||||||
|
|
||||||
|
var ChargeModeMap = NewStringConverter(map[string]string{
|
||||||
|
"post_accurate_bandwidth": "PostAccurateBandwidth",
|
||||||
|
"traffic": "Traffic",
|
||||||
|
"bandwidth": "Bandwidth",
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
//go:generate mapstructure-to-hcl2 -type ImageDestination
|
//go:generate mapstructure-to-hcl2 -type ImageDestination
|
||||||
|
//go:generate struct-markdown
|
||||||
|
|
||||||
package common
|
package common
|
||||||
|
|
||||||
|
@ -10,17 +11,48 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type ImageDestination struct {
|
type ImageDestination struct {
|
||||||
ProjectId string `mapstructure:"project_id"`
|
// The destination project id, where copying image in.
|
||||||
Region string `mapstructure:"region"`
|
ProjectId string `mapstructure:"project_id" required:"false"`
|
||||||
Name string `mapstructure:"name"`
|
// The destination region, where copying image in.
|
||||||
Description string `mapstructure:"description"`
|
Region string `mapstructure:"region" required:"false"`
|
||||||
|
// The copied image name. If not defined, builder will use `image_name` as default name.
|
||||||
|
Name string `mapstructure:"name" required:"false"`
|
||||||
|
// The copied image description.
|
||||||
|
Description string `mapstructure:"description" required:"false"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ImageConfig struct {
|
type ImageConfig struct {
|
||||||
ImageName string `mapstructure:"image_name"`
|
// The name of the user-defined image, which contains 1-63 characters and only
|
||||||
ImageDescription string `mapstructure:"image_description"`
|
// support Chinese, English, numbers, '-\_,.:[]'.
|
||||||
ImageDestinations []ImageDestination `mapstructure:"image_copy_to_mappings"`
|
ImageName string `mapstructure:"image_name" required:"true"`
|
||||||
WaitImageReadyTimeout int `mapstructure:"wait_image_ready_timeout"`
|
// The description of the image.
|
||||||
|
ImageDescription string `mapstructure:"image_description" required:"false"`
|
||||||
|
// The array of mappings regarding the copied images to the destination regions and projects.
|
||||||
|
//
|
||||||
|
// - `project_id` (string) - The destination project id, where copying image in.
|
||||||
|
//
|
||||||
|
// - `region` (string) - The destination region, where copying image in.
|
||||||
|
//
|
||||||
|
// - `name` (string) - The copied image name. If not defined, builder will use `image_name` as default name.
|
||||||
|
//
|
||||||
|
// - `description` (string) - The copied image description.
|
||||||
|
//
|
||||||
|
// ```json
|
||||||
|
// {
|
||||||
|
// "image_copy_to_mappings": [
|
||||||
|
// {
|
||||||
|
// "project_id": "{{user `ucloud_project_id`}}",
|
||||||
|
// "region": "cn-sh2",
|
||||||
|
// "description": "test",
|
||||||
|
// "name": "packer-test-basic-sh"
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
ImageDestinations []ImageDestination `mapstructure:"image_copy_to_mappings" required:"false"`
|
||||||
|
// Timeout of creating image or copying image. The default timeout is 3600 seconds if this option
|
||||||
|
// is not set or is set to 0.
|
||||||
|
WaitImageReadyTimeout int `mapstructure:"wait_image_ready_timeout" required:"false"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var ImageNamePattern = regexp.MustCompile(`^[A-Za-z0-9\p{Han}-_\[\]:,.]{1,63}$`)
|
var ImageNamePattern = regexp.MustCompile(`^[A-Za-z0-9\p{Han}-_\[\]:,.]{1,63}$`)
|
||||||
|
|
|
@ -9,10 +9,10 @@ import (
|
||||||
// FlatImageDestination is an auto-generated flat version of ImageDestination.
|
// FlatImageDestination is an auto-generated flat version of ImageDestination.
|
||||||
// Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
|
// Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
|
||||||
type FlatImageDestination struct {
|
type FlatImageDestination struct {
|
||||||
ProjectId *string `mapstructure:"project_id" cty:"project_id" hcl:"project_id"`
|
ProjectId *string `mapstructure:"project_id" required:"false" cty:"project_id" hcl:"project_id"`
|
||||||
Region *string `mapstructure:"region" cty:"region" hcl:"region"`
|
Region *string `mapstructure:"region" required:"false" cty:"region" hcl:"region"`
|
||||||
Name *string `mapstructure:"name" cty:"name" hcl:"name"`
|
Name *string `mapstructure:"name" required:"false" cty:"name" hcl:"name"`
|
||||||
Description *string `mapstructure:"description" cty:"description" hcl:"description"`
|
Description *string `mapstructure:"description" required:"false" cty:"description" hcl:"description"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// FlatMapstructure returns a new FlatImageDestination.
|
// FlatMapstructure returns a new FlatImageDestination.
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
|
//go:generate struct-markdown
|
||||||
package common
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
|
||||||
"github.com/hashicorp/packer/common/uuid"
|
"github.com/hashicorp/packer/common/uuid"
|
||||||
|
@ -10,18 +12,69 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type RunConfig struct {
|
type RunConfig struct {
|
||||||
Zone string `mapstructure:"availability_zone"`
|
// This is the UCloud availability zone where UHost instance is located. such as: `cn-bj2-02`.
|
||||||
SourceImageId string `mapstructure:"source_image_id"`
|
// You may refer to [list of availability_zone](https://docs.ucloud.cn/api/summary/regionlist)
|
||||||
InstanceType string `mapstructure:"instance_type"`
|
Zone string `mapstructure:"availability_zone" required:"true"`
|
||||||
InstanceName string `mapstructure:"instance_name"`
|
// This is the ID of base image which you want to create your customized images with.
|
||||||
BootDiskType string `mapstructure:"boot_disk_type"`
|
SourceImageId string `mapstructure:"source_image_id" required:"true"`
|
||||||
VPCId string `mapstructure:"vpc_id"`
|
// The type of UHost instance.
|
||||||
SubnetId string `mapstructure:"subnet_id"`
|
// You may refer to [list of instance type](https://docs.ucloud.cn/compute/terraform/specification/instance)
|
||||||
SecurityGroupId string `mapstructure:"security_group_id"`
|
InstanceType string `mapstructure:"instance_type" required:"true"`
|
||||||
|
// The name of instance, which contains 1-63 characters and only support Chinese,
|
||||||
|
// English, numbers, '-', '\_', '.'.
|
||||||
|
InstanceName string `mapstructure:"instance_name" required:"false"`
|
||||||
|
// The type of boot disk associated to UHost instance.
|
||||||
|
// Possible values are: `cloud_ssd` and `cloud_rssd` for cloud boot disk, `local_normal` and `local_ssd`
|
||||||
|
// for local boot disk. (Default: `cloud_ssd`). The `cloud_ssd` and `local_ssd` are not fully supported
|
||||||
|
// by all regions as boot disk type, please proceed to UCloud console for more details.
|
||||||
|
//
|
||||||
|
//~> **Note:** It takes around 10 mins for boot disk initialization when `boot_disk_type` is `local_normal` or `local_ssd`.
|
||||||
|
BootDiskType string `mapstructure:"boot_disk_type" required:"false"`
|
||||||
|
// The ID of VPC linked to the UHost instance. If not defined `vpc_id`, the instance will use the default VPC in the current region.
|
||||||
|
VPCId string `mapstructure:"vpc_id" required:"false"`
|
||||||
|
// The ID of subnet under the VPC. If `vpc_id` is defined, the `subnet_id` is mandatory required.
|
||||||
|
// If `vpc_id` and `subnet_id` are not defined, the instance will use the default subnet in the current region.
|
||||||
|
SubnetId string `mapstructure:"subnet_id" required:"false"`
|
||||||
|
// The ID of the fire wall associated to UHost instance. If `security_group_id` is not defined,
|
||||||
|
// the instance will use the non-recommended web fire wall, and open port include 22, 3389 by default.
|
||||||
|
// It is supported by ICMP fire wall protocols.
|
||||||
|
// You may refer to [security group_id](https://docs.ucloud.cn/network/firewall/firewall).
|
||||||
|
SecurityGroupId string `mapstructure:"security_group_id" required:"false"`
|
||||||
|
// Maximum bandwidth to the elastic public network, measured in Mbps (Mega bit per second). (Default: `10`).
|
||||||
|
EipBandwidth int `mapstructure:"eip_bandwidth" required:"false"`
|
||||||
|
// Elastic IP charge mode. Possible values are: `traffic` as pay by traffic, `bandwidth` as pay by bandwidth,
|
||||||
|
// `post_accurate_bandwidth` as post pay mode. (Default: `traffic`).
|
||||||
|
// Note currently default `traffic` eip charge mode not not fully support by all `availability_zone`
|
||||||
|
// in the `region`, please proceed to [UCloud console](https://console.ucloud.cn/unet/eip/create) for more details.
|
||||||
|
// You may refer to [eip introduction](https://docs.ucloud.cn/unet/eip/introduction).
|
||||||
|
EipChargeMode string `mapstructure:"eip_charge_mode" required:"false"`
|
||||||
|
// User data to apply when launching the instance.
|
||||||
|
// Note that you need to be careful about escaping characters due to the templates
|
||||||
|
// being JSON. It is often more convenient to use user_data_file, instead.
|
||||||
|
// Packer will not automatically wait for a user script to finish before
|
||||||
|
// shutting down the instance this must be handled in a provisioner.
|
||||||
|
// You may refer to [user_data_document](https://docs.ucloud.cn/uhost/guide/metadata/userdata)
|
||||||
|
UserData string `mapstructure:"user_data" required:"false"`
|
||||||
|
// Path to a file that will be used for the user data when launching the instance.
|
||||||
|
UserDataFile string `mapstructure:"user_data_file" required:"false"`
|
||||||
|
// Specifies a minimum CPU platform for the the VM instance. (Default: `Intel/Auto`).
|
||||||
|
// You may refer to [min_cpu_platform](https://docs.ucloud.cn/uhost/introduction/uhost/type_new)
|
||||||
|
// - The Intel CPU platform:
|
||||||
|
// - `Intel/Auto` as the Intel CPU platform version will be selected randomly by system;
|
||||||
|
// - `Intel/IvyBridge` as Intel V2, the version of Intel CPU platform selected by system will be `Intel/IvyBridge` and above;
|
||||||
|
// - `Intel/Haswell` as Intel V3, the version of Intel CPU platform selected by system will be `Intel/Haswell` and above;
|
||||||
|
// - `Intel/Broadwell` as Intel V4, the version of Intel CPU platform selected by system will be `Intel/Broadwell` and above;
|
||||||
|
// - `Intel/Skylake` as Intel V5, the version of Intel CPU platform selected by system will be `Intel/Skylake` and above;
|
||||||
|
// - `Intel/Cascadelake` as Intel V6, the version of Intel CPU platform selected by system will be `Intel/Cascadelake`;
|
||||||
|
// - The AMD CPU platform:
|
||||||
|
// - `Amd/Auto` as the Amd CPU platform version will be selected randomly by system;
|
||||||
|
// - `Amd/Epyc2` as the version of Amd CPU platform selected by system will be `Amd/Epyc2` and above;
|
||||||
|
MinCpuPlatform string `mapstructure:"min_cpu_platform" required:"false"`
|
||||||
// Communicator settings
|
// Communicator settings
|
||||||
Comm communicator.Config `mapstructure:",squash"`
|
Comm communicator.Config `mapstructure:",squash"`
|
||||||
UseSSHPrivateIp bool `mapstructure:"use_ssh_private_ip"`
|
// If this value is true, packer will connect to the created UHost instance via a private ip
|
||||||
|
// instead of allocating an EIP (elastic public ip).(Default: `false`).
|
||||||
|
UseSSHPrivateIp bool `mapstructure:"use_ssh_private_ip"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var instanceNamePattern = regexp.MustCompile(`^[A-Za-z0-9\p{Han}-_.]{1,63}$`)
|
var instanceNamePattern = regexp.MustCompile(`^[A-Za-z0-9\p{Han}-_.]{1,63}$`)
|
||||||
|
@ -50,7 +103,7 @@ func (c *RunConfig) Prepare(ctx *interpolate.Context) []error {
|
||||||
if c.BootDiskType == "" {
|
if c.BootDiskType == "" {
|
||||||
c.BootDiskType = "cloud_ssd"
|
c.BootDiskType = "cloud_ssd"
|
||||||
} else if err := CheckStringIn(c.BootDiskType,
|
} else if err := CheckStringIn(c.BootDiskType,
|
||||||
[]string{"local_normal", "local_ssd", "cloud_ssd"}); err != nil {
|
[]string{"local_normal", "local_ssd", "cloud_ssd", "cloud_rssd"}); err != nil {
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,11 +123,41 @@ func (c *RunConfig) Prepare(ctx *interpolate.Context) []error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(errs) > 0 {
|
if c.UserData != "" && c.UserDataFile != "" {
|
||||||
return errs
|
errs = append(errs, fmt.Errorf("only one of user_data or user_data_file can be specified"))
|
||||||
|
} else if c.UserDataFile != "" {
|
||||||
|
if _, err := os.Stat(c.UserDataFile); err != nil {
|
||||||
|
errs = append(errs, fmt.Errorf("user_data_file not found: %s", c.UserDataFile))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
if c.MinCpuPlatform == "" {
|
||||||
|
c.MinCpuPlatform = "Intel/Auto"
|
||||||
|
} else if err := CheckStringIn(c.MinCpuPlatform,
|
||||||
|
[]string{
|
||||||
|
"Intel/Auto",
|
||||||
|
"Intel/IvyBridge",
|
||||||
|
"Intel/Haswell",
|
||||||
|
"Intel/Broadwell",
|
||||||
|
"Intel/Skylake",
|
||||||
|
"Intel/Cascadelake",
|
||||||
|
"Amd/Auto",
|
||||||
|
"Amd/Epyc2",
|
||||||
|
}); err != nil {
|
||||||
|
errs = append(errs, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.EipChargeMode == "" {
|
||||||
|
c.EipChargeMode = "traffic"
|
||||||
|
} else if err := CheckStringIn(c.EipChargeMode, []string{"traffic", "bandwidth", "post_accurate_bandwidth"}); err != nil {
|
||||||
|
errs = append(errs, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.EipBandwidth == 0 {
|
||||||
|
c.EipBandwidth = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
return errs
|
||||||
}
|
}
|
||||||
|
|
||||||
var instancePasswordUpperPattern = regexp.MustCompile(`[A-Z]`)
|
var instancePasswordUpperPattern = regexp.MustCompile(`[A-Z]`)
|
||||||
|
|
|
@ -47,34 +47,42 @@ var instanceTypeScaleMap = map[string]int{
|
||||||
|
|
||||||
var availableHostTypes = []string{"n"}
|
var availableHostTypes = []string{"n"}
|
||||||
|
|
||||||
func parseInstanceTypeByCustomize(splited ...string) (*InstanceType, error) {
|
func parseInstanceTypeByCustomize(split ...string) (*InstanceType, error) {
|
||||||
if len(splited) != 4 {
|
if len(split) != 4 {
|
||||||
return nil, fmt.Errorf("instance type is invalid, expected like n-customize-1-2")
|
return nil, fmt.Errorf("instance type is invalid, expected like n-customized-1-2")
|
||||||
}
|
}
|
||||||
|
|
||||||
hostType := splited[0]
|
hostType := split[0]
|
||||||
err := CheckStringIn(hostType, availableHostTypes)
|
err := CheckStringIn(hostType, availableHostTypes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("instance type is invalid, the host type of customized %q can only be %q", "instance_type", "n")
|
||||||
}
|
}
|
||||||
|
|
||||||
hostScaleType := splited[1]
|
hostScaleType := split[1]
|
||||||
|
|
||||||
cpu, err := strconv.Atoi(splited[2])
|
cpu, err := strconv.Atoi(split[2])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("cpu count is invalid, please use a number")
|
return nil, fmt.Errorf("cpu count is invalid, please use a number")
|
||||||
}
|
}
|
||||||
|
|
||||||
memory, err := strconv.Atoi(splited[3])
|
memory, err := strconv.Atoi(split[3])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("memory count is invalid, please use a number")
|
return nil, fmt.Errorf("memory count is invalid, please use a number")
|
||||||
}
|
}
|
||||||
|
|
||||||
if cpu/memory > 2 || memory/cpu > 12 {
|
if cpu != 1 && (cpu%2) != 0 {
|
||||||
|
return nil, fmt.Errorf("expected the number of cores of cpu must be divisible by 2 without a remainder (except single core), got %d", cpu)
|
||||||
|
}
|
||||||
|
|
||||||
|
if memory != 1 && (memory%2) != 0 {
|
||||||
|
return nil, fmt.Errorf("expected the number of memory must be divisible by 2 without a remainder (except single memory), got %d", memory)
|
||||||
|
}
|
||||||
|
|
||||||
|
if cpu/memory > 2 || memory/cpu > 12 || (cpu/memory == 2 && cpu%memory != 0) || (memory/cpu == 12 && memory%cpu != 0) {
|
||||||
return nil, fmt.Errorf("the ratio of cpu to memory should be range of 2:1 ~ 1:12, got %d:%d", cpu, memory)
|
return nil, fmt.Errorf("the ratio of cpu to memory should be range of 2:1 ~ 1:12, got %d:%d", cpu, memory)
|
||||||
}
|
}
|
||||||
|
|
||||||
if memory/cpu == 1 || memory/cpu == 2 || memory/cpu == 4 || memory/cpu == 8 {
|
if (memory/cpu == 1 || memory/cpu == 2 || memory/cpu == 4 || memory/cpu == 8) && memory%cpu == 0 {
|
||||||
return nil, fmt.Errorf("instance type is invalid, expected %q like %q,"+
|
return nil, fmt.Errorf("instance type is invalid, expected %q like %q,"+
|
||||||
"the Type can be highcpu, basic, standard, highmem when the ratio of cpu to memory is 1:1, 1:2, 1:4, 1:8", "n-Type-CPU", "n-standard-1")
|
"the Type can be highcpu, basic, standard, highmem when the ratio of cpu to memory is 1:1, 1:2, 1:4, 1:8", "n-Type-CPU", "n-standard-1")
|
||||||
}
|
}
|
||||||
|
@ -87,14 +95,6 @@ func parseInstanceTypeByCustomize(splited ...string) (*InstanceType, error) {
|
||||||
return nil, fmt.Errorf("expected memory to be in the range (1 - 128),got %d", memory)
|
return nil, fmt.Errorf("expected memory to be in the range (1 - 128),got %d", memory)
|
||||||
}
|
}
|
||||||
|
|
||||||
if cpu != 1 && (cpu%2) != 0 {
|
|
||||||
return nil, fmt.Errorf("expected the number of cores of cpu must be divisible by 2 without a remainder (except single core), got %d", cpu)
|
|
||||||
}
|
|
||||||
|
|
||||||
if memory != 1 && (memory%2) != 0 {
|
|
||||||
return nil, fmt.Errorf("expected the number of memory must be divisible by 2 without a remainder (except single memory), got %d", memory)
|
|
||||||
}
|
|
||||||
|
|
||||||
t := &InstanceType{}
|
t := &InstanceType{}
|
||||||
t.HostType = hostType
|
t.HostType = hostType
|
||||||
t.HostScaleType = hostScaleType
|
t.HostScaleType = hostScaleType
|
||||||
|
@ -103,7 +103,7 @@ func parseInstanceTypeByCustomize(splited ...string) (*InstanceType, error) {
|
||||||
return t, nil
|
return t, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var availableOutstandingCpu = []int{4, 8, 16, 32, 64}
|
var availableOutstandingCpu = []int{2, 4, 8, 16, 32, 64, 96}
|
||||||
|
|
||||||
func parseInstanceTypeByNormal(split ...string) (*InstanceType, error) {
|
func parseInstanceTypeByNormal(split ...string) (*InstanceType, error) {
|
||||||
if len(split) != 3 {
|
if len(split) != 3 {
|
||||||
|
@ -111,15 +111,16 @@ func parseInstanceTypeByNormal(split ...string) (*InstanceType, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
hostType := split[0]
|
hostType := split[0]
|
||||||
err := CheckStringIn(hostType, []string{"n", "o"})
|
err := CheckStringIn(hostType, []string{"n", "o", "c"})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("instance type is invalid, the host type of %q must be one of %#v", "instance_type", []string{"n", "o", "c"})
|
||||||
}
|
}
|
||||||
|
|
||||||
hostScaleType := split[1]
|
hostScaleType := split[1]
|
||||||
|
|
||||||
if scale, ok := instanceTypeScaleMap[hostScaleType]; !ok {
|
if scale, ok := instanceTypeScaleMap[hostScaleType]; !ok {
|
||||||
return nil, fmt.Errorf("instance type is invalid, expected like n-standard-1")
|
return nil, fmt.Errorf("instance type is invalid, expected like %q,"+
|
||||||
|
"the Type can be highcpu, basic, standard, highmem when the ratio of cpu to memory is 1:1, 1:2, 1:4, 1:8, got %q ", "n-standard-1", hostScaleType)
|
||||||
} else {
|
} else {
|
||||||
cpu, err := strconv.Atoi(split[2])
|
cpu, err := strconv.Atoi(split[2])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -132,7 +133,7 @@ func parseInstanceTypeByNormal(split ...string) (*InstanceType, error) {
|
||||||
|
|
||||||
if hostType == "o" {
|
if hostType == "o" {
|
||||||
if err := CheckIntIn(cpu, availableOutstandingCpu); err != nil {
|
if err := CheckIntIn(cpu, availableOutstandingCpu); err != nil {
|
||||||
return nil, fmt.Errorf("expected cpu of outstanding instancetype %q", err)
|
return nil, fmt.Errorf("expected cpu of `O` instance type must be one of %#v, got %q", availableOutstandingCpu, cpu)
|
||||||
}
|
}
|
||||||
|
|
||||||
if hostScaleType == "highmem" && cpu == 64 {
|
if hostScaleType == "highmem" && cpu == 64 {
|
||||||
|
@ -140,11 +141,11 @@ func parseInstanceTypeByNormal(split ...string) (*InstanceType, error) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if hostScaleType == "highmem" && cpu > 16 {
|
if hostScaleType == "highmem" && cpu > 16 {
|
||||||
return nil, fmt.Errorf("expected cpu to be in the range (1 - 16) for normal highmem instance type, got %d", cpu)
|
return nil, fmt.Errorf("expected cpu to be in the range (1 - 16) for `N` and `C` highmem instance type, got %d", cpu)
|
||||||
}
|
}
|
||||||
|
|
||||||
if cpu < 1 || 32 < cpu {
|
if cpu < 1 || 32 < cpu {
|
||||||
return nil, fmt.Errorf("expected cpu to be in the range (1 - 32) for normal instance type, got %d", cpu)
|
return nil, fmt.Errorf("expected cpu to be in the range (1 - 32) for `N` and `C` instance type, got %d", cpu)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -105,13 +105,18 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
||||||
},
|
},
|
||||||
|
|
||||||
&stepCreateInstance{
|
&stepCreateInstance{
|
||||||
InstanceType: b.config.InstanceType,
|
InstanceType: b.config.InstanceType,
|
||||||
Region: b.config.Region,
|
Region: b.config.Region,
|
||||||
Zone: b.config.Zone,
|
Zone: b.config.Zone,
|
||||||
SourceImageId: b.config.SourceImageId,
|
SourceImageId: b.config.SourceImageId,
|
||||||
InstanceName: b.config.InstanceName,
|
InstanceName: b.config.InstanceName,
|
||||||
BootDiskType: b.config.BootDiskType,
|
BootDiskType: b.config.BootDiskType,
|
||||||
UsePrivateIp: b.config.UseSSHPrivateIp,
|
UsePrivateIp: b.config.UseSSHPrivateIp,
|
||||||
|
EipBandwidth: b.config.EipBandwidth,
|
||||||
|
EipChargeMode: b.config.EipChargeMode,
|
||||||
|
UserData: b.config.UserData,
|
||||||
|
UserDataFile: b.config.UserDataFile,
|
||||||
|
MinCpuPlatform: b.config.MinCpuPlatform,
|
||||||
},
|
},
|
||||||
&communicator.StepConnect{
|
&communicator.StepConnect{
|
||||||
Config: &b.config.RunConfig.Comm,
|
Config: &b.config.RunConfig.Comm,
|
||||||
|
|
|
@ -17,23 +17,30 @@ type FlatConfig struct {
|
||||||
PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"`
|
PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"`
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
PublicKey *string `mapstructure:"public_key" cty:"public_key" hcl:"public_key"`
|
PublicKey *string `mapstructure:"public_key" required:"true" cty:"public_key" hcl:"public_key"`
|
||||||
PrivateKey *string `mapstructure:"private_key" cty:"private_key" hcl:"private_key"`
|
PrivateKey *string `mapstructure:"private_key" required:"true" cty:"private_key" hcl:"private_key"`
|
||||||
Region *string `mapstructure:"region" cty:"region" hcl:"region"`
|
Region *string `mapstructure:"region" required:"true" cty:"region" hcl:"region"`
|
||||||
ProjectId *string `mapstructure:"project_id" cty:"project_id" hcl:"project_id"`
|
ProjectId *string `mapstructure:"project_id" required:"true" cty:"project_id" hcl:"project_id"`
|
||||||
BaseUrl *string `mapstructure:"base_url" cty:"base_url" hcl:"base_url"`
|
BaseUrl *string `mapstructure:"base_url" required:"false" cty:"base_url" hcl:"base_url"`
|
||||||
ImageName *string `mapstructure:"image_name" cty:"image_name" hcl:"image_name"`
|
Profile *string `mapstructure:"profile" required:"false" cty:"profile" hcl:"profile"`
|
||||||
ImageDescription *string `mapstructure:"image_description" cty:"image_description" hcl:"image_description"`
|
SharedCredentialsFile *string `mapstructure:"shared_credentials_file" required:"false" cty:"shared_credentials_file" hcl:"shared_credentials_file"`
|
||||||
ImageDestinations []common.FlatImageDestination `mapstructure:"image_copy_to_mappings" cty:"image_copy_to_mappings" hcl:"image_copy_to_mappings"`
|
ImageName *string `mapstructure:"image_name" required:"true" cty:"image_name" hcl:"image_name"`
|
||||||
WaitImageReadyTimeout *int `mapstructure:"wait_image_ready_timeout" cty:"wait_image_ready_timeout" hcl:"wait_image_ready_timeout"`
|
ImageDescription *string `mapstructure:"image_description" required:"false" cty:"image_description" hcl:"image_description"`
|
||||||
Zone *string `mapstructure:"availability_zone" cty:"availability_zone" hcl:"availability_zone"`
|
ImageDestinations []common.FlatImageDestination `mapstructure:"image_copy_to_mappings" required:"false" cty:"image_copy_to_mappings" hcl:"image_copy_to_mappings"`
|
||||||
SourceImageId *string `mapstructure:"source_image_id" cty:"source_image_id" hcl:"source_image_id"`
|
WaitImageReadyTimeout *int `mapstructure:"wait_image_ready_timeout" required:"false" cty:"wait_image_ready_timeout" hcl:"wait_image_ready_timeout"`
|
||||||
InstanceType *string `mapstructure:"instance_type" cty:"instance_type" hcl:"instance_type"`
|
Zone *string `mapstructure:"availability_zone" required:"true" cty:"availability_zone" hcl:"availability_zone"`
|
||||||
InstanceName *string `mapstructure:"instance_name" cty:"instance_name" hcl:"instance_name"`
|
SourceImageId *string `mapstructure:"source_image_id" required:"true" cty:"source_image_id" hcl:"source_image_id"`
|
||||||
BootDiskType *string `mapstructure:"boot_disk_type" cty:"boot_disk_type" hcl:"boot_disk_type"`
|
InstanceType *string `mapstructure:"instance_type" required:"true" cty:"instance_type" hcl:"instance_type"`
|
||||||
VPCId *string `mapstructure:"vpc_id" cty:"vpc_id" hcl:"vpc_id"`
|
InstanceName *string `mapstructure:"instance_name" required:"false" cty:"instance_name" hcl:"instance_name"`
|
||||||
SubnetId *string `mapstructure:"subnet_id" cty:"subnet_id" hcl:"subnet_id"`
|
BootDiskType *string `mapstructure:"boot_disk_type" required:"false" cty:"boot_disk_type" hcl:"boot_disk_type"`
|
||||||
SecurityGroupId *string `mapstructure:"security_group_id" cty:"security_group_id" hcl:"security_group_id"`
|
VPCId *string `mapstructure:"vpc_id" required:"false" cty:"vpc_id" hcl:"vpc_id"`
|
||||||
|
SubnetId *string `mapstructure:"subnet_id" required:"false" cty:"subnet_id" hcl:"subnet_id"`
|
||||||
|
SecurityGroupId *string `mapstructure:"security_group_id" required:"false" cty:"security_group_id" hcl:"security_group_id"`
|
||||||
|
EipBandwidth *int `mapstructure:"eip_bandwidth" required:"false" cty:"eip_bandwidth" hcl:"eip_bandwidth"`
|
||||||
|
EipChargeMode *string `mapstructure:"eip_charge_mode" required:"false" cty:"eip_charge_mode" hcl:"eip_charge_mode"`
|
||||||
|
UserData *string `mapstructure:"user_data" required:"false" cty:"user_data" hcl:"user_data"`
|
||||||
|
UserDataFile *string `mapstructure:"user_data_file" required:"false" cty:"user_data_file" hcl:"user_data_file"`
|
||||||
|
MinCpuPlatform *string `mapstructure:"min_cpu_platform" required:"false" cty:"min_cpu_platform" hcl:"min_cpu_platform"`
|
||||||
Type *string `mapstructure:"communicator" cty:"communicator" hcl:"communicator"`
|
Type *string `mapstructure:"communicator" cty:"communicator" hcl:"communicator"`
|
||||||
PauseBeforeConnect *string `mapstructure:"pause_before_connecting" cty:"pause_before_connecting" hcl:"pause_before_connecting"`
|
PauseBeforeConnect *string `mapstructure:"pause_before_connecting" cty:"pause_before_connecting" hcl:"pause_before_connecting"`
|
||||||
SSHHost *string `mapstructure:"ssh_host" cty:"ssh_host" hcl:"ssh_host"`
|
SSHHost *string `mapstructure:"ssh_host" cty:"ssh_host" hcl:"ssh_host"`
|
||||||
|
@ -105,6 +112,8 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
"project_id": &hcldec.AttrSpec{Name: "project_id", Type: cty.String, Required: false},
|
"project_id": &hcldec.AttrSpec{Name: "project_id", Type: cty.String, Required: false},
|
||||||
"base_url": &hcldec.AttrSpec{Name: "base_url", Type: cty.String, Required: false},
|
"base_url": &hcldec.AttrSpec{Name: "base_url", Type: cty.String, Required: false},
|
||||||
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
|
"shared_credentials_file": &hcldec.AttrSpec{Name: "shared_credentials_file", Type: cty.String, Required: false},
|
||||||
"image_name": &hcldec.AttrSpec{Name: "image_name", Type: cty.String, Required: false},
|
"image_name": &hcldec.AttrSpec{Name: "image_name", Type: cty.String, Required: false},
|
||||||
"image_description": &hcldec.AttrSpec{Name: "image_description", Type: cty.String, Required: false},
|
"image_description": &hcldec.AttrSpec{Name: "image_description", Type: cty.String, Required: false},
|
||||||
"image_copy_to_mappings": &hcldec.BlockListSpec{TypeName: "image_copy_to_mappings", Nested: hcldec.ObjectSpec((*common.FlatImageDestination)(nil).HCL2Spec())},
|
"image_copy_to_mappings": &hcldec.BlockListSpec{TypeName: "image_copy_to_mappings", Nested: hcldec.ObjectSpec((*common.FlatImageDestination)(nil).HCL2Spec())},
|
||||||
|
@ -117,6 +126,11 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"vpc_id": &hcldec.AttrSpec{Name: "vpc_id", Type: cty.String, Required: false},
|
"vpc_id": &hcldec.AttrSpec{Name: "vpc_id", Type: cty.String, Required: false},
|
||||||
"subnet_id": &hcldec.AttrSpec{Name: "subnet_id", Type: cty.String, Required: false},
|
"subnet_id": &hcldec.AttrSpec{Name: "subnet_id", Type: cty.String, Required: false},
|
||||||
"security_group_id": &hcldec.AttrSpec{Name: "security_group_id", Type: cty.String, Required: false},
|
"security_group_id": &hcldec.AttrSpec{Name: "security_group_id", Type: cty.String, Required: false},
|
||||||
|
"eip_bandwidth": &hcldec.AttrSpec{Name: "eip_bandwidth", Type: cty.Number, Required: false},
|
||||||
|
"eip_charge_mode": &hcldec.AttrSpec{Name: "eip_charge_mode", Type: cty.String, Required: false},
|
||||||
|
"user_data": &hcldec.AttrSpec{Name: "user_data", Type: cty.String, Required: false},
|
||||||
|
"user_data_file": &hcldec.AttrSpec{Name: "user_data_file", Type: cty.String, Required: false},
|
||||||
|
"min_cpu_platform": &hcldec.AttrSpec{Name: "min_cpu_platform", Type: cty.String, Required: false},
|
||||||
"communicator": &hcldec.AttrSpec{Name: "communicator", Type: cty.String, Required: false},
|
"communicator": &hcldec.AttrSpec{Name: "communicator", Type: cty.String, Required: false},
|
||||||
"pause_before_connecting": &hcldec.AttrSpec{Name: "pause_before_connecting", Type: cty.String, Required: false},
|
"pause_before_connecting": &hcldec.AttrSpec{Name: "pause_before_connecting", Type: cty.String, Required: false},
|
||||||
"ssh_host": &hcldec.AttrSpec{Name: "ssh_host", Type: cty.String, Required: false},
|
"ssh_host": &hcldec.AttrSpec{Name: "ssh_host", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -198,7 +198,7 @@ func testAccPreCheck(t *testing.T) {
|
||||||
|
|
||||||
func TestUCloudClientBaseUrlConfigurable(t *testing.T) {
|
func TestUCloudClientBaseUrlConfigurable(t *testing.T) {
|
||||||
const url = "baseUrl"
|
const url = "baseUrl"
|
||||||
access := &ucloudcommon.AccessConfig{BaseUrl: url}
|
access := &ucloudcommon.AccessConfig{BaseUrl: url, PublicKey: "test", PrivateKey: "test"}
|
||||||
client, err := access.Client()
|
client, err := access.Client()
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
assert.Equal(t, url, client.UAccountConn.Client.GetConfig().BaseUrl, "account conn's base url not configurable")
|
assert.Equal(t, url, client.UAccountConn.Client.GetConfig().BaseUrl, "account conn's base url not configurable")
|
||||||
|
|
|
@ -3,7 +3,6 @@ package uhost
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
ucloudcommon "github.com/hashicorp/packer/builder/ucloud/common"
|
ucloudcommon "github.com/hashicorp/packer/builder/ucloud/common"
|
||||||
"github.com/hashicorp/packer/helper/multistep"
|
"github.com/hashicorp/packer/helper/multistep"
|
||||||
"github.com/hashicorp/packer/packer"
|
"github.com/hashicorp/packer/packer"
|
||||||
|
@ -31,6 +30,14 @@ func (s *stepCheckSourceImageId) Run(ctx context.Context, state multistep.StateB
|
||||||
return ucloudcommon.Halt(state, err, "The ucloud-uhost builder does not support Windows images yet")
|
return ucloudcommon.Halt(state, err, "The ucloud-uhost builder does not support Windows images yet")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, uOK := state.GetOk("user_data")
|
||||||
|
_, fOK := state.GetOk("user_data_file")
|
||||||
|
if uOK || fOK {
|
||||||
|
if !ucloudcommon.IsStringIn("CloudInit", imageSet.Features) {
|
||||||
|
return ucloudcommon.Halt(state, err, fmt.Sprintf("The image %s must have %q feature when set the %q or %q, got %#v", imageSet.ImageId, "CloudInit", "user_data", "user_data_file", imageSet.Features))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
state.Put("source_image", imageSet)
|
state.Put("source_image", imageSet)
|
||||||
return multistep.ActionContinue
|
return multistep.ActionContinue
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ func (s *stepCopyUCloudImage) Run(ctx context.Context, state multistep.StateBag)
|
||||||
expectedImages.Set(image)
|
expectedImages.Set(image)
|
||||||
artifactImages.Set(image)
|
artifactImages.Set(image)
|
||||||
|
|
||||||
ui.Message(fmt.Sprintf("Copying image from %s:%s:%s to %s:%s:%s)",
|
ui.Message(fmt.Sprintf("Copying image from %s:%s:%s to %s:%s:%s",
|
||||||
s.ProjectId, s.RegionId, srcImageId, v.ProjectId, v.Region, resp.TargetImageId))
|
s.ProjectId, s.RegionId, srcImageId, v.ProjectId, v.Region, resp.TargetImageId))
|
||||||
}
|
}
|
||||||
ui.Message("Waiting for the copied images to become available...")
|
ui.Message("Waiting for the copied images to become available...")
|
||||||
|
@ -74,13 +74,16 @@ func (s *stepCopyUCloudImage) Run(ctx context.Context, state multistep.StateBag)
|
||||||
for _, v := range expectedImages.GetAll() {
|
for _, v := range expectedImages.GetAll() {
|
||||||
imageSet, err := client.DescribeImageByInfo(v.ProjectId, v.Region, v.ImageId)
|
imageSet, err := client.DescribeImageByInfo(v.ProjectId, v.Region, v.ImageId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("reading %s:%s:%s failed, %s", v.ProjectId, v.Region, v.ImageId, err)
|
return fmt.Errorf("reading copied image %s:%s:%s failed, %s", v.ProjectId, v.Region, v.ImageId, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if imageSet.State == ucloudcommon.ImageStateAvailable {
|
if imageSet.State == ucloudcommon.ImageStateAvailable {
|
||||||
expectedImages.Remove(v.Id())
|
expectedImages.Remove(v.Id())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if imageSet.State == ucloudcommon.ImageStateUnavailable {
|
||||||
|
return fmt.Errorf("the copied image %s:%s:%s got %q error", v.ProjectId, v.Region, v.ImageId, ucloudcommon.ImageStateUnavailable)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(expectedImages.GetAll()) != 0 {
|
if len(expectedImages.GetAll()) != 0 {
|
||||||
|
|
|
@ -2,7 +2,9 @@ package uhost
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
@ -24,6 +26,12 @@ type stepCreateInstance struct {
|
||||||
SourceImageId string
|
SourceImageId string
|
||||||
UsePrivateIp bool
|
UsePrivateIp bool
|
||||||
|
|
||||||
|
EipBandwidth int
|
||||||
|
EipChargeMode string
|
||||||
|
UserData string
|
||||||
|
UserDataFile string
|
||||||
|
MinCpuPlatform string
|
||||||
|
|
||||||
instanceId string
|
instanceId string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,14 +41,19 @@ func (s *stepCreateInstance) Run(ctx context.Context, state multistep.StateBag)
|
||||||
ui := state.Get("ui").(packer.Ui)
|
ui := state.Get("ui").(packer.Ui)
|
||||||
|
|
||||||
ui.Say("Creating Instance...")
|
ui.Say("Creating Instance...")
|
||||||
resp, err := conn.CreateUHostInstance(s.buildCreateInstanceRequest(state))
|
req, err := s.buildCreateInstanceRequest(state)
|
||||||
|
if err != nil {
|
||||||
|
return ucloudcommon.Halt(state, err, "Error on build instance request")
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := conn.CreateUHostInstance(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ucloudcommon.Halt(state, err, "Error on creating instance")
|
return ucloudcommon.Halt(state, err, "Error on creating instance")
|
||||||
}
|
}
|
||||||
instanceId := resp.UHostIds[0]
|
instanceId := resp.UHostIds[0]
|
||||||
|
|
||||||
err = retry.Config{
|
err = retry.Config{
|
||||||
Tries: 20,
|
Tries: 100,
|
||||||
ShouldRetry: func(err error) bool {
|
ShouldRetry: func(err error) bool {
|
||||||
return ucloudcommon.IsExpectedStateError(err)
|
return ucloudcommon.IsExpectedStateError(err)
|
||||||
},
|
},
|
||||||
|
@ -155,7 +168,7 @@ func (s *stepCreateInstance) Cleanup(state multistep.StateBag) {
|
||||||
}
|
}
|
||||||
|
|
||||||
err = retry.Config{
|
err = retry.Config{
|
||||||
Tries: 30,
|
Tries: 100,
|
||||||
ShouldRetry: func(err error) bool {
|
ShouldRetry: func(err error) bool {
|
||||||
return ucloudcommon.IsExpectedStateError(err)
|
return ucloudcommon.IsExpectedStateError(err)
|
||||||
},
|
},
|
||||||
|
@ -192,7 +205,7 @@ func (s *stepCreateInstance) Cleanup(state multistep.StateBag) {
|
||||||
}
|
}
|
||||||
|
|
||||||
err = retry.Config{
|
err = retry.Config{
|
||||||
Tries: 30,
|
Tries: 50,
|
||||||
ShouldRetry: func(err error) bool { return !ucloudcommon.IsNotFoundError(err) },
|
ShouldRetry: func(err error) bool { return !ucloudcommon.IsNotFoundError(err) },
|
||||||
RetryDelay: (&retry.Backoff{InitialBackoff: 2 * time.Second, MaxBackoff: 6 * time.Second, Multiplier: 2}).Linear,
|
RetryDelay: (&retry.Backoff{InitialBackoff: 2 * time.Second, MaxBackoff: 6 * time.Second, Multiplier: 2}).Linear,
|
||||||
}.Run(ctx, func(ctx context.Context) error {
|
}.Run(ctx, func(ctx context.Context) error {
|
||||||
|
@ -209,7 +222,7 @@ func (s *stepCreateInstance) Cleanup(state multistep.StateBag) {
|
||||||
ui.Message(fmt.Sprintf("Deleting instance %q complete", s.instanceId))
|
ui.Message(fmt.Sprintf("Deleting instance %q complete", s.instanceId))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *stepCreateInstance) buildCreateInstanceRequest(state multistep.StateBag) *uhost.CreateUHostInstanceRequest {
|
func (s *stepCreateInstance) buildCreateInstanceRequest(state multistep.StateBag) (*uhost.CreateUHostInstanceRequest, error) {
|
||||||
client := state.Get("client").(*ucloudcommon.UCloudClient)
|
client := state.Get("client").(*ucloudcommon.UCloudClient)
|
||||||
conn := client.UHostConn
|
conn := client.UHostConn
|
||||||
srcImage := state.Get("source_image").(*uhost.UHostImageSet)
|
srcImage := state.Get("source_image").(*uhost.UHostImageSet)
|
||||||
|
@ -242,12 +255,8 @@ func (s *stepCreateInstance) buildCreateInstanceRequest(state multistep.StateBag
|
||||||
req.ImageId = ucloud.String(s.SourceImageId)
|
req.ImageId = ucloud.String(s.SourceImageId)
|
||||||
req.ChargeType = ucloud.String("Dynamic")
|
req.ChargeType = ucloud.String("Dynamic")
|
||||||
req.Password = ucloud.String(password)
|
req.Password = ucloud.String(password)
|
||||||
|
req.MinimalCpuPlatform = ucloud.String(s.MinCpuPlatform)
|
||||||
req.MachineType = ucloud.String("N")
|
req.MachineType = ucloud.String(strings.ToUpper(t.HostType))
|
||||||
req.MinimalCpuPlatform = ucloud.String("Intel/Auto")
|
|
||||||
if t.HostType == "o" {
|
|
||||||
req.MachineType = ucloud.String("O")
|
|
||||||
}
|
|
||||||
|
|
||||||
if v, ok := state.GetOk("security_group_id"); ok {
|
if v, ok := state.GetOk("security_group_id"); ok {
|
||||||
req.SecurityGroupId = ucloud.String(v.(string))
|
req.SecurityGroupId = ucloud.String(v.(string))
|
||||||
|
@ -261,6 +270,14 @@ func (s *stepCreateInstance) buildCreateInstanceRequest(state multistep.StateBag
|
||||||
req.SubnetId = ucloud.String(v.(string))
|
req.SubnetId = ucloud.String(v.(string))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userData, err := s.getUserData(state)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if userData != "" {
|
||||||
|
req.UserData = ucloud.String(userData)
|
||||||
|
}
|
||||||
|
|
||||||
bootDisk := uhost.UHostDisk{}
|
bootDisk := uhost.UHostDisk{}
|
||||||
bootDisk.IsBoot = ucloud.String("true")
|
bootDisk.IsBoot = ucloud.String("true")
|
||||||
bootDisk.Size = ucloud.Int(srcImage.ImageSize)
|
bootDisk.Size = ucloud.Int(srcImage.ImageSize)
|
||||||
|
@ -268,22 +285,27 @@ func (s *stepCreateInstance) buildCreateInstanceRequest(state multistep.StateBag
|
||||||
|
|
||||||
req.Disks = append(req.Disks, bootDisk)
|
req.Disks = append(req.Disks, bootDisk)
|
||||||
|
|
||||||
|
if v, ok := state.GetOk("user_data"); ok {
|
||||||
|
req.UserData = ucloud.String(base64.StdEncoding.EncodeToString([]byte(v.(string))))
|
||||||
|
}
|
||||||
|
|
||||||
if !s.UsePrivateIp {
|
if !s.UsePrivateIp {
|
||||||
operatorName := ucloud.String("International")
|
operatorName := ucloud.String("International")
|
||||||
if strings.HasPrefix(s.Region, "cn-") {
|
if strings.HasPrefix(s.Region, "cn-") {
|
||||||
operatorName = ucloud.String("Bgp")
|
operatorName = ucloud.String("Bgp")
|
||||||
}
|
}
|
||||||
|
|
||||||
networkInterface := uhost.CreateUHostInstanceParamNetworkInterface{
|
networkInterface := uhost.CreateUHostInstanceParamNetworkInterface{
|
||||||
EIP: &uhost.CreateUHostInstanceParamNetworkInterfaceEIP{
|
EIP: &uhost.CreateUHostInstanceParamNetworkInterfaceEIP{
|
||||||
Bandwidth: ucloud.Int(30),
|
Bandwidth: ucloud.Int(s.EipBandwidth),
|
||||||
PayMode: ucloud.String("Traffic"),
|
PayMode: ucloud.String(ucloudcommon.ChargeModeMap.Convert(s.EipChargeMode)),
|
||||||
OperatorName: operatorName,
|
OperatorName: operatorName,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
req.NetworkInterface = append(req.NetworkInterface, networkInterface)
|
req.NetworkInterface = append(req.NetworkInterface, networkInterface)
|
||||||
}
|
}
|
||||||
return req
|
return req, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *stepCreateInstance) randStringFromCharSet(strlen int, charSet string) string {
|
func (s *stepCreateInstance) randStringFromCharSet(strlen int, charSet string) string {
|
||||||
|
@ -294,3 +316,23 @@ func (s *stepCreateInstance) randStringFromCharSet(strlen int, charSet string) s
|
||||||
}
|
}
|
||||||
return string(result)
|
return string(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *stepCreateInstance) getUserData(state multistep.StateBag) (string, error) {
|
||||||
|
userData := s.UserData
|
||||||
|
|
||||||
|
if s.UserDataFile != "" {
|
||||||
|
data, err := ioutil.ReadFile(s.UserDataFile)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("error on reading user_data_file, %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
userData = string(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
if userData != "" {
|
||||||
|
userData = base64.StdEncoding.EncodeToString([]byte(userData))
|
||||||
|
}
|
||||||
|
|
||||||
|
return userData, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ func (s *stepStopInstance) Run(ctx context.Context, state multistep.StateBag) mu
|
||||||
}
|
}
|
||||||
|
|
||||||
err = retry.Config{
|
err = retry.Config{
|
||||||
Tries: 20,
|
Tries: 100,
|
||||||
ShouldRetry: func(err error) bool {
|
ShouldRetry: func(err error) bool {
|
||||||
return ucloudcommon.IsExpectedStateError(err)
|
return ucloudcommon.IsExpectedStateError(err)
|
||||||
},
|
},
|
||||||
|
|
3
go.mod
3
go.mod
|
@ -92,7 +92,6 @@ require (
|
||||||
github.com/klauspost/pgzip v0.0.0-20151221113845-47f36e165cec
|
github.com/klauspost/pgzip v0.0.0-20151221113845-47f36e165cec
|
||||||
github.com/kr/fs v0.0.0-20131111012553-2788f0dbd169 // indirect
|
github.com/kr/fs v0.0.0-20131111012553-2788f0dbd169 // indirect
|
||||||
github.com/linode/linodego v0.14.0
|
github.com/linode/linodego v0.14.0
|
||||||
github.com/masterzen/azure-sdk-for-go v0.0.0-20161014135628-ee4f0065d00c // indirect
|
|
||||||
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 // indirect
|
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 // indirect
|
||||||
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88
|
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88
|
||||||
github.com/mattn/go-tty v0.0.0-20191112051231-74040eebce08
|
github.com/mattn/go-tty v0.0.0-20191112051231-74040eebce08
|
||||||
|
@ -132,7 +131,7 @@ require (
|
||||||
github.com/stretchr/testify v1.5.1
|
github.com/stretchr/testify v1.5.1
|
||||||
github.com/temoto/robotstxt v1.1.1 // indirect
|
github.com/temoto/robotstxt v1.1.1 // indirect
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go v3.0.155+incompatible
|
github.com/tencentcloud/tencentcloud-sdk-go v3.0.155+incompatible
|
||||||
github.com/ucloud/ucloud-sdk-go v0.12.0
|
github.com/ucloud/ucloud-sdk-go v0.16.3
|
||||||
github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6
|
github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6
|
||||||
github.com/ugorji/go v0.0.0-20151218193438-646ae4a518c1
|
github.com/ugorji/go v0.0.0-20151218193438-646ae4a518c1
|
||||||
github.com/ulikunitz/xz v0.5.5
|
github.com/ulikunitz/xz v0.5.5
|
||||||
|
|
18
go.sum
18
go.sum
|
@ -67,8 +67,6 @@ github.com/Azure/go-ntlmssp v0.0.0-20191115201650-bad6df29494a/go.mod h1:chxPXzS
|
||||||
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170625215350-4fe035839290 h1:K9I21XUHNbYD3GNMmJBN0UKJCpdP+glftwNZ7Bo8kqY=
|
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170625215350-4fe035839290/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8=
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8=
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
||||||
github.com/DataDog/datadog-go v2.2.0+incompatible h1:V5BKkxACZLjzHjSgBbr2gvLA2Ae49yhc6CSY7MLy5k4=
|
github.com/DataDog/datadog-go v2.2.0+incompatible h1:V5BKkxACZLjzHjSgBbr2gvLA2Ae49yhc6CSY7MLy5k4=
|
||||||
|
@ -136,8 +134,6 @@ github.com/biogo/hts v0.0.0-20160420073057-50da7d4131a3 h1:3b+p838vN4sc37brz9W2H
|
||||||
github.com/biogo/hts v0.0.0-20160420073057-50da7d4131a3/go.mod h1:YOY5xnRf7Jz2SZCLSKgVfyqNzbRgyTznM3HyDqQMxcU=
|
github.com/biogo/hts v0.0.0-20160420073057-50da7d4131a3/go.mod h1:YOY5xnRf7Jz2SZCLSKgVfyqNzbRgyTznM3HyDqQMxcU=
|
||||||
github.com/bmatcuk/doublestar v1.1.5 h1:2bNwBOmhyFEFcoB3tGvTD5xanq+4kyOZlB8wFYbMjkk=
|
github.com/bmatcuk/doublestar v1.1.5 h1:2bNwBOmhyFEFcoB3tGvTD5xanq+4kyOZlB8wFYbMjkk=
|
||||||
github.com/bmatcuk/doublestar v1.1.5/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
|
github.com/bmatcuk/doublestar v1.1.5/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
|
||||||
github.com/c2h5oh/datasize v0.0.0-20171227191756-4eba002a5eae h1:2Zmk+8cNvAGuY8AyvZuWpUdpQUAXwfom4ReVMe/CTIo=
|
|
||||||
github.com/c2h5oh/datasize v0.0.0-20171227191756-4eba002a5eae/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M=
|
|
||||||
github.com/c2h5oh/datasize v0.0.0-20200112174442-28bbd4740fee h1:BnPxIde0gjtTnc9Er7cxvBk8DHLWhEux0SxayC8dP6I=
|
github.com/c2h5oh/datasize v0.0.0-20200112174442-28bbd4740fee h1:BnPxIde0gjtTnc9Er7cxvBk8DHLWhEux0SxayC8dP6I=
|
||||||
github.com/c2h5oh/datasize v0.0.0-20200112174442-28bbd4740fee/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M=
|
github.com/c2h5oh/datasize v0.0.0-20200112174442-28bbd4740fee/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=
|
github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=
|
||||||
|
@ -446,13 +442,9 @@ github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3v
|
||||||
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
|
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
|
||||||
github.com/linode/linodego v0.14.0 h1:0APKMjiVGyry2TTUVDiok72H6cWpFNMMrFWBFn14aFU=
|
github.com/linode/linodego v0.14.0 h1:0APKMjiVGyry2TTUVDiok72H6cWpFNMMrFWBFn14aFU=
|
||||||
github.com/linode/linodego v0.14.0/go.mod h1:2ce3S00NrDqJfp4i55ZuSlT0U3cKNELNYACWBPI8Tnw=
|
github.com/linode/linodego v0.14.0/go.mod h1:2ce3S00NrDqJfp4i55ZuSlT0U3cKNELNYACWBPI8Tnw=
|
||||||
github.com/masterzen/azure-sdk-for-go v0.0.0-20161014135628-ee4f0065d00c h1:FMUOnVGy8nWk1cvlMCAoftRItQGMxI0vzJ3dQjeZTCE=
|
|
||||||
github.com/masterzen/azure-sdk-for-go v0.0.0-20161014135628-ee4f0065d00c/go.mod h1:mf8fjOu33zCqxUjuiU3I8S1lJMyEAlH+0F2+M5xl3hE=
|
|
||||||
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
||||||
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 h1:2ZKn+w/BJeL43sCxI2jhPLRv73oVVOjEKZjKkflyqxg=
|
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 h1:2ZKn+w/BJeL43sCxI2jhPLRv73oVVOjEKZjKkflyqxg=
|
||||||
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
||||||
github.com/masterzen/winrm v0.0.0-20180224160350-7e40f93ae939 h1:cRFHA33ER97Xy5jmjS519OXCS/yE3AT3zdbQAg0Z53g=
|
|
||||||
github.com/masterzen/winrm v0.0.0-20180224160350-7e40f93ae939/go.mod h1:CfZSN7zwz5gJiFhZJz49Uzk7mEBHIceWmbFmYx7Hf7E=
|
|
||||||
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88 h1:cxuVcCvCLD9yYDbRCWw0jSgh1oT6P6mv3aJDKK5o7X4=
|
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88 h1:cxuVcCvCLD9yYDbRCWw0jSgh1oT6P6mv3aJDKK5o7X4=
|
||||||
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88/go.mod h1:a2HXwefeat3evJHxFXSayvRHpYEPJYtErl4uIzfaUqY=
|
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88/go.mod h1:a2HXwefeat3evJHxFXSayvRHpYEPJYtErl4uIzfaUqY=
|
||||||
github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
|
github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
|
||||||
|
@ -616,8 +608,8 @@ github.com/tencentcloud/tencentcloud-sdk-go v3.0.155+incompatible h1:M+Q7+SIBnUZ
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go v3.0.155+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
|
github.com/tencentcloud/tencentcloud-sdk-go v3.0.155+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
||||||
github.com/ucloud/ucloud-sdk-go v0.12.0 h1:VCFN3jWg/G4wvwjG6qG5AhFuAT1JdmGvY6+4WHbuJcw=
|
github.com/ucloud/ucloud-sdk-go v0.16.3 h1:DCh4A5vSxFr3EvtvJL+g0Ehy4hSlEkMpQmEvxEQhYdo=
|
||||||
github.com/ucloud/ucloud-sdk-go v0.12.0/go.mod h1:lM6fpI8y6iwACtlbHUav823/uKPdXsNBlnBpRF2fj3c=
|
github.com/ucloud/ucloud-sdk-go v0.16.3/go.mod h1:dyLmFHmUfgb4RZKYQP9IArlvQ2pxzFthfhwxRzOEPIw=
|
||||||
github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6 h1:FAWNiqocJ04wC4Znj7Ax4PGWstZijayO6ifuHHvb+vI=
|
github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6 h1:FAWNiqocJ04wC4Znj7Ax4PGWstZijayO6ifuHHvb+vI=
|
||||||
github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6/go.mod h1:R5FMQxkQ+QK/9Vz+jfnJP4rZIktYrRcWmuAnbOSkROI=
|
github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6/go.mod h1:R5FMQxkQ+QK/9Vz+jfnJP4rZIktYrRcWmuAnbOSkROI=
|
||||||
github.com/ugorji/go v0.0.0-20151218193438-646ae4a518c1 h1:U6ufy3mLDgg9RYupntOvAF7xCmNNquyKaYaaVHo1Nnk=
|
github.com/ugorji/go v0.0.0-20151218193438-646ae4a518c1 h1:U6ufy3mLDgg9RYupntOvAF7xCmNNquyKaYaaVHo1Nnk=
|
||||||
|
@ -631,12 +623,8 @@ github.com/vmware/govmomi v0.22.2/go.mod h1:Y+Wq4lst78L85Ge/F8+ORXIWiKYqaro1vhAu
|
||||||
github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=
|
github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=
|
||||||
github.com/xanzy/go-cloudstack v0.0.0-20190526095453-42f262b63ed0 h1:NJrcIkdzq0C3I8ypAZwFE9RHtGbfp+mJvqIcoFATZuk=
|
github.com/xanzy/go-cloudstack v0.0.0-20190526095453-42f262b63ed0 h1:NJrcIkdzq0C3I8ypAZwFE9RHtGbfp+mJvqIcoFATZuk=
|
||||||
github.com/xanzy/go-cloudstack v0.0.0-20190526095453-42f262b63ed0/go.mod h1:sBh287mCRwCz6zyXHMmw7sSZGPohVpnx+o+OY4M+i3A=
|
github.com/xanzy/go-cloudstack v0.0.0-20190526095453-42f262b63ed0/go.mod h1:sBh287mCRwCz6zyXHMmw7sSZGPohVpnx+o+OY4M+i3A=
|
||||||
github.com/yandex-cloud/go-genproto v0.0.0-20190916101622-7617782d381e h1:hzwq5GUKP0aQzDja1XP4sBYyOmnezs/RVtzP+xiLbfI=
|
|
||||||
github.com/yandex-cloud/go-genproto v0.0.0-20190916101622-7617782d381e/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE=
|
|
||||||
github.com/yandex-cloud/go-genproto v0.0.0-20200608085315-d6e7ef5ceb97 h1:DoqSUxQkBLislVgA1qkM0u7g04It4VRMidyLBH/O/as=
|
github.com/yandex-cloud/go-genproto v0.0.0-20200608085315-d6e7ef5ceb97 h1:DoqSUxQkBLislVgA1qkM0u7g04It4VRMidyLBH/O/as=
|
||||||
github.com/yandex-cloud/go-genproto v0.0.0-20200608085315-d6e7ef5ceb97/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE=
|
github.com/yandex-cloud/go-genproto v0.0.0-20200608085315-d6e7ef5ceb97/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE=
|
||||||
github.com/yandex-cloud/go-sdk v0.0.0-20190916101744-c781afa45829 h1:2FGwbx03GpP1Ulzg/L46tSoKh9t4yg8BhMKQl/Ff1x8=
|
|
||||||
github.com/yandex-cloud/go-sdk v0.0.0-20190916101744-c781afa45829/go.mod h1:Eml0jFLU4VVHgIN8zPHMuNwZXVzUMILyO6lQZSfz854=
|
|
||||||
github.com/yandex-cloud/go-sdk v0.0.0-20200610100221-ae86895efb97 h1:8KwSw9xtQBeyeX1EpOlOjRc0JaHlh8B8GglKA6iXt08=
|
github.com/yandex-cloud/go-sdk v0.0.0-20200610100221-ae86895efb97 h1:8KwSw9xtQBeyeX1EpOlOjRc0JaHlh8B8GglKA6iXt08=
|
||||||
github.com/yandex-cloud/go-sdk v0.0.0-20200610100221-ae86895efb97/go.mod h1:3p2xVpQrHyPxV4UCKnKozt9n+g1LRENOQ33CH8rqLnY=
|
github.com/yandex-cloud/go-sdk v0.0.0-20200610100221-ae86895efb97/go.mod h1:3p2xVpQrHyPxV4UCKnKozt9n+g1LRENOQ33CH8rqLnY=
|
||||||
github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
|
github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
|
||||||
|
@ -897,8 +885,6 @@ google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4
|
||||||
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200323114720-3f67cca34472/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200323114720-3f67cca34472/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200325114520-5b2d0af7952b h1:j5eujPLMak6H9l2EM381rW9X47/HPUyESXWJW9lVSsQ=
|
|
||||||
google.golang.org/genproto v0.0.0-20200325114520-5b2d0af7952b/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
google.golang.org/genproto v0.0.0-20200617032506-f1bdc9086088 h1:XXo4PvhJkaWYIkwn7bX7mcdB8RdcOvn12HbaUUAwX3E=
|
google.golang.org/genproto v0.0.0-20200617032506-f1bdc9086088 h1:XXo4PvhJkaWYIkwn7bX7mcdB8RdcOvn12HbaUUAwX3E=
|
||||||
google.golang.org/genproto v0.0.0-20200617032506-f1bdc9086088/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
|
google.golang.org/genproto v0.0.0-20200617032506-f1bdc9086088/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
//go:generate mapstructure-to-hcl2 -type Config
|
//go:generate mapstructure-to-hcl2 -type Config
|
||||||
|
//go:generate struct-markdown
|
||||||
|
|
||||||
package ucloudimport
|
package ucloudimport
|
||||||
|
|
||||||
|
@ -43,16 +44,33 @@ type Config struct {
|
||||||
common.PackerConfig `mapstructure:",squash"`
|
common.PackerConfig `mapstructure:",squash"`
|
||||||
ucloudcommon.AccessConfig `mapstructure:",squash"`
|
ucloudcommon.AccessConfig `mapstructure:",squash"`
|
||||||
|
|
||||||
// Variables specific to this post processor
|
// The name of the UFile bucket where the RAW, VHD, VMDK, or qcow2 file will be copied to for import.
|
||||||
UFileBucket string `mapstructure:"ufile_bucket_name"`
|
// This bucket must exist when the post-processor is run.
|
||||||
UFileKey string `mapstructure:"ufile_key_name"`
|
UFileBucket string `mapstructure:"ufile_bucket_name" required:"true"`
|
||||||
SkipClean bool `mapstructure:"skip_clean"`
|
// The name of the object key in
|
||||||
ImageName string `mapstructure:"image_name"`
|
// `ufile_bucket_name` where the RAW, VHD, VMDK, or qcow2 file will be copied
|
||||||
ImageDescription string `mapstructure:"image_description"`
|
// to import. This is a [template engine](/docs/templates/engine).
|
||||||
OSType string `mapstructure:"image_os_type"`
|
// Therefore, you may use user variables and template functions in this field.
|
||||||
OSName string `mapstructure:"image_os_name"`
|
UFileKey string `mapstructure:"ufile_key_name" required:"false"`
|
||||||
Format string `mapstructure:"format"`
|
// Whether we should skip removing the RAW, VHD, VMDK, or qcow2 file uploaded to
|
||||||
WaitImageReadyTimeout int `mapstructure:"wait_image_ready_timeout"`
|
// UFile after the import process has completed. Possible values are: `true` to
|
||||||
|
// leave it in the UFile bucket, `false` to remove it. (Default: `false`).
|
||||||
|
SkipClean bool `mapstructure:"skip_clean" required:"false"`
|
||||||
|
// The name of the user-defined image, which contains 1-63 characters and only
|
||||||
|
// supports Chinese, English, numbers, '-\_,.:[]'.
|
||||||
|
ImageName string `mapstructure:"image_name" required:"true"`
|
||||||
|
// The description of the image.
|
||||||
|
ImageDescription string `mapstructure:"image_description" required:"false"`
|
||||||
|
// Type of the OS. Possible values are: `CentOS`, `Ubuntu`, `Windows`, `RedHat`, `Debian`, `Other`.
|
||||||
|
// You may refer to [ucloud_api_docs](https://docs.ucloud.cn/api/uhost-api/import_custom_image) for detail.
|
||||||
|
OSType string `mapstructure:"image_os_type" required:"true"`
|
||||||
|
// The name of OS. Such as: `CentOS 7.2 64位`, set `Other` When `image_os_type` is `Other`.
|
||||||
|
// You may refer to [ucloud_api_docs](https://docs.ucloud.cn/api/uhost-api/import_custom_image) for detail.
|
||||||
|
OSName string `mapstructure:"image_os_name" required:"true"`
|
||||||
|
// The format of the import image , Possible values are: `raw`, `vhd`, `vmdk`, or `qcow2`.
|
||||||
|
Format string `mapstructure:"format" required:"true"`
|
||||||
|
// Timeout of importing image. The default timeout is 3600 seconds if this option is not set or is set.
|
||||||
|
WaitImageReadyTimeout int `mapstructure:"wait_image_ready_timeout" required:"false"`
|
||||||
|
|
||||||
ctx interpolate.Context
|
ctx interpolate.Context
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,20 +16,22 @@ type FlatConfig struct {
|
||||||
PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"`
|
PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"`
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
PublicKey *string `mapstructure:"public_key" cty:"public_key" hcl:"public_key"`
|
PublicKey *string `mapstructure:"public_key" required:"true" cty:"public_key" hcl:"public_key"`
|
||||||
PrivateKey *string `mapstructure:"private_key" cty:"private_key" hcl:"private_key"`
|
PrivateKey *string `mapstructure:"private_key" required:"true" cty:"private_key" hcl:"private_key"`
|
||||||
Region *string `mapstructure:"region" cty:"region" hcl:"region"`
|
Region *string `mapstructure:"region" required:"true" cty:"region" hcl:"region"`
|
||||||
ProjectId *string `mapstructure:"project_id" cty:"project_id" hcl:"project_id"`
|
ProjectId *string `mapstructure:"project_id" required:"true" cty:"project_id" hcl:"project_id"`
|
||||||
BaseUrl *string `mapstructure:"base_url" cty:"base_url" hcl:"base_url"`
|
BaseUrl *string `mapstructure:"base_url" required:"false" cty:"base_url" hcl:"base_url"`
|
||||||
UFileBucket *string `mapstructure:"ufile_bucket_name" cty:"ufile_bucket_name" hcl:"ufile_bucket_name"`
|
Profile *string `mapstructure:"profile" required:"false" cty:"profile" hcl:"profile"`
|
||||||
UFileKey *string `mapstructure:"ufile_key_name" cty:"ufile_key_name" hcl:"ufile_key_name"`
|
SharedCredentialsFile *string `mapstructure:"shared_credentials_file" required:"false" cty:"shared_credentials_file" hcl:"shared_credentials_file"`
|
||||||
SkipClean *bool `mapstructure:"skip_clean" cty:"skip_clean" hcl:"skip_clean"`
|
UFileBucket *string `mapstructure:"ufile_bucket_name" required:"true" cty:"ufile_bucket_name" hcl:"ufile_bucket_name"`
|
||||||
ImageName *string `mapstructure:"image_name" cty:"image_name" hcl:"image_name"`
|
UFileKey *string `mapstructure:"ufile_key_name" required:"false" cty:"ufile_key_name" hcl:"ufile_key_name"`
|
||||||
ImageDescription *string `mapstructure:"image_description" cty:"image_description" hcl:"image_description"`
|
SkipClean *bool `mapstructure:"skip_clean" required:"false" cty:"skip_clean" hcl:"skip_clean"`
|
||||||
OSType *string `mapstructure:"image_os_type" cty:"image_os_type" hcl:"image_os_type"`
|
ImageName *string `mapstructure:"image_name" required:"true" cty:"image_name" hcl:"image_name"`
|
||||||
OSName *string `mapstructure:"image_os_name" cty:"image_os_name" hcl:"image_os_name"`
|
ImageDescription *string `mapstructure:"image_description" required:"false" cty:"image_description" hcl:"image_description"`
|
||||||
Format *string `mapstructure:"format" cty:"format" hcl:"format"`
|
OSType *string `mapstructure:"image_os_type" required:"true" cty:"image_os_type" hcl:"image_os_type"`
|
||||||
WaitImageReadyTimeout *int `mapstructure:"wait_image_ready_timeout" cty:"wait_image_ready_timeout" hcl:"wait_image_ready_timeout"`
|
OSName *string `mapstructure:"image_os_name" required:"true" cty:"image_os_name" hcl:"image_os_name"`
|
||||||
|
Format *string `mapstructure:"format" required:"true" cty:"format" hcl:"format"`
|
||||||
|
WaitImageReadyTimeout *int `mapstructure:"wait_image_ready_timeout" required:"false" cty:"wait_image_ready_timeout" hcl:"wait_image_ready_timeout"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// FlatMapstructure returns a new FlatConfig.
|
// FlatMapstructure returns a new FlatConfig.
|
||||||
|
@ -56,6 +58,8 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
"project_id": &hcldec.AttrSpec{Name: "project_id", Type: cty.String, Required: false},
|
"project_id": &hcldec.AttrSpec{Name: "project_id", Type: cty.String, Required: false},
|
||||||
"base_url": &hcldec.AttrSpec{Name: "base_url", Type: cty.String, Required: false},
|
"base_url": &hcldec.AttrSpec{Name: "base_url", Type: cty.String, Required: false},
|
||||||
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
|
"shared_credentials_file": &hcldec.AttrSpec{Name: "shared_credentials_file", Type: cty.String, Required: false},
|
||||||
"ufile_bucket_name": &hcldec.AttrSpec{Name: "ufile_bucket_name", Type: cty.String, Required: false},
|
"ufile_bucket_name": &hcldec.AttrSpec{Name: "ufile_bucket_name", Type: cty.String, Required: false},
|
||||||
"ufile_key_name": &hcldec.AttrSpec{Name: "ufile_key_name", Type: cty.String, Required: false},
|
"ufile_key_name": &hcldec.AttrSpec{Name: "ufile_key_name", Type: cty.String, Required: false},
|
||||||
"skip_clean": &hcldec.AttrSpec{Name: "skip_clean", Type: cty.Bool, Required: false},
|
"skip_clean": &hcldec.AttrSpec{Name: "skip_clean", Type: cty.Bool, Required: false},
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
package external
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/ucloud"
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/ucloud/auth"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CredentialProvider is the provider to store and provide credential instance
|
||||||
|
type CredentialProvider interface {
|
||||||
|
Credential() *auth.Credential
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClientConfigProvider is the provider to store and provide config instance
|
||||||
|
type ClientConfigProvider interface {
|
||||||
|
Config() *ucloud.Config
|
||||||
|
}
|
||||||
|
|
||||||
|
// ConfigProvider is the provider to store and provide config/credential instance
|
||||||
|
type ConfigProvider interface {
|
||||||
|
CredentialProvider
|
||||||
|
ClientConfigProvider
|
||||||
|
}
|
||||||
|
|
||||||
|
// config will read configuration
|
||||||
|
type config struct {
|
||||||
|
// Named profile
|
||||||
|
Profile string
|
||||||
|
SharedConfigFile string
|
||||||
|
SharedCredentialFile string
|
||||||
|
|
||||||
|
// Credential configuration
|
||||||
|
PublicKey string
|
||||||
|
PrivateKey string
|
||||||
|
SecurityToken string
|
||||||
|
CanExpire bool
|
||||||
|
Expires time.Time
|
||||||
|
|
||||||
|
// Client configuration
|
||||||
|
ProjectId string
|
||||||
|
Zone string
|
||||||
|
Region string
|
||||||
|
BaseUrl string
|
||||||
|
Timeout time.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
func newConfig() *config {
|
||||||
|
return &config{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *config) loadEnv() error {
|
||||||
|
cfg, err := loadEnvConfig()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = c.merge(cfg)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *config) loadFileIfExist() error {
|
||||||
|
cfg, err := loadSharedConfigFile(
|
||||||
|
c.SharedConfigFile,
|
||||||
|
c.SharedCredentialFile,
|
||||||
|
c.Profile,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = c.merge(cfg)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *config) merge(other *config) error {
|
||||||
|
if other == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
setStringify(&c.Profile, other.Profile)
|
||||||
|
setStringify(&c.SharedConfigFile, other.SharedConfigFile)
|
||||||
|
setStringify(&c.SharedCredentialFile, other.SharedCredentialFile)
|
||||||
|
setStringify(&c.PublicKey, other.PublicKey)
|
||||||
|
setStringify(&c.PrivateKey, other.PrivateKey)
|
||||||
|
setStringify(&c.ProjectId, other.ProjectId)
|
||||||
|
setStringify(&c.Zone, other.Zone)
|
||||||
|
setStringify(&c.Region, other.Region)
|
||||||
|
setStringify(&c.BaseUrl, other.BaseUrl)
|
||||||
|
if other.Timeout != time.Duration(0) {
|
||||||
|
c.Timeout = other.Timeout
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Config is the configuration of ucloud client
|
||||||
|
func (c *config) Config() *ucloud.Config {
|
||||||
|
cfg := ucloud.NewConfig()
|
||||||
|
setStringify(&cfg.ProjectId, c.ProjectId)
|
||||||
|
setStringify(&cfg.Zone, c.Zone)
|
||||||
|
setStringify(&cfg.Region, c.Region)
|
||||||
|
setStringify(&cfg.BaseUrl, c.BaseUrl)
|
||||||
|
|
||||||
|
if c.Timeout != time.Duration(0) {
|
||||||
|
cfg.Timeout = c.Timeout
|
||||||
|
}
|
||||||
|
return &cfg
|
||||||
|
}
|
||||||
|
|
||||||
|
// Credential is the configuration of ucloud authorization information
|
||||||
|
func (c *config) Credential() *auth.Credential {
|
||||||
|
cred := auth.NewCredential()
|
||||||
|
setStringify(&cred.PublicKey, c.PublicKey)
|
||||||
|
setStringify(&cred.PrivateKey, c.PrivateKey)
|
||||||
|
setStringify(&cred.SecurityToken, c.SecurityToken)
|
||||||
|
cred.CanExpire = c.CanExpire
|
||||||
|
cred.Expires = c.Expires
|
||||||
|
return &cred
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadDefaultUCloudConfig is the default loader to load config
|
||||||
|
func LoadDefaultUCloudConfig() (ConfigProvider, error) {
|
||||||
|
cfg := newConfig()
|
||||||
|
|
||||||
|
if err := cfg.loadEnv(); err != nil {
|
||||||
|
return nil, fmt.Errorf("error on loading env, %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cfg.loadFileIfExist(); err != nil {
|
||||||
|
return nil, fmt.Errorf("error on loading shared config file, %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return cfg, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func setStringify(p *string, s string) {
|
||||||
|
if p != nil && len(s) != 0 {
|
||||||
|
*p = s
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
package external
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
UCloudPublicKeyEnvVar = "UCLOUD_PUBLIC_KEY"
|
||||||
|
|
||||||
|
UCloudPrivateKeyEnvVar = "UCLOUD_PRIVATE_KEY"
|
||||||
|
|
||||||
|
UCloudProjectIdEnvVar = "UCLOUD_PROJECT_ID"
|
||||||
|
|
||||||
|
UCloudRegionEnvVar = "UCLOUD_REGION"
|
||||||
|
|
||||||
|
UCloudZoneEnvVar = "UCLOUD_ZONE"
|
||||||
|
|
||||||
|
UCloudAPIBaseURLEnvVar = "UCLOUD_API_BASE_URL"
|
||||||
|
|
||||||
|
UCloudTimeoutSecondEnvVar = "UCLOUD_TIMEOUT_SECOND"
|
||||||
|
|
||||||
|
UCloudSharedProfileEnvVar = "UCLOUD_PROFILE"
|
||||||
|
|
||||||
|
UCloudSharedConfigFileEnvVar = "UCLOUD_SHARED_CONFIG_FILE"
|
||||||
|
|
||||||
|
UCloudSharedCredentialFileEnvVar = "UCLOUD_SHARED_CREDENTIAL_FILE"
|
||||||
|
)
|
||||||
|
|
||||||
|
func loadEnvConfig() (*config, error) {
|
||||||
|
cfg := &config{
|
||||||
|
PublicKey: os.Getenv(UCloudPublicKeyEnvVar),
|
||||||
|
PrivateKey: os.Getenv(UCloudPrivateKeyEnvVar),
|
||||||
|
ProjectId: os.Getenv(UCloudProjectIdEnvVar),
|
||||||
|
Region: os.Getenv(UCloudRegionEnvVar),
|
||||||
|
Zone: os.Getenv(UCloudZoneEnvVar),
|
||||||
|
BaseUrl: os.Getenv(UCloudAPIBaseURLEnvVar),
|
||||||
|
SharedConfigFile: os.Getenv(UCloudSharedConfigFileEnvVar),
|
||||||
|
SharedCredentialFile: os.Getenv(UCloudSharedCredentialFileEnvVar),
|
||||||
|
Profile: os.Getenv(UCloudSharedProfileEnvVar),
|
||||||
|
}
|
||||||
|
|
||||||
|
durstr, ok := os.LookupEnv(UCloudTimeoutSecondEnvVar)
|
||||||
|
if ok {
|
||||||
|
durnum, err := strconv.Atoi(durstr)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("parse environment variable UCLOUD_TIMEOUT_SECOND [%s] error : %v", durstr, err)
|
||||||
|
}
|
||||||
|
cfg.Timeout = time.Second * time.Duration(durnum)
|
||||||
|
}
|
||||||
|
return cfg, nil
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
package external
|
||||||
|
|
||||||
|
import (
|
||||||
|
"hash/crc32"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func hashcode(s string) int {
|
||||||
|
v := int(crc32.ChecksumIEEE([]byte(s)))
|
||||||
|
if v >= 0 {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
return -v
|
||||||
|
}
|
||||||
|
|
||||||
|
func hashString(v interface{}) int {
|
||||||
|
return hashcode(v.(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
func hashInt(v interface{}) int {
|
||||||
|
return hashcode(strconv.Itoa(v.(int)))
|
||||||
|
}
|
||||||
|
|
||||||
|
// setIDFunc is the function to identify the unique id for the item of set
|
||||||
|
type setIDFunc func(interface{}) int
|
||||||
|
|
||||||
|
// set is a structure to distinct instance
|
||||||
|
type set struct {
|
||||||
|
idFunc setIDFunc
|
||||||
|
idMap map[int]interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// newSet will expected a list, reserving only one item with same id and return a set-collection
|
||||||
|
func newSet(idFunc setIDFunc, vL []interface{}) *set {
|
||||||
|
s := &set{
|
||||||
|
idMap: make(map[int]interface{}, len(vL)),
|
||||||
|
idFunc: idFunc,
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, v := range vL {
|
||||||
|
s.Add(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *set) Add(v interface{}) {
|
||||||
|
id := s.idFunc(v)
|
||||||
|
if _, ok := s.idMap[id]; !ok {
|
||||||
|
s.idMap[id] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *set) Remove(v interface{}) {
|
||||||
|
delete(s.idMap, s.idFunc(v))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *set) List() []interface{} {
|
||||||
|
vL := make([]interface{}, s.Len())
|
||||||
|
|
||||||
|
var i int
|
||||||
|
for _, v := range s.idMap {
|
||||||
|
vL[i] = v
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
|
||||||
|
return vL
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *set) Len() int {
|
||||||
|
return len(s.idMap)
|
||||||
|
}
|
|
@ -0,0 +1,192 @@
|
||||||
|
package external
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/ucloud"
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/ucloud/auth"
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/ucloud/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DefaultProfile is the default named profile for ucloud sdk
|
||||||
|
const DefaultProfile = "default"
|
||||||
|
|
||||||
|
// DefaultSharedConfigFile will return the default shared config filename
|
||||||
|
func DefaultSharedConfigFile() string {
|
||||||
|
return filepath.Join(userHomeDir(), ".ucloud", "config.json")
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultSharedCredentialsFile will return the default shared credential filename
|
||||||
|
func DefaultSharedCredentialsFile() string {
|
||||||
|
return filepath.Join(userHomeDir(), ".ucloud", "credential.json")
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadUCloudConfigFile will load ucloud client config from config file
|
||||||
|
func LoadUCloudConfigFile(cfgFile, profile string) (*ucloud.Config, error) {
|
||||||
|
if len(profile) == 0 {
|
||||||
|
return nil, fmt.Errorf("expected ucloud named profile is not empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
cfgMaps, err := loadConfigFile(cfgFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
c := getSharedConfig(cfgMaps, profile)
|
||||||
|
return c.Config(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadUCloudCredentialFile will load ucloud credential config from config file
|
||||||
|
func LoadUCloudCredentialFile(credFile, profile string) (*auth.Credential, error) {
|
||||||
|
if len(profile) == 0 {
|
||||||
|
return nil, fmt.Errorf("expected ucloud named profile is not empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
credMaps, err := loadCredFile(credFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
c := getSharedCredential(credMaps, profile)
|
||||||
|
return c.Credential(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type sharedConfig struct {
|
||||||
|
ProjectID string `json:"project_id"`
|
||||||
|
Region string `json:"region"`
|
||||||
|
Zone string `json:"zone"`
|
||||||
|
BaseURL string `json:"base_url"`
|
||||||
|
Timeout int `json:"timeout_sec"`
|
||||||
|
Profile string `json:"profile"`
|
||||||
|
Active bool `json:"active"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type sharedCredential struct {
|
||||||
|
PublicKey string `json:"public_key"`
|
||||||
|
PrivateKey string `json:"private_key"`
|
||||||
|
Profile string `json:"profile"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadConfigFile(cfgFile string) ([]sharedConfig, error) {
|
||||||
|
realCfgFile := cfgFile
|
||||||
|
cfgs := make([]sharedConfig, 0)
|
||||||
|
|
||||||
|
// try to load default config
|
||||||
|
if len(realCfgFile) == 0 {
|
||||||
|
realCfgFile = DefaultSharedConfigFile()
|
||||||
|
}
|
||||||
|
|
||||||
|
// load config file
|
||||||
|
err := loadJSONFile(realCfgFile, &cfgs)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
// skip error for loading default config
|
||||||
|
if len(cfgFile) == 0 && os.IsNotExist(err) {
|
||||||
|
log.Debugf("config file is empty")
|
||||||
|
} else {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cfgs, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getCredFilePath(credFile string) string {
|
||||||
|
realCredFile := credFile
|
||||||
|
homePath := fmt.Sprintf("~%s", string(os.PathSeparator))
|
||||||
|
if strings.HasPrefix(credFile, homePath) {
|
||||||
|
realCredFile = strings.Replace(credFile, "~", userHomeDir(), 1)
|
||||||
|
}
|
||||||
|
// try to load default credential
|
||||||
|
if len(credFile) == 0 {
|
||||||
|
realCredFile = DefaultSharedCredentialsFile()
|
||||||
|
}
|
||||||
|
return realCredFile
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadCredFile(credFile string) ([]sharedCredential, error) {
|
||||||
|
realCredFile := getCredFilePath(credFile)
|
||||||
|
creds := make([]sharedCredential, 0)
|
||||||
|
|
||||||
|
// load credential file
|
||||||
|
err := loadJSONFile(realCredFile, &creds)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
// skip error for loading default credential
|
||||||
|
if len(credFile) == 0 && os.IsNotExist(err) {
|
||||||
|
log.Debugf("credential file is empty")
|
||||||
|
} else {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return creds, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadSharedConfigFile(cfgFile, credFile, profile string) (*config, error) {
|
||||||
|
cfgs, err := loadConfigFile(cfgFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
creds, err := loadCredFile(credFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
c := &config{
|
||||||
|
Profile: profile,
|
||||||
|
SharedConfigFile: cfgFile,
|
||||||
|
SharedCredentialFile: credFile,
|
||||||
|
}
|
||||||
|
c.merge(getSharedConfig(cfgs, profile))
|
||||||
|
c.merge(getSharedCredential(creds, c.Profile))
|
||||||
|
|
||||||
|
return c, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getSharedConfig(cfgs []sharedConfig, profile string) *config {
|
||||||
|
cfg := &sharedConfig{}
|
||||||
|
|
||||||
|
if profile != "" {
|
||||||
|
for i := 0; i < len(cfgs); i++ {
|
||||||
|
if cfgs[i].Profile == profile {
|
||||||
|
cfg = &cfgs[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for i := 0; i < len(cfgs); i++ {
|
||||||
|
if cfgs[i].Active {
|
||||||
|
cfg = &cfgs[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return &config{
|
||||||
|
Profile: cfg.Profile,
|
||||||
|
ProjectId: cfg.ProjectID,
|
||||||
|
Region: cfg.Region,
|
||||||
|
Zone: cfg.Zone,
|
||||||
|
BaseUrl: cfg.BaseURL,
|
||||||
|
Timeout: time.Duration(cfg.Timeout) * time.Second,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getSharedCredential(creds []sharedCredential, profile string) *config {
|
||||||
|
cred := &sharedCredential{}
|
||||||
|
|
||||||
|
for i := 0; i < len(creds); i++ {
|
||||||
|
if creds[i].Profile == profile {
|
||||||
|
cred = &creds[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return &config{
|
||||||
|
PublicKey: cred.PublicKey,
|
||||||
|
PrivateKey: cred.PrivateKey,
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
package external
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/private/protocol/http"
|
||||||
|
"github.com/ucloud/ucloud-sdk-go/ucloud/metadata"
|
||||||
|
)
|
||||||
|
|
||||||
|
const internalBaseUrl = "http://api.service.ucloud.cn"
|
||||||
|
|
||||||
|
type AssumeRoleRequest struct {
|
||||||
|
RoleName string
|
||||||
|
}
|
||||||
|
|
||||||
|
func LoadSTSConfig(req AssumeRoleRequest) (ConfigProvider, error) {
|
||||||
|
httpClient := http.NewHttpClient()
|
||||||
|
client := &metadata.DefaultClient{}
|
||||||
|
err := client.SetHttpClient(&httpClient)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return loadSTSConfig(req, client)
|
||||||
|
}
|
||||||
|
|
||||||
|
type metadataProvider interface {
|
||||||
|
SendRequest(string) (string, error)
|
||||||
|
SetHttpClient(http.Client) error
|
||||||
|
}
|
||||||
|
|
||||||
|
type assumeRoleData struct {
|
||||||
|
Expiration int
|
||||||
|
PrivateKey string
|
||||||
|
ProjectID string
|
||||||
|
PublicKey string
|
||||||
|
CharacterName string
|
||||||
|
SecurityToken string
|
||||||
|
UHostID string
|
||||||
|
UPHostId string
|
||||||
|
}
|
||||||
|
|
||||||
|
type assumeRoleResponse struct {
|
||||||
|
RetCode int
|
||||||
|
Message string
|
||||||
|
Data assumeRoleData
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadSTSConfig(req AssumeRoleRequest, client metadataProvider) (ConfigProvider, error) {
|
||||||
|
path := "/meta-data/v1/uam/security-credentials"
|
||||||
|
if len(req.RoleName) != 0 {
|
||||||
|
path += "/" + req.RoleName
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := client.SendRequest(path)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var roleResp assumeRoleResponse
|
||||||
|
if err := json.NewDecoder(strings.NewReader(resp)).Decode(&roleResp); err != nil {
|
||||||
|
return nil, errors.Errorf("failed to decode sts credential, %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
region, err := client.SendRequest("/meta-data/latest/uhost/region")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
zone, err := client.SendRequest("/meta-data/latest/uhost/zone")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
roleData := roleResp.Data
|
||||||
|
stsConfig := &config{
|
||||||
|
CanExpire: true,
|
||||||
|
Expires: time.Unix(int64(roleData.Expiration), 0),
|
||||||
|
PrivateKey: roleData.PrivateKey,
|
||||||
|
PublicKey: roleData.PublicKey,
|
||||||
|
SecurityToken: roleData.SecurityToken,
|
||||||
|
ProjectId: roleData.ProjectID,
|
||||||
|
Region: region,
|
||||||
|
Zone: zone,
|
||||||
|
BaseUrl: internalBaseUrl,
|
||||||
|
}
|
||||||
|
return stsConfig, nil
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package external
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"os/user"
|
||||||
|
)
|
||||||
|
|
||||||
|
func userHomeDir() string {
|
||||||
|
//get user home directory
|
||||||
|
usr, err := user.Current()
|
||||||
|
if err != nil {
|
||||||
|
return "~"
|
||||||
|
}
|
||||||
|
return usr.HomeDir
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadJSONFile(path string, p interface{}) error {
|
||||||
|
f, err := os.Open(path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
c, err := ioutil.ReadAll(f)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = json.Unmarshal(c, p)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -14,7 +14,8 @@ type UFileClient struct {
|
||||||
|
|
||||||
// NewClient will return a instance of UFileClient
|
// NewClient will return a instance of UFileClient
|
||||||
func NewClient(config *ucloud.Config, credential *auth.Credential) *UFileClient {
|
func NewClient(config *ucloud.Config, credential *auth.Credential) *UFileClient {
|
||||||
client := ucloud.NewClient(config, credential)
|
meta := ucloud.ClientMeta{Product: "UFile"}
|
||||||
|
client := ucloud.NewClientWithMeta(config, credential, meta)
|
||||||
return &UFileClient{
|
return &UFileClient{
|
||||||
client,
|
client,
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,71 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost CopyCustomImage
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CopyCustomImageRequest is request schema for CopyCustomImage action
|
|
||||||
type CopyCustomImageRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 源镜像Id, 参见 DescribeImage
|
|
||||||
SourceImageId *string `required:"true"`
|
|
||||||
|
|
||||||
// 目标项目Id, 参见 GetProjectList
|
|
||||||
TargetProjectId *string `required:"true"`
|
|
||||||
|
|
||||||
// 目标地域,不跨地域不用填
|
|
||||||
TargetRegion *string `required:"false"`
|
|
||||||
|
|
||||||
// 目标镜像名称
|
|
||||||
TargetImageName *string `required:"false"`
|
|
||||||
|
|
||||||
// 目标镜像描述
|
|
||||||
TargetImageDescription *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CopyCustomImageResponse is response schema for CopyCustomImage action
|
|
||||||
type CopyCustomImageResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 目标镜像Id
|
|
||||||
TargetImageId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCopyCustomImageRequest will create request of CopyCustomImage action.
|
|
||||||
func (c *UHostClient) NewCopyCustomImageRequest() *CopyCustomImageRequest {
|
|
||||||
req := &CopyCustomImageRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CopyCustomImage - 复制自制镜像
|
|
||||||
func (c *UHostClient) CopyCustomImage(req *CopyCustomImageRequest) (*CopyCustomImageResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CopyCustomImageResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CopyCustomImage", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost CreateCustomImage
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateCustomImageRequest is request schema for CreateCustomImage action
|
|
||||||
type CreateCustomImageRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 镜像名称
|
|
||||||
ImageName *string `required:"true"`
|
|
||||||
|
|
||||||
// 镜像描述
|
|
||||||
ImageDescription *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateCustomImageResponse is response schema for CreateCustomImage action
|
|
||||||
type CreateCustomImageResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 镜像Id
|
|
||||||
ImageId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateCustomImageRequest will create request of CreateCustomImage action.
|
|
||||||
func (c *UHostClient) NewCreateCustomImageRequest() *CreateCustomImageRequest {
|
|
||||||
req := &CreateCustomImageRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateCustomImage - 从指定UHost实例,生成自定义镜像。
|
|
||||||
func (c *UHostClient) CreateCustomImage(req *CreateCustomImageRequest) (*CreateCustomImageResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateCustomImageResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateCustomImage", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
59
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/create_isolation_group.go
generated
vendored
59
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/create_isolation_group.go
generated
vendored
|
@ -1,59 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost CreateIsolationGroup
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateIsolationGroupRequest is request schema for CreateIsolationGroup action
|
|
||||||
type CreateIsolationGroupRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目id
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 硬件隔离组名称。请遵照[[api:uhost-api:specification|字段规范]]设定隔离组名称。
|
|
||||||
GroupName *string `required:"true"`
|
|
||||||
|
|
||||||
// 备注。请遵照[[api:uhost-api:specification|字段规范]]设定隔离组备注。
|
|
||||||
Remark *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateIsolationGroupResponse is response schema for CreateIsolationGroup action
|
|
||||||
type CreateIsolationGroupResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 硬件隔离组id
|
|
||||||
GroupId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateIsolationGroupRequest will create request of CreateIsolationGroup action.
|
|
||||||
func (c *UHostClient) NewCreateIsolationGroupRequest() *CreateIsolationGroupRequest {
|
|
||||||
req := &CreateIsolationGroupRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateIsolationGroup - 创建硬件隔离组,组内机器严格隔离在不同宿主机上。
|
|
||||||
func (c *UHostClient) CreateIsolationGroup(req *CreateIsolationGroupRequest) (*CreateIsolationGroupResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateIsolationGroupResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateIsolationGroup", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
211
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/create_uhost_instance.go
generated
vendored
211
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/create_uhost_instance.go
generated
vendored
|
@ -1,211 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/base64"
|
|
||||||
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateUHostInstanceRequest is request schema for CreateUHostInstance action
|
|
||||||
type CreateUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"true"`
|
|
||||||
|
|
||||||
// 镜像ID。 请通过 [DescribeImage](describe_image.html)获取
|
|
||||||
ImageId *string `required:"true"`
|
|
||||||
|
|
||||||
// UHost密码,LoginMode为Password时此项必须(密码需使用base64进行编码)
|
|
||||||
Password *string `required:"true"`
|
|
||||||
|
|
||||||
// 磁盘列表
|
|
||||||
Disks []UHostDisk `required:"true"`
|
|
||||||
|
|
||||||
// UHost实例名称。默认:UHost。请遵照[[api:uhost-api:specification|字段规范]]设定实例名称。
|
|
||||||
Name *string `required:"false"`
|
|
||||||
|
|
||||||
// 业务组。默认:Default(Default即为未分组)
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
|
|
||||||
// 计费模式。枚举值为: Year,按年付费; Month,按月付费; Dynamic,按小时付费(需开启权限)。默认为月付
|
|
||||||
ChargeType *string `required:"false"`
|
|
||||||
|
|
||||||
// 购买时长。默认: 1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表了购买至月末。
|
|
||||||
Quantity *int `required:"false"`
|
|
||||||
|
|
||||||
// 云主机机型。枚举值:N1:系列1标准型;N2:系列2标准型;I1: 系列1高IO型;I2,系列2高IO型; D1: 系列1大数据机型;G1: 系列1GPU型,型号为K80;G2:系列2GPU型,型号为P40;G3:系列2GPU型,型号为V100;北京A、北京C、上海二A、香港A可用区默认N1,其他机房默认N2。参考[[api:uhost-api:uhost_type|云主机机型说明]]。
|
|
||||||
UHostType *string `required:"false"`
|
|
||||||
|
|
||||||
// 虚拟CPU核数。可选参数:1-32(可选范围与UHostType相关)。默认值: 4
|
|
||||||
CPU *int `required:"false"`
|
|
||||||
|
|
||||||
// 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围与UHostType相关)。默认值:8192
|
|
||||||
Memory *int `required:"false"`
|
|
||||||
|
|
||||||
// GPU卡核心数。仅GPU机型支持此字段;系列1可选1,2;系列2可选1,2,3,4。GPU可选数量与CPU有关联,详情请参考控制台。
|
|
||||||
GPU *int `required:"false"`
|
|
||||||
|
|
||||||
// 主机登陆模式。密码(默认选项): Password,key: KeyPair(此项暂不支持)
|
|
||||||
LoginMode *string `required:"false"`
|
|
||||||
|
|
||||||
// 【暂不支持】Keypair公钥,LoginMode为KeyPair时此项必须
|
|
||||||
KeyPair *string `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃,不建议调用】磁盘类型,同时设定系统盘和数据盘的磁盘类型。枚举值为:LocalDisk,本地磁盘; UDisk,云硬盘;默认为LocalDisk。仅部分可用区支持云硬盘方式的主机存储方式,具体请查询控制台。
|
|
||||||
StorageType *string `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃,不建议调用】系统盘大小。 单位:GB, 范围[20,100], 步长:10
|
|
||||||
BootDiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃,不建议调用】数据盘大小。 单位:GB, 范围[0,8000], 步长:10, 默认值:20,云盘支持0-8000;本地普通盘支持0-2000;本地SSD盘(包括所有GPU机型)支持100-1000
|
|
||||||
DiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 网络增强。目前仅Normal(不开启) 和Super(开启)可用。默认Normal。 不同机房的网络增强支持情况不同。详情请参考控制台。
|
|
||||||
NetCapability *string `required:"false"`
|
|
||||||
|
|
||||||
// 是否开启方舟特性。Yes为开启方舟,No为关闭方舟。目前仅选择普通本地盘+普通本地盘 或 SSD云盘+普通云盘的组合支持开启方舟。
|
|
||||||
TimemachineFeature *string `required:"false"`
|
|
||||||
|
|
||||||
// 是否开启热升级特性。True为开启,False为未开启,默认False。仅系列1云主机需要使用此字段,系列2云主机根据镜像是否支持云主机。
|
|
||||||
HotplugFeature *bool `required:"false"`
|
|
||||||
|
|
||||||
// 网络ID(VPC2.0情况下无需填写)。VPC1.0情况下,若不填写,代表选择基础网络; 若填写,代表选择子网。参见DescribeSubnet。
|
|
||||||
NetworkId *string `required:"false"`
|
|
||||||
|
|
||||||
// VPC ID。VPC2.0下需要填写此字段。
|
|
||||||
VPCId *string `required:"false"`
|
|
||||||
|
|
||||||
// 子网ID。VPC2.0下需要填写此字段。
|
|
||||||
SubnetId *string `required:"false"`
|
|
||||||
|
|
||||||
// 【数组】创建云主机时指定内网IP。当前只支持一个内网IP。调用方式举例:PrivateIp.0=x.x.x.x。
|
|
||||||
PrivateIp []string `required:"false"`
|
|
||||||
|
|
||||||
// 创建云主机时指定Mac。调用方式举例:PrivateMac="xx:xx:xx:xx:xx:xx"。
|
|
||||||
PrivateMac *string `required:"false"`
|
|
||||||
|
|
||||||
// 防火墙Id,默认:Web推荐防火墙。如何查询SecurityGroupId请参见 [DescribeSecurityGroup](../unet-api/describe_security_group.html)
|
|
||||||
SecurityGroupId *string `required:"false"`
|
|
||||||
|
|
||||||
// 硬件隔离组id。可通过DescribeIsolationGroup获取。
|
|
||||||
IsolationGroup *string `required:"false"`
|
|
||||||
|
|
||||||
// 【暂不支持】cloudinit方式下,用户初始化脚本
|
|
||||||
UserDataScript *string `required:"false"`
|
|
||||||
|
|
||||||
// 【已废弃】宿主机类型,N2,N1
|
|
||||||
HostType *string `required:"false"`
|
|
||||||
|
|
||||||
// 【暂不支持】是否安装UGA。'yes': 安装;其他或者不填:不安装。
|
|
||||||
InstallAgent *string `required:"false"`
|
|
||||||
|
|
||||||
// 【内部参数】资源类型
|
|
||||||
ResourceType *int `required:"false"`
|
|
||||||
|
|
||||||
// 代金券ID。请通过DescribeCoupon接口查询,或登录用户中心查看
|
|
||||||
CouponId *string `required:"false"`
|
|
||||||
|
|
||||||
// 云主机类型,枚举值["N", "C", "G", "O"]
|
|
||||||
MachineType *string `required:"false"`
|
|
||||||
|
|
||||||
// 最低cpu平台,枚举值["Intel/Auto", "Intel/LvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake"(只有O型云主机可选)]
|
|
||||||
MinimalCpuPlatform *string `required:"false"`
|
|
||||||
|
|
||||||
// 【批量创建主机时必填】最大创建主机数量,取值范围是[1,100];
|
|
||||||
MaxCount *int `required:"false"`
|
|
||||||
|
|
||||||
// GPU类型,枚举值["K80", "P40", "V100"],MachineType为G时必填
|
|
||||||
GpuType *string `required:"false"`
|
|
||||||
|
|
||||||
// NetworkInterface
|
|
||||||
NetworkInterface []CreateUHostInstanceParamNetworkInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
CreateUHostInstanceParamNetworkInterface is request schema for complex param
|
|
||||||
*/
|
|
||||||
type CreateUHostInstanceParamNetworkInterface struct {
|
|
||||||
|
|
||||||
// EIP
|
|
||||||
EIP *CreateUHostInstanceParamNetworkInterfaceEIP
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
CreateUHostInstanceParamNetworkInterfaceEIP is request schema for complex param
|
|
||||||
*/
|
|
||||||
type CreateUHostInstanceParamNetworkInterfaceEIP struct {
|
|
||||||
|
|
||||||
// 弹性IP的计费模式. 枚举值: "Traffic", 流量计费; "Bandwidth", 带宽计费; "ShareBandwidth",共享带宽模式. "Free":免费带宽模式.默认为 "Bandwidth".
|
|
||||||
PayMode *string
|
|
||||||
|
|
||||||
// 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看
|
|
||||||
CouponId *string
|
|
||||||
|
|
||||||
// 【如果绑定EIP这个参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式必须指定0M带宽, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800]
|
|
||||||
Bandwidth *int
|
|
||||||
|
|
||||||
// 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效
|
|
||||||
ShareBandwidthId *string
|
|
||||||
|
|
||||||
// GlobalSSH
|
|
||||||
GlobalSSH *CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH
|
|
||||||
|
|
||||||
// 【如果绑定EIP这个参数必填】弹性IP的线路如下: 国际: International BGP: Bgp 各地域允许的线路参数如下: cn-sh1: Bgp cn-sh2: Bgp cn-gd: Bgp cn-bj1: Bgp cn-bj2: Bgp hk: International us-ca: International th-bkk: International kr-seoul:International us-ws:International ge-fra:International sg:International tw-kh:International.其他海外线路均为 International
|
|
||||||
OperatorName *string
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH is request schema for complex param
|
|
||||||
*/
|
|
||||||
type CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH struct {
|
|
||||||
|
|
||||||
// 填写支持SSH访问IP的地区名称,如“洛杉矶”,“新加坡”,“香港”,“东京”,“华盛顿”,“法兰克福”。Area和AreaCode两者必填一个
|
|
||||||
Area *string
|
|
||||||
|
|
||||||
// AreaCode, 区域航空港国际通用代码。Area和AreaCode两者必填一个
|
|
||||||
AreaCode *string
|
|
||||||
|
|
||||||
// SSH端口,1-65535且不能使用80,443端口
|
|
||||||
Port *int
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateUHostInstanceResponse is response schema for CreateUHostInstance action
|
|
||||||
type CreateUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例Id集合
|
|
||||||
UHostIds []string
|
|
||||||
|
|
||||||
// IP信息
|
|
||||||
IPs []string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateUHostInstanceRequest will create request of CreateUHostInstance action.
|
|
||||||
func (c *UHostClient) NewCreateUHostInstanceRequest() *CreateUHostInstanceRequest {
|
|
||||||
req := &CreateUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateUHostInstance - 指定数据中心,根据资源使用量创建指定数量的UHost实例。
|
|
||||||
func (c *UHostClient) CreateUHostInstance(req *CreateUHostInstanceRequest) (*CreateUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateUHostInstanceResponse
|
|
||||||
var reqImmutable = *req
|
|
||||||
reqImmutable.Password = ucloud.String(base64.StdEncoding.EncodeToString([]byte(ucloud.StringValue(req.Password))))
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateUHostInstance", &reqImmutable, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
56
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/delete_isolation_group.go
generated
vendored
56
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/delete_isolation_group.go
generated
vendored
|
@ -1,56 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost DeleteIsolationGroup
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeleteIsolationGroupRequest is request schema for DeleteIsolationGroup action
|
|
||||||
type DeleteIsolationGroupRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目id
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 硬件隔离组id
|
|
||||||
GroupId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteIsolationGroupResponse is response schema for DeleteIsolationGroup action
|
|
||||||
type DeleteIsolationGroupResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 硬件隔离组id
|
|
||||||
GroupId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDeleteIsolationGroupRequest will create request of DeleteIsolationGroup action.
|
|
||||||
func (c *UHostClient) NewDeleteIsolationGroupRequest() *DeleteIsolationGroupRequest {
|
|
||||||
req := &DeleteIsolationGroupRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteIsolationGroup - 删除硬件隔离组。
|
|
||||||
func (c *UHostClient) DeleteIsolationGroup(req *DeleteIsolationGroupRequest) (*DeleteIsolationGroupResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DeleteIsolationGroupResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DeleteIsolationGroup", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost DescribeImage
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeImageRequest is request schema for DescribeImage action
|
|
||||||
type DescribeImageRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 镜像类型。标准镜像:Base,镜像市场:Business, 自定义镜像:Custom,默认返回所有类型
|
|
||||||
ImageType *string `required:"false"`
|
|
||||||
|
|
||||||
// 操作系统类型:Linux, Windows 默认返回所有类型
|
|
||||||
OsType *string `required:"false"`
|
|
||||||
|
|
||||||
// 镜像Id
|
|
||||||
ImageId *string `required:"false"`
|
|
||||||
|
|
||||||
// 列表起始位置偏移量,默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
|
|
||||||
// 返回数据长度,默认为20
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
|
|
||||||
// 是否返回价格:1返回,0不返回;默认不返回
|
|
||||||
PriceSet *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeImageResponse is response schema for DescribeImage action
|
|
||||||
type DescribeImageResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 满足条件的镜像总数
|
|
||||||
TotalCount int
|
|
||||||
|
|
||||||
// 镜像列表详见 UHostImageSet
|
|
||||||
ImageSet []UHostImageSet
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeImageRequest will create request of DescribeImage action.
|
|
||||||
func (c *UHostClient) NewDescribeImageRequest() *DescribeImageRequest {
|
|
||||||
req := &DescribeImageRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeImage - 获取指定数据中心镜像列表,用户可通过指定操作系统类型,镜像Id进行过滤。
|
|
||||||
func (c *UHostClient) DescribeImage(req *DescribeImageRequest) (*DescribeImageResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeImageResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeImage", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/describe_isolation_group.go
generated
vendored
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/describe_isolation_group.go
generated
vendored
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost DescribeIsolationGroup
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeIsolationGroupRequest is request schema for DescribeIsolationGroup action
|
|
||||||
type DescribeIsolationGroupRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目id
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 待查的硬件隔离组id
|
|
||||||
GroupId *string `required:"false"`
|
|
||||||
|
|
||||||
// 列表起始位置偏移量,默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
|
|
||||||
// 返回数据长度,默认为20,最大100
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeIsolationGroupResponse is response schema for DescribeIsolationGroup action
|
|
||||||
type DescribeIsolationGroupResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 硬件隔离组集合。参见数据结构IsolationGroup。
|
|
||||||
IsolationGroupSet []IsolationGroup
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeIsolationGroupRequest will create request of DescribeIsolationGroup action.
|
|
||||||
func (c *UHostClient) NewDescribeIsolationGroupRequest() *DescribeIsolationGroupRequest {
|
|
||||||
req := &DescribeIsolationGroupRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeIsolationGroup - 查询硬件隔离组列表。
|
|
||||||
func (c *UHostClient) DescribeIsolationGroup(req *DescribeIsolationGroupRequest) (*DescribeIsolationGroupResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeIsolationGroupResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeIsolationGroup", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
83
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/describe_uhost_instance.go
generated
vendored
83
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/describe_uhost_instance.go
generated
vendored
|
@ -1,83 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost DescribeUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeUHostInstanceRequest is request schema for DescribeUHostInstance action
|
|
||||||
type DescribeUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 【数组】UHost主机的资源ID,例如UHostIds.0代表希望获取信息 的主机1,UHostIds.1代表主机2。 如果不传入,则返回当前Region 所有符合条件的UHost实例。
|
|
||||||
UHostIds []string `required:"false"`
|
|
||||||
|
|
||||||
// 要查询的业务组名称
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
|
|
||||||
// 1:普通云主机;2:抢占型云主机;如不传此参数,默认全部获取
|
|
||||||
LifeCycle *int `required:"false"`
|
|
||||||
|
|
||||||
// 列表起始位置偏移量,默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
|
|
||||||
// 返回数据长度,默认为20,最大100
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
|
|
||||||
// 硬件隔离组id。通过硬件隔离组筛选主机。
|
|
||||||
IsolationGroup *string `required:"false"`
|
|
||||||
|
|
||||||
// vpc id。通过VPC筛选主机。
|
|
||||||
VPCId *string `required:"false"`
|
|
||||||
|
|
||||||
// 子网id。通过子网筛选主机。
|
|
||||||
SubnetId *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeUHostInstanceResponse is response schema for DescribeUHostInstance action
|
|
||||||
type DescribeUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHostInstance总数
|
|
||||||
TotalCount int
|
|
||||||
|
|
||||||
// 云主机实例列表,每项参数可见下面 UHostInstanceSet
|
|
||||||
UHostSet []UHostInstanceSet
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeUHostInstanceRequest will create request of DescribeUHostInstance action.
|
|
||||||
func (c *UHostClient) NewDescribeUHostInstanceRequest() *DescribeUHostInstanceRequest {
|
|
||||||
req := &DescribeUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeUHostInstance - 获取主机或主机列表信息,并可根据数据中心,主机ID等参数进行过滤。
|
|
||||||
func (c *UHostClient) DescribeUHostInstance(req *DescribeUHostInstanceRequest) (*DescribeUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost DescribeUHostTags
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeUHostTagsRequest is request schema for DescribeUHostTags action
|
|
||||||
type DescribeUHostTagsRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeUHostTagsResponse is response schema for DescribeUHostTags action
|
|
||||||
type DescribeUHostTagsResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 已有主机的业务组总个数
|
|
||||||
TotalCount int
|
|
||||||
|
|
||||||
// 业务组集合见 UHostTagSet
|
|
||||||
TagSet []UHostTagSet
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeUHostTagsRequest will create request of DescribeUHostTags action.
|
|
||||||
func (c *UHostClient) NewDescribeUHostTagsRequest() *DescribeUHostTagsRequest {
|
|
||||||
req := &DescribeUHostTagsRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeUHostTags - 获取指定数据中心的业务组列表。
|
|
||||||
func (c *UHostClient) DescribeUHostTags(req *DescribeUHostTagsRequest) (*DescribeUHostTagsResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeUHostTagsResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeUHostTags", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,5 +1,7 @@
|
||||||
|
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Package uhost include resources of ucloud host product
|
Package uhost include resources of ucloud uhost product
|
||||||
|
|
||||||
See also
|
See also
|
||||||
|
|
||||||
|
|
94
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/get_uhost_instance_price.go
generated
vendored
94
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/get_uhost_instance_price.go
generated
vendored
|
@ -1,94 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetUHostInstancePriceRequest is request schema for GetUHostInstancePrice action
|
|
||||||
type GetUHostInstancePriceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 镜像Id,可通过 [DescribeImage](describe_image.html) 获取镜像ID
|
|
||||||
ImageId *string `required:"true"`
|
|
||||||
|
|
||||||
// 虚拟CPU核数。可选参数:1-32(可选范围与UHostType相关)。默认值: 4
|
|
||||||
CPU *int `required:"true"`
|
|
||||||
|
|
||||||
// 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围与UHostType相关)。默认值:8192
|
|
||||||
Memory *int `required:"true"`
|
|
||||||
|
|
||||||
// 【未启用】购买台数,范围[1,5]
|
|
||||||
Count *int `required:"false"`
|
|
||||||
|
|
||||||
// 磁盘列表
|
|
||||||
Disks []UHostDisk
|
|
||||||
|
|
||||||
// GPU卡核心数。仅GPU机型支持此字段(可选范围与UHostType相关)。
|
|
||||||
GPU *int `required:"false"`
|
|
||||||
|
|
||||||
// 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时付费 \\ 默认为月付。
|
|
||||||
ChargeType *string `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】磁盘类型,同时设定系统盘和数据盘, 枚举值为:LocalDisk,本地磁盘; UDisk,云硬盘; 默认为LocalDisk 仅部分可用区支持云硬盘方式的主机存储方式,具体请查询控制台。
|
|
||||||
StorageType *string `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】数据盘大小,单位: GB,范围[0,1000],步长: 10,默认值: 0
|
|
||||||
DiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 网络增强。枚举值:\\ > Normal,不开启 \\ > Super,开启 \\ 默认值未为Normal。
|
|
||||||
NetCapability *string `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】方舟机型。No,Yes。默认是No。
|
|
||||||
TimemachineFeature *string `required:"false"`
|
|
||||||
|
|
||||||
// 主机类型 Normal: 标准机型 SSD:SSD机型 BigData:大数据 GPU:GPU型G1(原GPU型) GPU_G2:GPU型G2 GPU_G3:GPU型G3 不同机房的主机类型支持情况不同。详情请参考控制台。
|
|
||||||
UHostType *string `required:"false"`
|
|
||||||
// 【未支持】1:普通云主机;2:抢占性云主机;默认普通
|
|
||||||
LifeCycle *int `required:"false"`
|
|
||||||
|
|
||||||
// 购买时长。默认: 1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表了购买至月末。
|
|
||||||
Quantity *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUHostInstancePriceResponse is response schema for GetUHostInstancePrice action
|
|
||||||
type GetUHostInstancePriceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 价格列表 UHostPriceSet
|
|
||||||
PriceSet []UHostPriceSet
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewGetUHostInstancePriceRequest will create request of GetUHostInstancePrice action.
|
|
||||||
func (c *UHostClient) NewGetUHostInstancePriceRequest() *GetUHostInstancePriceRequest {
|
|
||||||
req := &GetUHostInstancePriceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUHostInstancePrice - 根据UHost实例配置,获取UHost实例的价格。
|
|
||||||
func (c *UHostClient) GetUHostInstancePrice(req *GetUHostInstancePriceRequest) (*GetUHostInstancePriceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res GetUHostInstancePriceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("GetUHostInstancePrice", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
68
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/get_uhost_instance_vnc_info.go
generated
vendored
68
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/get_uhost_instance_vnc_info.go
generated
vendored
|
@ -1,68 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost GetUHostInstanceVncInfo
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetUHostInstanceVncInfoRequest is request schema for GetUHostInstanceVncInfo action
|
|
||||||
type GetUHostInstanceVncInfoRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](./describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUHostInstanceVncInfoResponse is response schema for GetUHostInstanceVncInfo action
|
|
||||||
type GetUHostInstanceVncInfoResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
|
|
||||||
// Vnc登录IP
|
|
||||||
VncIP string
|
|
||||||
|
|
||||||
// Vnc登录端口
|
|
||||||
VncPort int
|
|
||||||
|
|
||||||
// Vnc 登录密码
|
|
||||||
VncPassword string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewGetUHostInstanceVncInfoRequest will create request of GetUHostInstanceVncInfo action.
|
|
||||||
func (c *UHostClient) NewGetUHostInstanceVncInfoRequest() *GetUHostInstanceVncInfoRequest {
|
|
||||||
req := &GetUHostInstanceVncInfoRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUHostInstanceVncInfo - 获取指定UHost实例的管理VNC配置详细信息。
|
|
||||||
func (c *UHostClient) GetUHostInstanceVncInfo(req *GetUHostInstanceVncInfoRequest) (*GetUHostInstanceVncInfoResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res GetUHostInstanceVncInfoResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("GetUHostInstanceVncInfo", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
80
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/get_uhost_upgrade_price.go
generated
vendored
80
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/get_uhost_upgrade_price.go
generated
vendored
|
@ -1,80 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost GetUHostUpgradePrice
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetUHostUpgradePriceRequest is request schema for GetUHostUpgradePrice action
|
|
||||||
type GetUHostUpgradePriceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID。 参见 [DescribeUHostInstance](describe_uhost_instance.html)。
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 虚拟CPU核数。可选参数:1-32(可选范围与UHostType相关)。默认值为当前实例的CPU核数。
|
|
||||||
CPU *int `required:"false"`
|
|
||||||
|
|
||||||
// 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围与UHostType相关)。默认值为当前实例的内存大小。
|
|
||||||
Memory *int `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】数据盘大小,单位: GB,范围[0,1000],步长: 10, 默认值是该主机当前数据盘大小。
|
|
||||||
DiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】系统大小,单位: GB,范围[20,100],步长: 10。
|
|
||||||
BootDiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 方舟机型。No,Yes。默认是No。
|
|
||||||
TimemachineFeature *string `required:"false"`
|
|
||||||
|
|
||||||
// 网卡升降级(1,表示升级,2表示降级,0表示不变)
|
|
||||||
NetCapValue *int `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】主机系列,目前支持N1,N2
|
|
||||||
HostType *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUHostUpgradePriceResponse is response schema for GetUHostUpgradePrice action
|
|
||||||
type GetUHostUpgradePriceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 规格调整差价。精确到小数点后2位。
|
|
||||||
Price float64
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewGetUHostUpgradePriceRequest will create request of GetUHostUpgradePrice action.
|
|
||||||
func (c *UHostClient) NewGetUHostUpgradePriceRequest() *GetUHostUpgradePriceRequest {
|
|
||||||
req := &GetUHostUpgradePriceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUHostUpgradePrice - 获取UHost实例升级配置的价格。可选配置范围请参考[[api:uhost-api:uhost_type|云主机机型说明]]。
|
|
||||||
func (c *UHostClient) GetUHostUpgradePrice(req *GetUHostUpgradePriceRequest) (*GetUHostUpgradePriceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res GetUHostUpgradePriceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("GetUHostUpgradePrice", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,74 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ImportCustomImage
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ImportCustomImageRequest is request schema for ImportCustomImage action
|
|
||||||
type ImportCustomImageRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 镜像名称
|
|
||||||
ImageName *string `required:"true"`
|
|
||||||
|
|
||||||
// UFile私有空间地址
|
|
||||||
UFileUrl *string `required:"true"`
|
|
||||||
|
|
||||||
// 操作系统平台,比如CentOS、Ubuntu、Windows、RedHat等,请参考控制台的镜像版本;若导入控制台上没有的操作系统,参数为Other
|
|
||||||
OsType *string `required:"true"`
|
|
||||||
|
|
||||||
// 操作系统详细版本,请参考控制台的镜像版本;OsType为Other时,输入参数为Other
|
|
||||||
OsName *string `required:"true"`
|
|
||||||
|
|
||||||
// 镜像格式,可选RAW、VHD、VMDK、qcow2
|
|
||||||
Format *string `required:"true"`
|
|
||||||
|
|
||||||
// 是否授权。必须填true
|
|
||||||
Auth *bool `required:"true"`
|
|
||||||
|
|
||||||
// 镜像描述
|
|
||||||
ImageDescription *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ImportCustomImageResponse is response schema for ImportCustomImage action
|
|
||||||
type ImportCustomImageResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 镜像Id
|
|
||||||
ImageId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewImportCustomImageRequest will create request of ImportCustomImage action.
|
|
||||||
func (c *UHostClient) NewImportCustomImageRequest() *ImportCustomImageRequest {
|
|
||||||
req := &ImportCustomImageRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ImportCustomImage - 把UFile的镜像文件导入到UHost,生成自定义镜像
|
|
||||||
func (c *UHostClient) ImportCustomImage(req *ImportCustomImageRequest) (*ImportCustomImageResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ImportCustomImageResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ImportCustomImage", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/leave_isolation_group.go
generated
vendored
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/leave_isolation_group.go
generated
vendored
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost LeaveIsolationGroup
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// LeaveIsolationGroupRequest is request schema for LeaveIsolationGroup action
|
|
||||||
type LeaveIsolationGroupRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区信息
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目id
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 硬件隔离组id
|
|
||||||
GroupId *string `required:"true"`
|
|
||||||
|
|
||||||
// 主机id
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LeaveIsolationGroupResponse is response schema for LeaveIsolationGroup action
|
|
||||||
type LeaveIsolationGroupResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 主机id
|
|
||||||
UHostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewLeaveIsolationGroupRequest will create request of LeaveIsolationGroup action.
|
|
||||||
func (c *UHostClient) NewLeaveIsolationGroupRequest() *LeaveIsolationGroupRequest {
|
|
||||||
req := &LeaveIsolationGroupRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// LeaveIsolationGroup - 移除硬件隔离组中的主机
|
|
||||||
func (c *UHostClient) LeaveIsolationGroup(req *LeaveIsolationGroupRequest) (*LeaveIsolationGroupResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res LeaveIsolationGroupResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("LeaveIsolationGroup", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -0,0 +1,309 @@
|
||||||
|
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
||||||
|
|
||||||
|
package uhost
|
||||||
|
|
||||||
|
/*
|
||||||
|
UHostImageSet - DescribeImage
|
||||||
|
*/
|
||||||
|
type UHostImageSet struct {
|
||||||
|
|
||||||
|
// 创建时间,格式为Unix时间戳
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// 特殊状态标识, 目前包含NetEnhnced(网络增强1.0), NetEnhanced_Ultra](网络增强2.0),HotPlug(热升级),CloudInit
|
||||||
|
Features []string
|
||||||
|
|
||||||
|
// 行业镜像类型(仅行业镜像将返回这个值)
|
||||||
|
FuncType string
|
||||||
|
|
||||||
|
// 镜像描述
|
||||||
|
ImageDescription string
|
||||||
|
|
||||||
|
// 镜像ID
|
||||||
|
ImageId string
|
||||||
|
|
||||||
|
// 镜像名称
|
||||||
|
ImageName string
|
||||||
|
|
||||||
|
// 镜像大小
|
||||||
|
ImageSize int
|
||||||
|
|
||||||
|
// 镜像类型 标准镜像:Base, 行业镜像:Business,自定义镜像:Custom
|
||||||
|
ImageType string
|
||||||
|
|
||||||
|
// 集成软件名称(仅行业镜像将返回这个值)
|
||||||
|
IntegratedSoftware string
|
||||||
|
|
||||||
|
// 介绍链接(仅行业镜像将返回这个值)
|
||||||
|
Links string
|
||||||
|
|
||||||
|
// 默认值为空'''。当CentOS 7.3/7.4/7.5等镜像会标记为“Broadwell”
|
||||||
|
MinimalCPU string
|
||||||
|
|
||||||
|
// 操作系统名称
|
||||||
|
OsName string
|
||||||
|
|
||||||
|
// 操作系统类型:Liunx,Windows
|
||||||
|
OsType string
|
||||||
|
|
||||||
|
// 镜像状态, 可用:Available,制作中:Making, 不可用:Unavailable
|
||||||
|
State string
|
||||||
|
|
||||||
|
// 供应商(仅行业镜像将返回这个值)
|
||||||
|
Vendor string
|
||||||
|
|
||||||
|
// 可用区,参见 [可用区列表](../summary/regionlist.html)
|
||||||
|
Zone string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SpreadInfo - 每个可用区中硬件隔离组信息
|
||||||
|
*/
|
||||||
|
type SpreadInfo struct {
|
||||||
|
|
||||||
|
// 可用区中硬件隔离组中云主机的数量,不超过7。
|
||||||
|
UHostCount int
|
||||||
|
|
||||||
|
// 可用区信息
|
||||||
|
Zone string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
IsolationGroup - 硬件隔离组信息
|
||||||
|
*/
|
||||||
|
type IsolationGroup struct {
|
||||||
|
|
||||||
|
// 硬件隔离组id
|
||||||
|
GroupId string
|
||||||
|
|
||||||
|
// 硬件隔离组名称
|
||||||
|
GroupName string
|
||||||
|
|
||||||
|
// 备注
|
||||||
|
Remark string
|
||||||
|
|
||||||
|
// 每个可用区中的机器数量。参见数据结构SpreadInfo。
|
||||||
|
SpreadInfoSet []SpreadInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UHostDiskSet - DescribeUHostInstance
|
||||||
|
*/
|
||||||
|
type UHostDiskSet struct {
|
||||||
|
|
||||||
|
// 备份方案。若开通了数据方舟,则为DataArk
|
||||||
|
BackupType string
|
||||||
|
|
||||||
|
// 磁盘ID
|
||||||
|
DiskId string
|
||||||
|
|
||||||
|
// 磁盘类型。请参考[[api:uhost-api:disk_type|磁盘类型]]。
|
||||||
|
DiskType string
|
||||||
|
|
||||||
|
// 磁盘盘符
|
||||||
|
Drive string
|
||||||
|
|
||||||
|
// "true": 加密盘 "false":非加密盘
|
||||||
|
Encrypted string
|
||||||
|
|
||||||
|
// 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。
|
||||||
|
IsBoot string
|
||||||
|
|
||||||
|
// UDisk名字(仅当磁盘是UDisk时返回)
|
||||||
|
Name string
|
||||||
|
|
||||||
|
// 磁盘大小,单位: GB
|
||||||
|
Size int
|
||||||
|
|
||||||
|
// 【建议不再使用】磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk
|
||||||
|
Type string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UHostIPSet - DescribeUHostInstance
|
||||||
|
*/
|
||||||
|
type UHostIPSet struct {
|
||||||
|
|
||||||
|
// IP对应的带宽, 单位: Mb (内网IP不显示带宽信息)
|
||||||
|
Bandwidth int
|
||||||
|
|
||||||
|
// 【暂未支持】是否为默认网卡。true: 是默认网卡;其他值:不是。
|
||||||
|
Default string
|
||||||
|
|
||||||
|
// IP地址
|
||||||
|
IP string
|
||||||
|
|
||||||
|
// 外网IP资源ID 。(内网IP无对应的资源ID)
|
||||||
|
IPId string
|
||||||
|
|
||||||
|
// IPv4/IPv6;
|
||||||
|
IPMode string
|
||||||
|
|
||||||
|
// 当前网卡的Mac。
|
||||||
|
Mac string
|
||||||
|
|
||||||
|
// IP地址对应的子网 ID。(北京一不支持,字段返回为空)
|
||||||
|
SubnetId string
|
||||||
|
|
||||||
|
// 国际: Internation,BGP: Bgp,内网: Private
|
||||||
|
Type string
|
||||||
|
|
||||||
|
// IP地址对应的VPC ID。(北京一不支持,字段返回为空)
|
||||||
|
VPCId string
|
||||||
|
|
||||||
|
// 当前EIP的权重。权重最大的为当前的出口IP。
|
||||||
|
Weight int
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UHostInstanceSet - DescribeUHostInstance
|
||||||
|
*/
|
||||||
|
type UHostInstanceSet struct {
|
||||||
|
|
||||||
|
// 是否自动续费,自动续费:“Yes”,不自动续费:“No”
|
||||||
|
AutoRenew string
|
||||||
|
|
||||||
|
// 基础镜像ID(指当前自定义镜像的来源镜像)
|
||||||
|
BasicImageId string
|
||||||
|
|
||||||
|
// 基础镜像名称(指当前自定义镜像的来源镜像)
|
||||||
|
BasicImageName string
|
||||||
|
|
||||||
|
// 系统盘状态 Normal表示初始化完成;Initializing表示在初始化。仍在初始化的系统盘无法制作镜像。
|
||||||
|
BootDiskState string
|
||||||
|
|
||||||
|
// 虚拟CPU核数,单位: 个
|
||||||
|
CPU int
|
||||||
|
|
||||||
|
// 计费模式,枚举值为: Year,按年付费; Month,按月付费; Dynamic,按需付费(需开启权限);
|
||||||
|
ChargeType string
|
||||||
|
|
||||||
|
// true,支持cloutinit方式初始化;false,不支持
|
||||||
|
CloudInitFeature bool
|
||||||
|
|
||||||
|
// 云主机CPU平台。参考[[api:uhost-api:uhost_type#主机概念20版本|云主机机型说明]]。
|
||||||
|
CpuPlatform string
|
||||||
|
|
||||||
|
// 创建时间,格式为Unix时间戳
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
//
|
||||||
|
DeleteTime int `deprecated:"true"`
|
||||||
|
|
||||||
|
// 磁盘信息见 UHostDiskSet
|
||||||
|
DiskSet []UHostDiskSet
|
||||||
|
|
||||||
|
// 到期时间,格式为Unix时间戳
|
||||||
|
ExpireTime int
|
||||||
|
|
||||||
|
// GPU个数
|
||||||
|
GPU int
|
||||||
|
|
||||||
|
// 【建议不再使用】主机系列:N2,表示系列2;N1,表示系列1
|
||||||
|
HostType string
|
||||||
|
|
||||||
|
// true: 开启热升级; false,未开启热升级
|
||||||
|
HotplugFeature bool
|
||||||
|
|
||||||
|
// 详细信息见 UHostIPSet
|
||||||
|
IPSet []UHostIPSet
|
||||||
|
|
||||||
|
//
|
||||||
|
IPs []string `deprecated:"true"`
|
||||||
|
|
||||||
|
// true:有ipv6特性;false,没有ipv6特性
|
||||||
|
IPv6Feature bool
|
||||||
|
|
||||||
|
// 【建议不再使用】主机的系统盘ID。
|
||||||
|
ImageId string
|
||||||
|
|
||||||
|
// 隔离组id,不在隔离组则返回""
|
||||||
|
IsolationGroup string
|
||||||
|
|
||||||
|
// 主机的生命周期类型。目前仅支持Normal:普通;
|
||||||
|
LifeCycle string
|
||||||
|
|
||||||
|
// 云主机机型(新)。参考[[api:uhost-api:uhost_type#主机概念20版本|云主机机型说明]]。
|
||||||
|
MachineType string
|
||||||
|
|
||||||
|
// 内存大小,单位: MB
|
||||||
|
Memory int
|
||||||
|
|
||||||
|
// UHost实例名称
|
||||||
|
Name string
|
||||||
|
|
||||||
|
// 网络增强。Normal: 无;Super: 网络增强1.0; Ultra: 网络增强2.0
|
||||||
|
NetCapability string
|
||||||
|
|
||||||
|
// 【建议不再使用】网络状态。 连接:Connected, 断开:NotConnected
|
||||||
|
NetworkState string
|
||||||
|
|
||||||
|
// 创建主机的最初来源镜像的操作系统名称(若直接通过基础镜像创建,此处返回和BasicImageName一致)
|
||||||
|
OsName string
|
||||||
|
|
||||||
|
// 操作系统类别。返回"Linux"或者"Windows"
|
||||||
|
OsType string
|
||||||
|
|
||||||
|
// 备注
|
||||||
|
Remark string
|
||||||
|
|
||||||
|
// 实例状态,枚举值:\\ >初始化: Initializing; \\ >启动中: Starting; \\> 运行中: Running; \\> 关机中: Stopping; \\ >关机: Stopped \\ >安装失败: Install Fail; \\ >重启中: Rebooting
|
||||||
|
State string
|
||||||
|
|
||||||
|
// 【建议不再使用】主机磁盘类型。 枚举值为:\\ > LocalDisk,本地磁盘; \\ > UDisk 云盘。\\只要有一块磁盘为本地盘,即返回LocalDisk。
|
||||||
|
StorageType string
|
||||||
|
|
||||||
|
// 【建议不再使用】仅北京A的云主机会返回此字段。基础网络模式:Default;子网模式:Private
|
||||||
|
SubnetType string
|
||||||
|
|
||||||
|
// 业务组名称
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
// 【建议不再使用】数据方舟模式。枚举值:\\ > Yes: 开启方舟; \\ > no,未开启方舟
|
||||||
|
TimemachineFeature string
|
||||||
|
|
||||||
|
// 总的数据盘存储空间。
|
||||||
|
TotalDiskSpace int
|
||||||
|
|
||||||
|
// UHost实例ID
|
||||||
|
UHostId string
|
||||||
|
|
||||||
|
// 【建议不再使用】云主机机型(旧)。参考[[api:uhost-api:uhost_type|云主机机型说明]]。
|
||||||
|
UHostType string
|
||||||
|
|
||||||
|
// 可用区。参见 [可用区列表](../summary/regionlist.html)
|
||||||
|
Zone string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UHostTagSet - DescribeUHostTags
|
||||||
|
*/
|
||||||
|
type UHostTagSet struct {
|
||||||
|
|
||||||
|
// 业务组名称
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
// 该业务组中包含的主机个数
|
||||||
|
TotalCount int
|
||||||
|
|
||||||
|
// 可用区
|
||||||
|
Zone string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UHostPriceSet - 主机价格
|
||||||
|
*/
|
||||||
|
type UHostPriceSet struct {
|
||||||
|
|
||||||
|
// 计费类型。Year,Month,Dynamic
|
||||||
|
ChargeType string
|
||||||
|
|
||||||
|
// 产品列表价。
|
||||||
|
ListPrice float64
|
||||||
|
|
||||||
|
// 限时优惠的折前原价(即列表价乘以商务折扣后的单价)。
|
||||||
|
OriginalPrice float64
|
||||||
|
|
||||||
|
// 价格,单位: 元,保留小数点后两位有效数字
|
||||||
|
Price float64
|
||||||
|
}
|
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/modify_uhost_instance_name.go
generated
vendored
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/modify_uhost_instance_name.go
generated
vendored
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ModifyUHostInstanceName
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ModifyUHostInstanceNameRequest is request schema for ModifyUHostInstanceName action
|
|
||||||
type ModifyUHostInstanceNameRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// UHost实例名称
|
|
||||||
Name *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ModifyUHostInstanceNameResponse is response schema for ModifyUHostInstanceName action
|
|
||||||
type ModifyUHostInstanceNameResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewModifyUHostInstanceNameRequest will create request of ModifyUHostInstanceName action.
|
|
||||||
func (c *UHostClient) NewModifyUHostInstanceNameRequest() *ModifyUHostInstanceNameRequest {
|
|
||||||
req := &ModifyUHostInstanceNameRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ModifyUHostInstanceName - 修改指定UHost实例名称,需要给出数据中心,UHostId,及新的实例名称。
|
|
||||||
func (c *UHostClient) ModifyUHostInstanceName(req *ModifyUHostInstanceNameRequest) (*ModifyUHostInstanceNameResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ModifyUHostInstanceNameResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ModifyUHostInstanceName", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/modify_uhost_instance_remark.go
generated
vendored
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/modify_uhost_instance_remark.go
generated
vendored
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ModifyUHostInstanceRemark
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ModifyUHostInstanceRemarkRequest is request schema for ModifyUHostInstanceRemark action
|
|
||||||
type ModifyUHostInstanceRemarkRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 备注
|
|
||||||
Remark *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ModifyUHostInstanceRemarkResponse is response schema for ModifyUHostInstanceRemark action
|
|
||||||
type ModifyUHostInstanceRemarkResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewModifyUHostInstanceRemarkRequest will create request of ModifyUHostInstanceRemark action.
|
|
||||||
func (c *UHostClient) NewModifyUHostInstanceRemarkRequest() *ModifyUHostInstanceRemarkRequest {
|
|
||||||
req := &ModifyUHostInstanceRemarkRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ModifyUHostInstanceRemark - 修改指定UHost实例备注信息。
|
|
||||||
func (c *UHostClient) ModifyUHostInstanceRemark(req *ModifyUHostInstanceRemarkRequest) (*ModifyUHostInstanceRemarkResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ModifyUHostInstanceRemarkResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ModifyUHostInstanceRemark", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/modify_uhost_instance_tag.go
generated
vendored
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/modify_uhost_instance_tag.go
generated
vendored
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ModifyUHostInstanceTag
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ModifyUHostInstanceTagRequest is request schema for ModifyUHostInstanceTag action
|
|
||||||
type ModifyUHostInstanceTagRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 业务组名称
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ModifyUHostInstanceTagResponse is response schema for ModifyUHostInstanceTag action
|
|
||||||
type ModifyUHostInstanceTagResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewModifyUHostInstanceTagRequest will create request of ModifyUHostInstanceTag action.
|
|
||||||
func (c *UHostClient) NewModifyUHostInstanceTagRequest() *ModifyUHostInstanceTagRequest {
|
|
||||||
req := &ModifyUHostInstanceTagRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ModifyUHostInstanceTag - 修改指定UHost实例业务组标识。
|
|
||||||
func (c *UHostClient) ModifyUHostInstanceTag(req *ModifyUHostInstanceTagRequest) (*ModifyUHostInstanceTagResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ModifyUHostInstanceTagResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ModifyUHostInstanceTag", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
59
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/poweroff_uhost_instance.go
generated
vendored
59
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/poweroff_uhost_instance.go
generated
vendored
|
@ -1,59 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost PoweroffUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// PoweroffUHostInstanceRequest is request schema for PoweroffUHostInstance action
|
|
||||||
type PoweroffUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](./describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// PoweroffUHostInstanceResponse is response schema for PoweroffUHostInstance action
|
|
||||||
type PoweroffUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewPoweroffUHostInstanceRequest will create request of PoweroffUHostInstance action.
|
|
||||||
func (c *UHostClient) NewPoweroffUHostInstanceRequest() *PoweroffUHostInstanceRequest {
|
|
||||||
req := &PoweroffUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// PoweroffUHostInstance - 直接关闭UHost实例电源,无需等待实例正常关闭。
|
|
||||||
func (c *UHostClient) PoweroffUHostInstance(req *PoweroffUHostInstanceRequest) (*PoweroffUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res PoweroffUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("PoweroffUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/reboot_uhost_instance.go
generated
vendored
62
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/reboot_uhost_instance.go
generated
vendored
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost RebootUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RebootUHostInstanceRequest is request schema for RebootUHostInstance action
|
|
||||||
type RebootUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 加密盘密码
|
|
||||||
DiskPassword *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RebootUHostInstanceResponse is response schema for RebootUHostInstance action
|
|
||||||
type RebootUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewRebootUHostInstanceRequest will create request of RebootUHostInstance action.
|
|
||||||
func (c *UHostClient) NewRebootUHostInstanceRequest() *RebootUHostInstanceRequest {
|
|
||||||
req := &RebootUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// RebootUHostInstance - 重新启动UHost实例,需要指定数据中心及UHostID两个参数的值。
|
|
||||||
func (c *UHostClient) RebootUHostInstance(req *RebootUHostInstanceRequest) (*RebootUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res RebootUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("RebootUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
76
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/reinstall_uhost_instance.go
generated
vendored
76
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/reinstall_uhost_instance.go
generated
vendored
|
@ -1,76 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ReinstallUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/base64"
|
|
||||||
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ReinstallUHostInstanceRequest is request schema for ReinstallUHostInstance action
|
|
||||||
type ReinstallUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例资源ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 如果创建UHost实例时LoginMode为Password,则必须填写,如果LoginMode为KeyPair,不需要填写 (密码格式使用BASE64编码;LoginMode不可变更)
|
|
||||||
Password *string `required:"false"`
|
|
||||||
|
|
||||||
// 镜像Id,默认使用原镜像 参见 [DescribeImage](describe_image.html)
|
|
||||||
ImageId *string `required:"false"`
|
|
||||||
|
|
||||||
// 系统盘大小。 单位:GB, 范围[20,100], 步长:10
|
|
||||||
BootDiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 是否保留数据盘,保留:Yes,不报留:No, 默认:Yes;如果是从Windows重装为Linux或反之,则无法保留数据盘
|
|
||||||
ReserveDisk *string `required:"false"`
|
|
||||||
|
|
||||||
// 云灾备指明191
|
|
||||||
ResourceType *int `required:"false"`
|
|
||||||
|
|
||||||
// 针对非私有子网主机,可自定义DNS。n可为0-2
|
|
||||||
DNSServers []string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReinstallUHostInstanceResponse is response schema for ReinstallUHostInstance action
|
|
||||||
type ReinstallUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例资源ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewReinstallUHostInstanceRequest will create request of ReinstallUHostInstance action.
|
|
||||||
func (c *UHostClient) NewReinstallUHostInstanceRequest() *ReinstallUHostInstanceRequest {
|
|
||||||
req := &ReinstallUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReinstallUHostInstance - 重新安装指定UHost实例的操作系统
|
|
||||||
func (c *UHostClient) ReinstallUHostInstance(req *ReinstallUHostInstanceRequest) (*ReinstallUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ReinstallUHostInstanceResponse
|
|
||||||
var reqImmutable = *req
|
|
||||||
reqImmutable.Password = ucloud.String(base64.StdEncoding.EncodeToString([]byte(ucloud.StringValue(req.Password))))
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ReinstallUHostInstance", &reqImmutable, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
67
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/reset_uhost_instance_password.go
generated
vendored
67
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/reset_uhost_instance_password.go
generated
vendored
|
@ -1,67 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ResetUHostInstancePassword
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/base64"
|
|
||||||
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ResetUHostInstancePasswordRequest is request schema for ResetUHostInstancePassword action
|
|
||||||
type ResetUHostInstancePasswordRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// UHost新密码(密码格式使用BASE64编码)
|
|
||||||
Password *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResetUHostInstancePasswordResponse is response schema for ResetUHostInstancePassword action
|
|
||||||
type ResetUHostInstancePasswordResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewResetUHostInstancePasswordRequest will create request of ResetUHostInstancePassword action.
|
|
||||||
func (c *UHostClient) NewResetUHostInstancePasswordRequest() *ResetUHostInstancePasswordRequest {
|
|
||||||
req := &ResetUHostInstancePasswordRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResetUHostInstancePassword - 重置UHost实例的管理员密码。
|
|
||||||
func (c *UHostClient) ResetUHostInstancePassword(req *ResetUHostInstancePasswordRequest) (*ResetUHostInstancePasswordResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ResetUHostInstancePasswordResponse
|
|
||||||
var reqImmutable = *req
|
|
||||||
reqImmutable.Password = ucloud.String(base64.StdEncoding.EncodeToString([]byte(ucloud.StringValue(req.Password))))
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ResetUHostInstancePassword", &reqImmutable, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ResizeAttachedDisk
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ResizeAttachedDiskRequest is request schema for ResizeAttachedDisk action
|
|
||||||
type ResizeAttachedDiskRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID。 参见 [DescribeUHostInstance](describe_uhost_instance.html)。
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 磁盘大小,单位GB,步长为10。取值范围需大于当前磁盘大小,最大值请参考[[api:uhost-api:disk_type|磁盘类型]]。
|
|
||||||
DiskSpace *int `required:"true"`
|
|
||||||
|
|
||||||
// 磁盘ID。参见 [DescribeUHostInstance](describe_uhost_instance.html)返回值中的DiskSet。
|
|
||||||
DiskId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResizeAttachedDiskResponse is response schema for ResizeAttachedDisk action
|
|
||||||
type ResizeAttachedDiskResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 改配成功的磁盘id
|
|
||||||
DiskId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewResizeAttachedDiskRequest will create request of ResizeAttachedDisk action.
|
|
||||||
func (c *UHostClient) NewResizeAttachedDiskRequest() *ResizeAttachedDiskRequest {
|
|
||||||
req := &ResizeAttachedDiskRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResizeAttachedDisk - 修改挂载的磁盘大小,包含系统盘和数据盘
|
|
||||||
func (c *UHostClient) ResizeAttachedDisk(req *ResizeAttachedDiskRequest) (*ResizeAttachedDiskResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ResizeAttachedDiskResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ResizeAttachedDisk", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
74
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/resize_uhost_instance.go
generated
vendored
74
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/resize_uhost_instance.go
generated
vendored
|
@ -1,74 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost ResizeUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ResizeUHostInstanceRequest is request schema for ResizeUHostInstance action
|
|
||||||
type ResizeUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 虚拟CPU核数。可选参数:1-32(可选范围与UHostType相关)。默认值为当前实例的CPU核数
|
|
||||||
CPU *int `required:"false"`
|
|
||||||
|
|
||||||
// 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围与UHostType相关)。默认值为当前实例的内存大小。
|
|
||||||
Memory *int `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】数据盘大小,单位:GB,范围[10,1000]; SSD机型,单位:GB,范围[100,500];步长:10,默认值为当前实例的数据盘大小,数据盘不支持缩容,因此不允许输入比当前实例数据盘大小的值
|
|
||||||
DiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 【待废弃】系统盘大小,单位:GB,范围[20,100],步长:10,系统盘不支持缩容,因此不允许输入比当前实例系统盘小的值
|
|
||||||
BootDiskSpace *int `required:"false"`
|
|
||||||
|
|
||||||
// 网卡升降级(1,表示升级,2表示降级,0表示不变)
|
|
||||||
NetCapValue *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResizeUHostInstanceResponse is response schema for ResizeUHostInstance action
|
|
||||||
type ResizeUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewResizeUHostInstanceRequest will create request of ResizeUHostInstance action.
|
|
||||||
func (c *UHostClient) NewResizeUHostInstanceRequest() *ResizeUHostInstanceRequest {
|
|
||||||
req := &ResizeUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,网络增强等。可选配置范围请参考[[api:uhost-api:uhost_type|云主机机型说明]]。
|
|
||||||
func (c *UHostClient) ResizeUHostInstance(req *ResizeUHostInstanceRequest) (*ResizeUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ResizeUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ResizeUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost StartUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// StartUHostInstanceRequest is request schema for StartUHostInstance action
|
|
||||||
type StartUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 加密盘密码
|
|
||||||
DiskPassword *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// StartUHostInstanceResponse is response schema for StartUHostInstance action
|
|
||||||
type StartUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewStartUHostInstanceRequest will create request of StartUHostInstance action.
|
|
||||||
func (c *UHostClient) NewStartUHostInstanceRequest() *StartUHostInstanceRequest {
|
|
||||||
req := &StartUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// StartUHostInstance - 启动处于关闭状态的UHost实例,需要指定数据中心及UHostID两个参数的值。
|
|
||||||
func (c *UHostClient) StartUHostInstance(req *StartUHostInstanceRequest) (*StartUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res StartUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("StartUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost StopUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// StopUHostInstanceRequest is request schema for StopUHostInstance action
|
|
||||||
type StopUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost实例ID 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// StopUHostInstanceResponse is response schema for StopUHostInstance action
|
|
||||||
type StopUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UhostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewStopUHostInstanceRequest will create request of StopUHostInstance action.
|
|
||||||
func (c *UHostClient) NewStopUHostInstanceRequest() *StopUHostInstanceRequest {
|
|
||||||
req := &StopUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// StopUHostInstance - 指停止处于运行状态的UHost实例,需指定数据中心及UhostID。
|
|
||||||
func (c *UHostClient) StopUHostInstance(req *StopUHostInstanceRequest) (*StopUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res StopUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("StopUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
56
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/terminate_custom_image.go
generated
vendored
56
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/terminate_custom_image.go
generated
vendored
|
@ -1,56 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost TerminateCustomImage
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TerminateCustomImageRequest is request schema for TerminateCustomImage action
|
|
||||||
type TerminateCustomImageRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 自制镜像ID 参见 [DescribeImage](describe_image.html)
|
|
||||||
ImageId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TerminateCustomImageResponse is response schema for TerminateCustomImage action
|
|
||||||
type TerminateCustomImageResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 自制镜像Id
|
|
||||||
ImageId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTerminateCustomImageRequest will create request of TerminateCustomImage action.
|
|
||||||
func (c *UHostClient) NewTerminateCustomImageRequest() *TerminateCustomImageRequest {
|
|
||||||
req := &TerminateCustomImageRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// TerminateCustomImage - 删除用户自定义镜像
|
|
||||||
func (c *UHostClient) TerminateCustomImage(req *TerminateCustomImageRequest) (*TerminateCustomImageResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res TerminateCustomImageResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("TerminateCustomImage", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
71
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/terminate_uhost_instance.go
generated
vendored
71
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/terminate_uhost_instance.go
generated
vendored
|
@ -1,71 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost TerminateUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TerminateUHostInstanceRequest is request schema for TerminateUHostInstance action
|
|
||||||
type TerminateUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// UHost资源Id 参见 [DescribeUHostInstance](describe_uhost_instance.html)
|
|
||||||
UHostId *string `required:"true"`
|
|
||||||
|
|
||||||
// 是否直接删除,0表示按照原来的逻辑(有回收站权限,则进入回收站),1表示直接删除
|
|
||||||
Destroy *int `required:"false"`
|
|
||||||
|
|
||||||
// 是否释放绑定的EIP。true: 解绑EIP后,并释放;其他值或不填:解绑EIP。
|
|
||||||
ReleaseEIP *bool `required:"false"`
|
|
||||||
|
|
||||||
// 是否删除挂载的数据盘。true删除,其他不删除。
|
|
||||||
ReleaseUDisk *bool `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TerminateUHostInstanceResponse is response schema for TerminateUHostInstance action
|
|
||||||
type TerminateUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 放入回收站:"Yes", 彻底删除:“No”
|
|
||||||
InRecycle string
|
|
||||||
|
|
||||||
// UHost 实例 Id
|
|
||||||
UHostId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTerminateUHostInstanceRequest will create request of TerminateUHostInstance action.
|
|
||||||
func (c *UHostClient) NewTerminateUHostInstanceRequest() *TerminateUHostInstanceRequest {
|
|
||||||
req := &TerminateUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// TerminateUHostInstance - 删除指定数据中心的UHost实例。
|
|
||||||
func (c *UHostClient) TerminateUHostInstance(req *TerminateUHostInstanceRequest) (*TerminateUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res TerminateUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("TerminateUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
22
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_isolation_group.go
generated
vendored
22
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_isolation_group.go
generated
vendored
|
@ -1,22 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
IsolationGroup - 硬件隔离组信息
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type IsolationGroup struct {
|
|
||||||
|
|
||||||
// 硬件隔离组名称
|
|
||||||
GroupName string
|
|
||||||
|
|
||||||
// 硬件隔离组id
|
|
||||||
GroupId string
|
|
||||||
|
|
||||||
// 每个可用区中的机器数量。参见数据结构SpreadInfo。
|
|
||||||
SpreadInfoSet []SpreadInfo
|
|
||||||
|
|
||||||
// 备注
|
|
||||||
Remark string
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
SpreadInfo - 每个可用区中硬件隔离组信息
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type SpreadInfo struct {
|
|
||||||
|
|
||||||
// 可用区信息
|
|
||||||
Zone string
|
|
||||||
|
|
||||||
// 可用区中硬件隔离组中云主机的数量,不超过7。
|
|
||||||
UHostCount int
|
|
||||||
}
|
|
18
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_disk_query.go
generated
vendored
18
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_disk_query.go
generated
vendored
|
@ -1,18 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
UHostDisk - the request query for disk of uhost
|
|
||||||
*/
|
|
||||||
type UHostDisk struct {
|
|
||||||
// 磁盘大小,单位GB。请参考[[api:uhost-api:disk_type|磁盘类型]]。
|
|
||||||
Size *int `required:"true"`
|
|
||||||
|
|
||||||
// 磁盘类型。枚举值:LOCAL_NORMAL 普通本地盘 | CLOUD_NORMAL 普通云盘 |LOCAL_SSD SSD本地盘 | CLOUD_SSD SSD云盘,默认为LOCAL_NORMAL。请参考[[api:uhost-api:disk_type|磁盘类型]]。
|
|
||||||
Type *string `required:"true"`
|
|
||||||
|
|
||||||
// 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。
|
|
||||||
IsBoot *string `required:"true"`
|
|
||||||
|
|
||||||
// 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > DATAARK,数据方舟 \\ 当前磁盘支持的备份模式参考 [[api:uhost-api:disk_type|磁盘类型]]
|
|
||||||
BackupType *string `required:"false"`
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
UHostDiskSet - DescribeUHostInstance
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type UHostDiskSet struct {
|
|
||||||
|
|
||||||
// 磁盘类型。请参考[[api:uhost-api:disk_type|磁盘类型]]。
|
|
||||||
DiskType string
|
|
||||||
|
|
||||||
// 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。
|
|
||||||
IsBoot string
|
|
||||||
|
|
||||||
// 【建议不再使用】磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk
|
|
||||||
Type string
|
|
||||||
|
|
||||||
// 磁盘ID
|
|
||||||
DiskId string
|
|
||||||
|
|
||||||
// UDisk名字(仅当磁盘是UDisk时返回)
|
|
||||||
Name string
|
|
||||||
|
|
||||||
// 磁盘盘符
|
|
||||||
Drive string
|
|
||||||
|
|
||||||
// 磁盘大小,单位: GB
|
|
||||||
Size int
|
|
||||||
|
|
||||||
// 备份方案。若开通了数据方舟,则为DataArk
|
|
||||||
BackupType string
|
|
||||||
}
|
|
58
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_image_set.go
generated
vendored
58
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_image_set.go
generated
vendored
|
@ -1,58 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
UHostImageSet - DescribeImage
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type UHostImageSet struct {
|
|
||||||
|
|
||||||
// 可用区,参见 [可用区列表](../summary/regionlist.html) |
|
|
||||||
Zone string
|
|
||||||
|
|
||||||
// 镜像ID
|
|
||||||
ImageId string
|
|
||||||
|
|
||||||
// 镜像名称
|
|
||||||
ImageName string
|
|
||||||
|
|
||||||
// 操作系统类型:Liunx,Windows
|
|
||||||
OsType string
|
|
||||||
|
|
||||||
// 操作系统名称
|
|
||||||
OsName string
|
|
||||||
|
|
||||||
// 镜像类型 标准镜像:Base, 行业镜像:Business,自定义镜像:Custom
|
|
||||||
ImageType string
|
|
||||||
|
|
||||||
// 特殊状态标识, 目前包含NetEnhnced(网络增强1.0), NetEnhanced_Ultra](网络增强2.0)
|
|
||||||
Features []string
|
|
||||||
|
|
||||||
// 行业镜像类型(仅行业镜像将返回这个值)
|
|
||||||
FuncType string
|
|
||||||
|
|
||||||
// 集成软件名称(仅行业镜像将返回这个值)
|
|
||||||
IntegratedSoftware string
|
|
||||||
|
|
||||||
// 供应商(仅行业镜像将返回这个值)
|
|
||||||
Vendor string
|
|
||||||
|
|
||||||
// 介绍链接(仅行业镜像将返回这个值)
|
|
||||||
Links string
|
|
||||||
|
|
||||||
// 镜像状态, 可用:Available,制作中:Making, 不可用:Unavailable
|
|
||||||
State string
|
|
||||||
|
|
||||||
// 镜像描述
|
|
||||||
ImageDescription string
|
|
||||||
|
|
||||||
// 创建时间,格式为Unix时间戳
|
|
||||||
CreateTime int
|
|
||||||
|
|
||||||
// 镜像大小
|
|
||||||
ImageSize int
|
|
||||||
|
|
||||||
// 默认值为空'''。当CentOS 7.3/7.4/7.5等镜像会标记为“Broadwell”
|
|
||||||
MinimalCPU string
|
|
||||||
}
|
|
115
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_instance_set.go
generated
vendored
115
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_instance_set.go
generated
vendored
|
@ -1,115 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
UHostInstanceSet - DescribeUHostInstance
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type UHostInstanceSet struct {
|
|
||||||
|
|
||||||
// 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
Zone string
|
|
||||||
|
|
||||||
// UHost实例ID
|
|
||||||
UHostId string
|
|
||||||
|
|
||||||
// 【建议不再使用】云主机机型(旧)。参考[[api:uhost-api:uhost_type|云主机机型说明]]。
|
|
||||||
UHostType string
|
|
||||||
|
|
||||||
// 云主机机型(新)。参考[[api:uhost-api:uhost_type|云主机机型说明]]。
|
|
||||||
MachineType string
|
|
||||||
|
|
||||||
// 【建议不再使用】主机磁盘类型。 枚举值为:\\ > LocalDisk,本地磁盘; \\ > UDisk 云盘。\\只要有一块磁盘为本地盘,即返回LocalDisk。
|
|
||||||
StorageType string
|
|
||||||
|
|
||||||
// 【建议不再使用】主机的系统盘ID。
|
|
||||||
ImageId string
|
|
||||||
|
|
||||||
// 基础镜像ID(指当前自定义镜像的来源镜像)
|
|
||||||
BasicImageId string
|
|
||||||
|
|
||||||
// 基础镜像名称(指当前自定义镜像的来源镜像)
|
|
||||||
BasicImageName string
|
|
||||||
|
|
||||||
// 业务组名称
|
|
||||||
Tag string
|
|
||||||
|
|
||||||
// 备注
|
|
||||||
Remark string
|
|
||||||
|
|
||||||
// UHost实例名称
|
|
||||||
Name string
|
|
||||||
|
|
||||||
// 实例状态,枚举值:\\ >初始化: Initializing; \\ >启动中: Starting; \\> 运行中: Running; \\> 关机中: Stopping; \\ >关机: Stopped \\ >安装失败: Install Fail; \\ >重启中: Rebooting
|
|
||||||
State string
|
|
||||||
|
|
||||||
// 创建时间,格式为Unix时间戳
|
|
||||||
CreateTime int
|
|
||||||
|
|
||||||
// 计费模式,枚举值为: Year,按年付费; Month,按月付费; Dynamic,按需付费(需开启权限);
|
|
||||||
ChargeType string
|
|
||||||
|
|
||||||
// 到期时间,格式为Unix时间戳
|
|
||||||
ExpireTime int
|
|
||||||
|
|
||||||
// 虚拟CPU核数,单位: 个
|
|
||||||
CPU int
|
|
||||||
|
|
||||||
// 内存大小,单位: MB
|
|
||||||
Memory int
|
|
||||||
|
|
||||||
// 是否自动续费,自动续费:“Yes”,不自动续费:“No”
|
|
||||||
AutoRenew string
|
|
||||||
|
|
||||||
// 磁盘信息见 UHostDiskSet
|
|
||||||
DiskSet []UHostDiskSet
|
|
||||||
|
|
||||||
// 详细信息见 UHostIPSet
|
|
||||||
IPSet []UHostIPSet
|
|
||||||
|
|
||||||
// 网络增强。Normal: 无;Super: 网络增强1.0; Ultra: 网络增强2.0
|
|
||||||
NetCapability string
|
|
||||||
|
|
||||||
// 【建议不再使用】网络状态。 连接:Connected, 断开:NotConnected
|
|
||||||
NetworkState string
|
|
||||||
|
|
||||||
// 【建议不再使用】数据方舟模式。枚举值:\\ > Yes: 开启方舟; \\ > no,未开启方舟
|
|
||||||
TimemachineFeature string
|
|
||||||
|
|
||||||
// true: 开启热升级; false,未开启热升级
|
|
||||||
HotplugFeature bool
|
|
||||||
|
|
||||||
// 【建议不再使用】仅北京A的云主机会返回此字段。基础网络模式:Default;子网模式:Private
|
|
||||||
SubnetType string
|
|
||||||
|
|
||||||
// 内网的IP地址
|
|
||||||
IPs []string
|
|
||||||
|
|
||||||
// 创建主机的最初来源镜像的操作系统名称(若直接通过基础镜像创建,此处返回和BasicImageName一致)
|
|
||||||
OsName string
|
|
||||||
|
|
||||||
// 操作系统类别。返回"Linux"或者"Windows"
|
|
||||||
OsType string
|
|
||||||
|
|
||||||
// 删除时间,格式为Unix时间戳
|
|
||||||
DeleteTime int
|
|
||||||
|
|
||||||
// 主机系列:N2,表示系列2;N1,表示系列1
|
|
||||||
HostType string
|
|
||||||
|
|
||||||
// 主机的生命周期类型。目前仅支持Normal:普通;
|
|
||||||
LifeCycle string
|
|
||||||
|
|
||||||
// GPU个数
|
|
||||||
GPU int
|
|
||||||
|
|
||||||
// 系统盘状态 Normal表示初始化完成;Initializing表示在初始化。仍在初始化的系统盘无法制作镜像。
|
|
||||||
BootDiskState string
|
|
||||||
|
|
||||||
// 总的数据盘存储空间。
|
|
||||||
TotalDiskSpace int
|
|
||||||
|
|
||||||
// 隔离组id,不在隔离组则返回""
|
|
||||||
IsolationGroup string
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
UHostIPSet - DescribeUHostInstance
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type UHostIPSet struct {
|
|
||||||
|
|
||||||
// 【暂未支持】是否为默认网卡。True: 是默认网卡;其他值:不是。
|
|
||||||
Default string
|
|
||||||
|
|
||||||
// 当前网卡的Mac。
|
|
||||||
Mac string
|
|
||||||
|
|
||||||
// 当前EIP的权重。权重最大的为当前的出口IP。
|
|
||||||
Weight int
|
|
||||||
|
|
||||||
// 国际: Internation,BGP: Bgp,内网: Private
|
|
||||||
Type string
|
|
||||||
|
|
||||||
// 外网IP资源ID 。(内网IP无对应的资源ID)
|
|
||||||
IPId string
|
|
||||||
|
|
||||||
// IP地址
|
|
||||||
IP string
|
|
||||||
|
|
||||||
// IP对应的带宽, 单位: Mb (内网IP不显示带宽信息)
|
|
||||||
Bandwidth int
|
|
||||||
|
|
||||||
// IP地址对应的VPC ID。(北京一不支持,字段返回为空)
|
|
||||||
VPCId string
|
|
||||||
|
|
||||||
// IP地址对应的子网 ID。(北京一不支持,字段返回为空)
|
|
||||||
SubnetId string
|
|
||||||
}
|
|
16
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_price_set.go
generated
vendored
16
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/types_uhost_price_set.go
generated
vendored
|
@ -1,16 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
UHostPriceSet - 主机价格
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type UHostPriceSet struct {
|
|
||||||
|
|
||||||
// 计费类型。Year,Month,Dynamic
|
|
||||||
ChargeType string
|
|
||||||
|
|
||||||
// 价格,单位: 元,保留小数点后两位有效数字
|
|
||||||
Price float64
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
package uhost
|
|
||||||
|
|
||||||
/*
|
|
||||||
UHostTagSet - DescribeUHostTags
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn for detail.
|
|
||||||
*/
|
|
||||||
type UHostTagSet struct {
|
|
||||||
|
|
||||||
// 业务组名称
|
|
||||||
Tag string
|
|
||||||
|
|
||||||
// 该业务组中包含的主机个数
|
|
||||||
TotalCount int
|
|
||||||
|
|
||||||
// 可用区
|
|
||||||
Zone string
|
|
||||||
}
|
|
59
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/upgrade_to_ark_uhost_instance.go
generated
vendored
59
vendor/github.com/ucloud/ucloud-sdk-go/services/uhost/upgrade_to_ark_uhost_instance.go
generated
vendored
|
@ -1,59 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api UHost UpgradeToArkUHostInstance
|
|
||||||
|
|
||||||
package uhost
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// UpgradeToArkUHostInstanceRequest is request schema for UpgradeToArkUHostInstance action
|
|
||||||
type UpgradeToArkUHostInstanceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 可用区。参见 [可用区列表](../summary/regionlist.html)
|
|
||||||
// Zone *string `required:"true"`
|
|
||||||
|
|
||||||
// UHost主机的资源ID,例如UHostIds.0代表希望升级的主机1,UHostIds.1代表主机2。
|
|
||||||
UHostIds []string `required:"true"`
|
|
||||||
|
|
||||||
// 代金券ID 请参考DescribeCoupon接口
|
|
||||||
CouponId *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpgradeToArkUHostInstanceResponse is response schema for UpgradeToArkUHostInstance action
|
|
||||||
type UpgradeToArkUHostInstanceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// UHost主机的资源ID数组
|
|
||||||
UHostSet []string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewUpgradeToArkUHostInstanceRequest will create request of UpgradeToArkUHostInstance action.
|
|
||||||
func (c *UHostClient) NewUpgradeToArkUHostInstanceRequest() *UpgradeToArkUHostInstanceRequest {
|
|
||||||
req := &UpgradeToArkUHostInstanceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpgradeToArkUHostInstance - 普通升级为方舟机型
|
|
||||||
func (c *UHostClient) UpgradeToArkUHostInstance(req *UpgradeToArkUHostInstanceRequest) (*UpgradeToArkUHostInstanceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res UpgradeToArkUHostInstanceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("UpgradeToArkUHostInstance", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,56 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC AddVPCNetwork
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// AddVPCNetworkRequest is request schema for AddVPCNetwork action
|
|
||||||
type AddVPCNetworkRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 源VPC短ID
|
|
||||||
VPCId *string `required:"true"`
|
|
||||||
|
|
||||||
// 增加网段
|
|
||||||
Network []string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddVPCNetworkResponse is response schema for AddVPCNetwork action
|
|
||||||
type AddVPCNetworkResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewAddVPCNetworkRequest will create request of AddVPCNetwork action.
|
|
||||||
func (c *VPCClient) NewAddVPCNetworkRequest() *AddVPCNetworkRequest {
|
|
||||||
req := &AddVPCNetworkRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddVPCNetwork - 添加VPC网段
|
|
||||||
func (c *VPCClient) AddVPCNetwork(req *AddVPCNetworkRequest) (*AddVPCNetworkResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res AddVPCNetworkResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("AddVPCNetwork", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
57
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/add_white_list_resource.go
generated
vendored
57
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/add_white_list_resource.go
generated
vendored
|
@ -1,57 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// AddWhiteListResourceRequest is request schema for AddWhiteListResource action
|
|
||||||
type AddWhiteListResourceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
|
|
||||||
// 可添加白名单的资源Id
|
|
||||||
ResourceIds []string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddWhiteListResourceResponse is response schema for AddWhiteListResource action
|
|
||||||
type AddWhiteListResourceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewAddWhiteListResourceRequest will create request of AddWhiteListResource action.
|
|
||||||
func (c *VPCClient) NewAddWhiteListResourceRequest() *AddWhiteListResourceRequest {
|
|
||||||
req := &AddWhiteListResourceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddWhiteListResource - 添加NAT网关白名单
|
|
||||||
func (c *VPCClient) AddWhiteListResource(req *AddWhiteListResourceRequest) (*AddWhiteListResourceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res AddWhiteListResourceResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("AddWhiteListResource", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -14,7 +14,7 @@ type VPCClient struct {
|
||||||
|
|
||||||
// NewClient will return a instance of VPCClient
|
// NewClient will return a instance of VPCClient
|
||||||
func NewClient(config *ucloud.Config, credential *auth.Credential) *VPCClient {
|
func NewClient(config *ucloud.Config, credential *auth.Credential) *VPCClient {
|
||||||
meta := ucloud.ClientMeta{Product: "VPC2.0"}
|
meta := ucloud.ClientMeta{Product: "VPC"}
|
||||||
client := ucloud.NewClientWithMeta(config, credential, meta)
|
client := ucloud.NewClientWithMeta(config, credential, meta)
|
||||||
return &VPCClient{
|
return &VPCClient{
|
||||||
client,
|
client,
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateNATGWRequest is request schema for CreateNATGW action
|
|
||||||
type CreateNATGWRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关绑定的EIPId
|
|
||||||
EIPIds []string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关绑定的防火墙Id
|
|
||||||
FirewallId *string `required:"true"`
|
|
||||||
|
|
||||||
// 白名单开关标记。0表示关闭,1表示开启。默认为0
|
|
||||||
IfOpen *int `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关名称
|
|
||||||
NATGWName *string `required:"true"`
|
|
||||||
|
|
||||||
// 备注。默认为空
|
|
||||||
Remark *string `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关绑定的子网Id
|
|
||||||
SubnetworkIds []string `required:"true"`
|
|
||||||
|
|
||||||
// 业务组。默认为空
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关所属的VPC Id。默认为Default VPC Id
|
|
||||||
VPCId *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateNATGWResponse is response schema for CreateNATGW action
|
|
||||||
type CreateNATGWResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 申请到的NATGateWay Id
|
|
||||||
NATGWId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateNATGWRequest will create request of CreateNATGW action.
|
|
||||||
func (c *VPCClient) NewCreateNATGWRequest() *CreateNATGWRequest {
|
|
||||||
req := &CreateNATGWRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateNATGW - 创建NAT网关
|
|
||||||
func (c *VPCClient) CreateNATGW(req *CreateNATGWRequest) (*CreateNATGWResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateNATGWResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateNATGW", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,75 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateNATGWPolicyRequest is request schema for CreateNATGWPolicy action
|
|
||||||
type CreateNATGWPolicyRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// 目标IP。填写对应的目标IP地址
|
|
||||||
DstIP *string `required:"true"`
|
|
||||||
|
|
||||||
// 目标端口。可填写固定端口,也可填写端口范围。支持的端口范围为1-65535
|
|
||||||
DstPort *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
|
|
||||||
// 转发策略名称。默认为空
|
|
||||||
PolicyName *string `required:"false"`
|
|
||||||
|
|
||||||
// 协议类型。枚举值为:TCP、UDP
|
|
||||||
Protocol *string `required:"true"`
|
|
||||||
|
|
||||||
// 源IP。填写对应的EIP Id
|
|
||||||
SrcEIPId *string `required:"true"`
|
|
||||||
|
|
||||||
// 源端口。可填写固定端口,也可填写端口范围。支持的端口范围为1-65535
|
|
||||||
SrcPort *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateNATGWPolicyResponse is response schema for CreateNATGWPolicy action
|
|
||||||
type CreateNATGWPolicyResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 创建时分配的策略Id
|
|
||||||
PolicyId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateNATGWPolicyRequest will create request of CreateNATGWPolicy action.
|
|
||||||
func (c *VPCClient) NewCreateNATGWPolicyRequest() *CreateNATGWPolicyRequest {
|
|
||||||
req := &CreateNATGWPolicyRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateNATGWPolicy - 添加NAT网关端口转发规则
|
|
||||||
func (c *VPCClient) CreateNATGWPolicy(req *CreateNATGWPolicyRequest) (*CreateNATGWPolicyResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateNATGWPolicyResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateNATGWPolicy", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,71 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC CreateSubnet
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateSubnetRequest is request schema for CreateSubnet action
|
|
||||||
type CreateSubnetRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// VPC资源ID
|
|
||||||
VPCId *string `required:"true"`
|
|
||||||
|
|
||||||
// 子网网络地址,例如192.168.0.0
|
|
||||||
Subnet *string `required:"true"`
|
|
||||||
|
|
||||||
// 子网网络号位数,默认为24
|
|
||||||
Netmask *int `required:"false"`
|
|
||||||
|
|
||||||
// 子网名称,默认为Subnet
|
|
||||||
SubnetName *string `required:"false"`
|
|
||||||
|
|
||||||
// 业务组名称,默认为Default
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
|
|
||||||
// 备注
|
|
||||||
Remark *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateSubnetResponse is response schema for CreateSubnet action
|
|
||||||
type CreateSubnetResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 子网ID
|
|
||||||
SubnetId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateSubnetRequest will create request of CreateSubnet action.
|
|
||||||
func (c *VPCClient) NewCreateSubnetRequest() *CreateSubnetRequest {
|
|
||||||
req := &CreateSubnetRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateSubnet - 创建子网
|
|
||||||
func (c *VPCClient) CreateSubnet(req *CreateSubnetRequest) (*CreateSubnetResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateSubnetResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateSubnet", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC CreateVPC
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateVPCRequest is request schema for CreateVPC action
|
|
||||||
type CreateVPCRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"true"`
|
|
||||||
|
|
||||||
// VPC名称
|
|
||||||
Name *string `required:"true"`
|
|
||||||
|
|
||||||
// VPC网段
|
|
||||||
Network []string `required:"true"`
|
|
||||||
|
|
||||||
// 业务组名称
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
|
|
||||||
// 备注
|
|
||||||
Remark *string `required:"false"`
|
|
||||||
|
|
||||||
// VPC类型
|
|
||||||
Type *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateVPCResponse is response schema for CreateVPC action
|
|
||||||
type CreateVPCResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// VPC资源Id
|
|
||||||
VPCId string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateVPCRequest will create request of CreateVPC action.
|
|
||||||
func (c *VPCClient) NewCreateVPCRequest() *CreateVPCRequest {
|
|
||||||
req := &CreateVPCRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateVPC - 创建VPC
|
|
||||||
func (c *VPCClient) CreateVPC(req *CreateVPCRequest) (*CreateVPCResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateVPCResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateVPC", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC CreateVPCIntercom
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateVPCIntercomRequest is request schema for CreateVPCIntercom action
|
|
||||||
type CreateVPCIntercomRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 源VPC所在地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 源VPC所在项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 源VPC短ID
|
|
||||||
VPCId *string `required:"true"`
|
|
||||||
|
|
||||||
// 目的VPC短ID
|
|
||||||
DstVPCId *string `required:"true"`
|
|
||||||
|
|
||||||
// 目的VPC所在地域,默认与源VPC同地域。
|
|
||||||
DstRegion *string `required:"false"`
|
|
||||||
|
|
||||||
// 目的VPC项目ID。默认与源VPC同项目。
|
|
||||||
DstProjectId *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateVPCIntercomResponse is response schema for CreateVPCIntercom action
|
|
||||||
type CreateVPCIntercomResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCreateVPCIntercomRequest will create request of CreateVPCIntercom action.
|
|
||||||
func (c *VPCClient) NewCreateVPCIntercomRequest() *CreateVPCIntercomRequest {
|
|
||||||
req := &CreateVPCIntercomRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(false)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateVPCIntercom - 新建VPC互通关系
|
|
||||||
func (c *VPCClient) CreateVPCIntercom(req *CreateVPCIntercomRequest) (*CreateVPCIntercomResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res CreateVPCIntercomResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("CreateVPCIntercom", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeleteNATGWRequest is request schema for DeleteNATGW action
|
|
||||||
type DeleteNATGWRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
|
|
||||||
// 是否释放绑定的EIP。true:解绑并释放;false:只解绑不释放。默认为false
|
|
||||||
ReleaseEip *bool `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteNATGWResponse is response schema for DeleteNATGW action
|
|
||||||
type DeleteNATGWResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDeleteNATGWRequest will create request of DeleteNATGW action.
|
|
||||||
func (c *VPCClient) NewDeleteNATGWRequest() *DeleteNATGWRequest {
|
|
||||||
req := &DeleteNATGWRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteNATGW - 删除NAT网关
|
|
||||||
func (c *VPCClient) DeleteNATGW(req *DeleteNATGWRequest) (*DeleteNATGWResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DeleteNATGWResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DeleteNATGW", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeleteNATGWPolicyRequest is request schema for DeleteNATGWPolicy action
|
|
||||||
type DeleteNATGWPolicyRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
|
|
||||||
// 端口转发规则Id
|
|
||||||
PolicyId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteNATGWPolicyResponse is response schema for DeleteNATGWPolicy action
|
|
||||||
type DeleteNATGWPolicyResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDeleteNATGWPolicyRequest will create request of DeleteNATGWPolicy action.
|
|
||||||
func (c *VPCClient) NewDeleteNATGWPolicyRequest() *DeleteNATGWPolicyRequest {
|
|
||||||
req := &DeleteNATGWPolicyRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteNATGWPolicy - 删除NAT网关端口转发规则
|
|
||||||
func (c *VPCClient) DeleteNATGWPolicy(req *DeleteNATGWPolicyRequest) (*DeleteNATGWPolicyResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DeleteNATGWPolicyResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DeleteNATGWPolicy", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC DeleteSubnet
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeleteSubnetRequest is request schema for DeleteSubnet action
|
|
||||||
type DeleteSubnetRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 子网ID
|
|
||||||
SubnetId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteSubnetResponse is response schema for DeleteSubnet action
|
|
||||||
type DeleteSubnetResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDeleteSubnetRequest will create request of DeleteSubnet action.
|
|
||||||
func (c *VPCClient) NewDeleteSubnetRequest() *DeleteSubnetRequest {
|
|
||||||
req := &DeleteSubnetRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteSubnet - 删除子网
|
|
||||||
func (c *VPCClient) DeleteSubnet(req *DeleteSubnetRequest) (*DeleteSubnetResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DeleteSubnetResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DeleteSubnet", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC DeleteVPC
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeleteVPCRequest is request schema for DeleteVPC action
|
|
||||||
type DeleteVPCRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// VPC资源Id
|
|
||||||
VPCId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteVPCResponse is response schema for DeleteVPC action
|
|
||||||
type DeleteVPCResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDeleteVPCRequest will create request of DeleteVPC action.
|
|
||||||
func (c *VPCClient) NewDeleteVPCRequest() *DeleteVPCRequest {
|
|
||||||
req := &DeleteVPCRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteVPC - 删除VPC
|
|
||||||
func (c *VPCClient) DeleteVPC(req *DeleteVPCRequest) (*DeleteVPCResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DeleteVPCResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DeleteVPC", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC DeleteVPCIntercom
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeleteVPCIntercomRequest is request schema for DeleteVPCIntercom action
|
|
||||||
type DeleteVPCIntercomRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 源VPC所在地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 源VPC所在项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 源VPC短ID
|
|
||||||
VPCId *string `required:"true"`
|
|
||||||
|
|
||||||
// 目的VPC短ID
|
|
||||||
DstVPCId *string `required:"true"`
|
|
||||||
|
|
||||||
// 目的VPC所在地域,默认为源VPC所在地域
|
|
||||||
DstRegion *string `required:"false"`
|
|
||||||
|
|
||||||
// 目的VPC所在项目ID,默认为源VPC所在项目ID
|
|
||||||
DstProjectId *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteVPCIntercomResponse is response schema for DeleteVPCIntercom action
|
|
||||||
type DeleteVPCIntercomResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDeleteVPCIntercomRequest will create request of DeleteVPCIntercom action.
|
|
||||||
func (c *VPCClient) NewDeleteVPCIntercomRequest() *DeleteVPCIntercomRequest {
|
|
||||||
req := &DeleteVPCIntercomRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteVPCIntercom - 删除VPC互通关系
|
|
||||||
func (c *VPCClient) DeleteVPCIntercom(req *DeleteVPCIntercomRequest) (*DeleteVPCIntercomResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DeleteVPCIntercomResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DeleteVPCIntercom", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
57
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/delete_white_list_resource.go
generated
vendored
57
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/delete_white_list_resource.go
generated
vendored
|
@ -1,57 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeleteWhiteListResourceRequest is request schema for DeleteWhiteListResource action
|
|
||||||
type DeleteWhiteListResourceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
|
|
||||||
// 删除白名单的资源Id
|
|
||||||
ResourceIds []string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteWhiteListResourceResponse is response schema for DeleteWhiteListResource action
|
|
||||||
type DeleteWhiteListResourceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDeleteWhiteListResourceRequest will create request of DeleteWhiteListResource action.
|
|
||||||
func (c *VPCClient) NewDeleteWhiteListResourceRequest() *DeleteWhiteListResourceRequest {
|
|
||||||
req := &DeleteWhiteListResourceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteWhiteListResource - 删除NAT网关白名单列表
|
|
||||||
func (c *VPCClient) DeleteWhiteListResource(req *DeleteWhiteListResourceRequest) (*DeleteWhiteListResourceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DeleteWhiteListResourceResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DeleteWhiteListResource", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeNATGWRequest is request schema for DescribeNATGW action
|
|
||||||
type DescribeNATGWRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// 数据分页值。默认为20
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关Id。默认为该项目下所有NAT网关
|
|
||||||
NATGWIds []string `required:"false"`
|
|
||||||
|
|
||||||
// 数据偏移量。默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeNATGWResponse is response schema for DescribeNATGW action
|
|
||||||
type DescribeNATGWResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 查到的NATGW信息列表
|
|
||||||
DataSet []NatGatewayDataSet
|
|
||||||
|
|
||||||
// 满足条件的实例的总数
|
|
||||||
TotalCount int
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeNATGWRequest will create request of DescribeNATGW action.
|
|
||||||
func (c *VPCClient) NewDescribeNATGWRequest() *DescribeNATGWRequest {
|
|
||||||
req := &DescribeNATGWRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeNATGW - 获取NAT网关信息
|
|
||||||
func (c *VPCClient) DescribeNATGW(req *DescribeNATGWRequest) (*DescribeNATGWResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeNATGWResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeNATGW", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeNATGWPolicyRequest is request schema for DescribeNATGWPolicy action
|
|
||||||
type DescribeNATGWPolicyRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// 返回数据长度,默认为10000
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
|
|
||||||
// 列表起始位置偏移量,默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeNATGWPolicyResponse is response schema for DescribeNATGWPolicy action
|
|
||||||
type DescribeNATGWPolicyResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 查到的NATGW 转发策略的详细信息
|
|
||||||
DataSet []NATGWPolicyDataSet
|
|
||||||
|
|
||||||
// 满足条件的转发策略总数
|
|
||||||
TotalCount int
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeNATGWPolicyRequest will create request of DescribeNATGWPolicy action.
|
|
||||||
func (c *VPCClient) NewDescribeNATGWPolicyRequest() *DescribeNATGWPolicyRequest {
|
|
||||||
req := &DescribeNATGWPolicyRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeNATGWPolicy - 展示NAT网关端口转发规则
|
|
||||||
func (c *VPCClient) DescribeNATGWPolicy(req *DescribeNATGWPolicyRequest) (*DescribeNATGWPolicyResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeNATGWPolicyResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeNATGWPolicy", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC DescribeSubnet
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeSubnetRequest is request schema for DescribeSubnet action
|
|
||||||
type DescribeSubnetRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 子网id数组,适用于一次查询多个子网信息
|
|
||||||
SubnetIds []string `required:"false"`
|
|
||||||
|
|
||||||
// 子网id,适用于一次查询一个子网信息
|
|
||||||
SubnetId *string `required:"false"`
|
|
||||||
|
|
||||||
// VPC资源id
|
|
||||||
VPCId *string `required:"false"`
|
|
||||||
|
|
||||||
// 业务组名称,默认为Default
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
|
|
||||||
// 业务组
|
|
||||||
BusinessId *string `required:"false"`
|
|
||||||
|
|
||||||
// 偏移量,默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
|
|
||||||
// 列表长度,默认为20
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeSubnetResponse is response schema for DescribeSubnet action
|
|
||||||
type DescribeSubnetResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 子网总数量
|
|
||||||
TotalCount int
|
|
||||||
|
|
||||||
// 子网信息数组
|
|
||||||
DataSet []VPCSubnetInfoSet
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeSubnetRequest will create request of DescribeSubnet action.
|
|
||||||
func (c *VPCClient) NewDescribeSubnetRequest() *DescribeSubnetRequest {
|
|
||||||
req := &DescribeSubnetRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeSubnet - 获取子网信息
|
|
||||||
func (c *VPCClient) DescribeSubnet(req *DescribeSubnetRequest) (*DescribeSubnetResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeSubnetResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeSubnet", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
68
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/describe_subnet_resource.go
generated
vendored
68
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/describe_subnet_resource.go
generated
vendored
|
@ -1,68 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC DescribeSubnetResource
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeSubnetResourceRequest is request schema for DescribeSubnetResource action
|
|
||||||
type DescribeSubnetResourceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// 子网id
|
|
||||||
SubnetId *string `required:"true"`
|
|
||||||
|
|
||||||
// 资源类型,默认为全部资源类型。枚举值为:UHOST,云主机;PHOST,物理云主机;ULB,负载均衡;UHADOOP_HOST,hadoop节点;UFORTRESS_HOST,堡垒机;UNATGW,NAT网关;UKAFKA,Kafka消息队列;UMEM,内存存储;DOCKER,容器集群;UDB,数据库;UDW,数据仓库;VIP,内网VIP.
|
|
||||||
ResourceType *string `required:"false"`
|
|
||||||
|
|
||||||
// 列表起始位置偏移量,默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
|
|
||||||
// 单页返回数据长度,默认为20
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeSubnetResourceResponse is response schema for DescribeSubnetResource action
|
|
||||||
type DescribeSubnetResourceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 总数
|
|
||||||
TotalCount int
|
|
||||||
|
|
||||||
// 返回数据集
|
|
||||||
DataSet []ResourceInfo
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeSubnetResourceRequest will create request of DescribeSubnetResource action.
|
|
||||||
func (c *VPCClient) NewDescribeSubnetResourceRequest() *DescribeSubnetResourceRequest {
|
|
||||||
req := &DescribeSubnetResourceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeSubnetResource - 展示子网资源
|
|
||||||
func (c *VPCClient) DescribeSubnetResource(req *DescribeSubnetResourceRequest) (*DescribeSubnetResourceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeSubnetResourceResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeSubnetResource", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC DescribeVPC
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeVPCRequest is request schema for DescribeVPC action
|
|
||||||
type DescribeVPCRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"true"`
|
|
||||||
|
|
||||||
// VPCId
|
|
||||||
VPCIds []string `required:"false"`
|
|
||||||
|
|
||||||
// 业务组名称
|
|
||||||
Tag *string `required:"false"`
|
|
||||||
|
|
||||||
// 偏移量
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
|
|
||||||
// 列表长度
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeVPCResponse is response schema for DescribeVPC action
|
|
||||||
type DescribeVPCResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// vpc信息,具体结构见下方VPCInfo
|
|
||||||
DataSet []VPCInfo
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeVPCRequest will create request of DescribeVPC action.
|
|
||||||
func (c *VPCClient) NewDescribeVPCRequest() *DescribeVPCRequest {
|
|
||||||
req := &DescribeVPCRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeVPC - 获取VPC信息
|
|
||||||
func (c *VPCClient) DescribeVPC(req *DescribeVPCRequest) (*DescribeVPCResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeVPCResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeVPC", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
//Code is generated by ucloud code generator, don't modify it by hand, it will cause undefined behaviors.
|
|
||||||
//go:generate ucloud-gen-go-api VPC DescribeVPCIntercom
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeVPCIntercomRequest is request schema for DescribeVPCIntercom action
|
|
||||||
type DescribeVPCIntercomRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 源VPC所在地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 源VPC所在项目ID。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// VPC短ID
|
|
||||||
VPCId *string `required:"true"`
|
|
||||||
|
|
||||||
// 目的VPC所在地域,默认为全部地域
|
|
||||||
DstRegion *string `required:"false"`
|
|
||||||
|
|
||||||
// 目的项目ID,默认为全部项目
|
|
||||||
DstProjectId *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeVPCIntercomResponse is response schema for DescribeVPCIntercom action
|
|
||||||
type DescribeVPCIntercomResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 联通VPC信息数组
|
|
||||||
DataSet []VPCIntercomInfo
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeVPCIntercomRequest will create request of DescribeVPCIntercom action.
|
|
||||||
func (c *VPCClient) NewDescribeVPCIntercomRequest() *DescribeVPCIntercomRequest {
|
|
||||||
req := &DescribeVPCIntercomRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeVPCIntercom - 获取VPC互通信息
|
|
||||||
func (c *VPCClient) DescribeVPCIntercom(req *DescribeVPCIntercomRequest) (*DescribeVPCIntercomResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeVPCIntercomResponse
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeVPCIntercom", req, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
60
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/describe_white_list_resource.go
generated
vendored
60
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/describe_white_list_resource.go
generated
vendored
|
@ -1,60 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DescribeWhiteListResourceRequest is request schema for DescribeWhiteListResource action
|
|
||||||
type DescribeWhiteListResourceRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目id
|
|
||||||
// ProjectId *string `required:"true"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关的Id
|
|
||||||
NATGWIds []string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeWhiteListResourceResponse is response schema for DescribeWhiteListResource action
|
|
||||||
type DescribeWhiteListResourceResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 白名单资源的详细信息,详见DescribeResourceWhiteListDataSet
|
|
||||||
DataSet []NatGWWhitelistDataSet
|
|
||||||
|
|
||||||
// 上述DataSet总数量
|
|
||||||
TotalCount int
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDescribeWhiteListResourceRequest will create request of DescribeWhiteListResource action.
|
|
||||||
func (c *VPCClient) NewDescribeWhiteListResourceRequest() *DescribeWhiteListResourceRequest {
|
|
||||||
req := &DescribeWhiteListResourceRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeWhiteListResource - 展示NAT网关白名单资源列表
|
|
||||||
func (c *VPCClient) DescribeWhiteListResource(req *DescribeWhiteListResourceRequest) (*DescribeWhiteListResourceResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res DescribeWhiteListResourceResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("DescribeWhiteListResource", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,4 +1,13 @@
|
||||||
|
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Package vpc include resources of ucloud vpc 2.0 product
|
Package vpc include resources of ucloud vpc product
|
||||||
|
|
||||||
|
See also
|
||||||
|
|
||||||
|
- API: https://docs.ucloud.cn/api/vpc-api/index
|
||||||
|
- Product: https://www.ucloud.cn/site/product/vpc.html
|
||||||
|
|
||||||
|
for detail.
|
||||||
*/
|
*/
|
||||||
package vpc
|
package vpc
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// EnableWhiteListRequest is request schema for EnableWhiteList action
|
|
||||||
type EnableWhiteListRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// 白名单开关标记。0:关闭;1:开启。默认为0
|
|
||||||
IfOpen *int `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// EnableWhiteListResponse is response schema for EnableWhiteList action
|
|
||||||
type EnableWhiteListResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewEnableWhiteListRequest will create request of EnableWhiteList action.
|
|
||||||
func (c *VPCClient) NewEnableWhiteListRequest() *EnableWhiteListRequest {
|
|
||||||
req := &EnableWhiteListRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// EnableWhiteList - 修改NAT网关白名单开关
|
|
||||||
func (c *VPCClient) EnableWhiteList(req *EnableWhiteListRequest) (*EnableWhiteListResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res EnableWhiteListResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("EnableWhiteList", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
63
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/get_available_resource_for_policy.go
generated
vendored
63
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/get_available_resource_for_policy.go
generated
vendored
|
@ -1,63 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetAvailableResourceForPolicyRequest is request schema for GetAvailableResourceForPolicy action
|
|
||||||
type GetAvailableResourceForPolicyRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// 返回数据长度,默认为10000
|
|
||||||
Limit *int `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
|
|
||||||
// 列表起始位置偏移量,默认为0
|
|
||||||
Offset *int `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetAvailableResourceForPolicyResponse is response schema for GetAvailableResourceForPolicy action
|
|
||||||
type GetAvailableResourceForPolicyResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 支持资源类型的信息
|
|
||||||
DataSet []GetAvailableResourceForPolicyDataSet
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewGetAvailableResourceForPolicyRequest will create request of GetAvailableResourceForPolicy action.
|
|
||||||
func (c *VPCClient) NewGetAvailableResourceForPolicyRequest() *GetAvailableResourceForPolicyRequest {
|
|
||||||
req := &GetAvailableResourceForPolicyRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetAvailableResourceForPolicy - 获取NAT网关可配置端口转发规则的资源信息
|
|
||||||
func (c *VPCClient) GetAvailableResourceForPolicy(req *GetAvailableResourceForPolicyRequest) (*GetAvailableResourceForPolicyResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res GetAvailableResourceForPolicyResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("GetAvailableResourceForPolicy", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetAvailableResourceForWhiteListRequest is request schema for GetAvailableResourceForWhiteList action
|
|
||||||
type GetAvailableResourceForWhiteListRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetAvailableResourceForWhiteListResponse is response schema for GetAvailableResourceForWhiteList action
|
|
||||||
type GetAvailableResourceForWhiteListResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 返回白名单列表的详细信息
|
|
||||||
DataSet []GetAvailableResourceForWhiteListDataSet
|
|
||||||
|
|
||||||
// 白名单资源列表的总的个数
|
|
||||||
TotalCount int
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewGetAvailableResourceForWhiteListRequest will create request of GetAvailableResourceForWhiteList action.
|
|
||||||
func (c *VPCClient) NewGetAvailableResourceForWhiteListRequest() *GetAvailableResourceForWhiteListRequest {
|
|
||||||
req := &GetAvailableResourceForWhiteListRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetAvailableResourceForWhiteList - 获取NAT网关可添加白名单的资源
|
|
||||||
func (c *VPCClient) GetAvailableResourceForWhiteList(req *GetAvailableResourceForWhiteListRequest) (*GetAvailableResourceForWhiteListResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res GetAvailableResourceForWhiteListResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("GetAvailableResourceForWhiteList", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ListSubnetForNATGWRequest is request schema for ListSubnetForNATGW action
|
|
||||||
type ListSubnetForNATGWRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关所属VPC Id。默认值为Default VPC Id
|
|
||||||
VPCId *string `required:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ListSubnetForNATGWResponse is response schema for ListSubnetForNATGW action
|
|
||||||
type ListSubnetForNATGWResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
|
|
||||||
// 具体参数请见NatgwSubnetDataSet
|
|
||||||
DataSet []NatgwSubnetDataSet
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewListSubnetForNATGWRequest will create request of ListSubnetForNATGW action.
|
|
||||||
func (c *VPCClient) NewListSubnetForNATGWRequest() *ListSubnetForNATGWRequest {
|
|
||||||
req := &ListSubnetForNATGWRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// ListSubnetForNATGW - 展示NAT网关可绑定的子网列表
|
|
||||||
func (c *VPCClient) ListSubnetForNATGW(req *ListSubnetForNATGWRequest) (*ListSubnetForNATGWResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res ListSubnetForNATGWResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("ListSubnetForNATGW", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -0,0 +1,668 @@
|
||||||
|
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
||||||
|
|
||||||
|
package vpc
|
||||||
|
|
||||||
|
/*
|
||||||
|
IpInfo -
|
||||||
|
*/
|
||||||
|
type IpInfo struct {
|
||||||
|
|
||||||
|
//
|
||||||
|
Gateway string
|
||||||
|
|
||||||
|
//
|
||||||
|
Ip string
|
||||||
|
|
||||||
|
//
|
||||||
|
Mac string
|
||||||
|
|
||||||
|
//
|
||||||
|
Mask string
|
||||||
|
|
||||||
|
//
|
||||||
|
SubnetId string
|
||||||
|
|
||||||
|
//
|
||||||
|
VPCId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
VIPSet - VIPSet
|
||||||
|
*/
|
||||||
|
type VIPSet struct {
|
||||||
|
|
||||||
|
// 虚拟ip
|
||||||
|
VIP string
|
||||||
|
|
||||||
|
// 虚拟ip id
|
||||||
|
VIPId string
|
||||||
|
|
||||||
|
// VPC id
|
||||||
|
VPCId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
AssociationInfo - 绑定信息
|
||||||
|
*/
|
||||||
|
type AssociationInfo struct {
|
||||||
|
|
||||||
|
// ACL的ID
|
||||||
|
AclId string
|
||||||
|
|
||||||
|
// 绑定ID
|
||||||
|
AssociationId string
|
||||||
|
|
||||||
|
// 创建的Unix时间戳
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// 绑定的子网ID
|
||||||
|
SubnetworkId string
|
||||||
|
|
||||||
|
// 所属的VPC ID
|
||||||
|
VpcId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
NatGWIPResInfo - IP信息
|
||||||
|
*/
|
||||||
|
type NatGWIPResInfo struct {
|
||||||
|
|
||||||
|
// 外网IP
|
||||||
|
EIP string
|
||||||
|
|
||||||
|
// IP的运营商信息
|
||||||
|
OperatorName string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
NatGatewaySubnetSet - natgw里面的子网信息
|
||||||
|
*/
|
||||||
|
type NatGatewaySubnetSet struct {
|
||||||
|
|
||||||
|
// 子网网段
|
||||||
|
Subnet string
|
||||||
|
|
||||||
|
// 子网名字
|
||||||
|
SubnetName string
|
||||||
|
|
||||||
|
// 子网id
|
||||||
|
SubnetworkId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
NatGatewayIPSet - IPSet信息
|
||||||
|
*/
|
||||||
|
type NatGatewayIPSet struct {
|
||||||
|
|
||||||
|
// 带宽
|
||||||
|
Bandwidth int
|
||||||
|
|
||||||
|
// EIP带宽类型
|
||||||
|
BandwidthType string
|
||||||
|
|
||||||
|
// 外网IP的 EIPId
|
||||||
|
EIPId string
|
||||||
|
|
||||||
|
// 外网IP信息
|
||||||
|
IPResInfo []NatGWIPResInfo
|
||||||
|
|
||||||
|
// 权重为100的为出口
|
||||||
|
Weight int
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
NatGatewayDataSet - natgw的信息
|
||||||
|
*/
|
||||||
|
type NatGatewayDataSet struct {
|
||||||
|
|
||||||
|
// natgw创建时间
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// 绑定的防火墙Id
|
||||||
|
FirewallId string
|
||||||
|
|
||||||
|
// 绑定的EIP 信息
|
||||||
|
IPSet []NatGatewayIPSet
|
||||||
|
|
||||||
|
// natgw id
|
||||||
|
NATGWId string
|
||||||
|
|
||||||
|
// natgw名称
|
||||||
|
NATGWName string
|
||||||
|
|
||||||
|
// 转发策略Id
|
||||||
|
PolicyId []string
|
||||||
|
|
||||||
|
// 备注
|
||||||
|
Remark string
|
||||||
|
|
||||||
|
// 子网 Id
|
||||||
|
SubnetSet []NatGatewaySubnetSet
|
||||||
|
|
||||||
|
// 业务组
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
// 所属VPC Id
|
||||||
|
VPCId string
|
||||||
|
|
||||||
|
// 所属VPC 信息
|
||||||
|
VPCInfo string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
NATGWPolicyDataSet - DescribeNATGWPolicy
|
||||||
|
*/
|
||||||
|
type NATGWPolicyDataSet struct {
|
||||||
|
|
||||||
|
// 目的地址
|
||||||
|
DstIP string
|
||||||
|
|
||||||
|
// 目的端口
|
||||||
|
DstPort string
|
||||||
|
|
||||||
|
// NAT网关Id
|
||||||
|
NATGWId string
|
||||||
|
|
||||||
|
// 转发策略Id
|
||||||
|
PolicyId string
|
||||||
|
|
||||||
|
// 转发策略名称
|
||||||
|
PolicyName string
|
||||||
|
|
||||||
|
// 协议类型
|
||||||
|
Protocol string
|
||||||
|
|
||||||
|
// 端口转发前端EIP
|
||||||
|
SrcEIP string
|
||||||
|
|
||||||
|
// 端口转发前端EIP Id
|
||||||
|
SrcEIPId string
|
||||||
|
|
||||||
|
// 源端口
|
||||||
|
SrcPort string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
TargetResourceInfo - ACL规则应用目标资源信息。
|
||||||
|
*/
|
||||||
|
type TargetResourceInfo struct {
|
||||||
|
|
||||||
|
// 资源内网IP
|
||||||
|
PrivateIP string
|
||||||
|
|
||||||
|
// 资源ID
|
||||||
|
ResourceId string
|
||||||
|
|
||||||
|
// 资源名称
|
||||||
|
ResourceName string
|
||||||
|
|
||||||
|
// 资源类型
|
||||||
|
ResourceType int
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的ID
|
||||||
|
SubResourceId string
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的名称
|
||||||
|
SubResourceName string
|
||||||
|
|
||||||
|
// 资源绑定虚拟网卡的类型
|
||||||
|
SubResourceType int
|
||||||
|
|
||||||
|
// 子网ID
|
||||||
|
SubnetworkId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
AclEntryInfo - Entry的详细信息
|
||||||
|
*/
|
||||||
|
type AclEntryInfo struct {
|
||||||
|
|
||||||
|
// IP段的CIDR信息
|
||||||
|
CidrBlock string
|
||||||
|
|
||||||
|
// 创建的Unix时间戳
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// 出向或者入向
|
||||||
|
Direction string
|
||||||
|
|
||||||
|
// 匹配规则的动作
|
||||||
|
EntryAction string
|
||||||
|
|
||||||
|
// Entry的ID
|
||||||
|
EntryId string
|
||||||
|
|
||||||
|
// 针对的IP协议
|
||||||
|
IpProtocol string
|
||||||
|
|
||||||
|
// Port的段信息
|
||||||
|
PortRange string
|
||||||
|
|
||||||
|
// 优先级
|
||||||
|
Priority string
|
||||||
|
|
||||||
|
// 应用目标资源数量。TargetType为0时不返回该值。
|
||||||
|
TargetResourceCount int
|
||||||
|
|
||||||
|
// 应用目标资源信息。TargetType为0时不返回该值。具体结构见下方TargetResourceInfo
|
||||||
|
TargetResourceList []TargetResourceInfo
|
||||||
|
|
||||||
|
// 应用目标类型。 0代表“子网内全部资源” ,1代表“子网内指定资源” 。
|
||||||
|
TargetType int
|
||||||
|
|
||||||
|
// 更改的Unix时间戳
|
||||||
|
UpdateTime int
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
AclInfo - Acl的基础信息
|
||||||
|
*/
|
||||||
|
type AclInfo struct {
|
||||||
|
|
||||||
|
// ACL的ID
|
||||||
|
AclId string
|
||||||
|
|
||||||
|
// 名称
|
||||||
|
AclName string
|
||||||
|
|
||||||
|
// 所有的绑定关系,具体结构见下方AssociationInfo
|
||||||
|
Associations []AssociationInfo
|
||||||
|
|
||||||
|
// 创建的Unix时间戳
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// 描述
|
||||||
|
Description string
|
||||||
|
|
||||||
|
// 所有的规则
|
||||||
|
Entries []AclEntryInfo
|
||||||
|
|
||||||
|
// 更改的Unix时间戳
|
||||||
|
UpdateTime int
|
||||||
|
|
||||||
|
// ACL所属的VPC ID
|
||||||
|
VpcId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
RouteRuleInfo - 路由规则信息
|
||||||
|
*/
|
||||||
|
type RouteRuleInfo struct {
|
||||||
|
|
||||||
|
// 项目ID信息
|
||||||
|
AccountId int
|
||||||
|
|
||||||
|
// 目的地址
|
||||||
|
DstAddr string
|
||||||
|
|
||||||
|
// 保留字段,暂未使用
|
||||||
|
DstPort int
|
||||||
|
|
||||||
|
// 路由下一跳资源ID
|
||||||
|
NexthopId string
|
||||||
|
|
||||||
|
// 路由表下一跳类型。LOCAL,本VPC内部通信路由;PUBLIC,公共服务路由;CNAT,外网路由;UDPN,跨域高速通道路由;HYBRIDGW,混合云路由;INSTANCE,实例路由;VNET,VPC联通路由;IPSEC VPN,指向VPN网关的路由。
|
||||||
|
NexthopType string
|
||||||
|
|
||||||
|
// 保留字段,暂未使用
|
||||||
|
OriginAddr string
|
||||||
|
|
||||||
|
// 保留字段,暂未使用
|
||||||
|
Priority int
|
||||||
|
|
||||||
|
// 路由规则备注
|
||||||
|
Remark string
|
||||||
|
|
||||||
|
// 规则ID
|
||||||
|
RouteRuleId string
|
||||||
|
|
||||||
|
// 路由表资源ID
|
||||||
|
RouteTableId string
|
||||||
|
|
||||||
|
// 路由规则类型。0,系统路由规则;1,自定义路由规则
|
||||||
|
RuleType int
|
||||||
|
|
||||||
|
// 保留字段,暂未使用
|
||||||
|
SrcAddr string
|
||||||
|
|
||||||
|
// 保留字段,暂未使用
|
||||||
|
SrcPort int
|
||||||
|
|
||||||
|
// 所属的VPC
|
||||||
|
VNetId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
RouteTableInfo - 路由表信息
|
||||||
|
*/
|
||||||
|
type RouteTableInfo struct {
|
||||||
|
|
||||||
|
// 创建时间戳
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// 路由表备注
|
||||||
|
Remark string
|
||||||
|
|
||||||
|
// 路由规则
|
||||||
|
RouteRules []RouteRuleInfo
|
||||||
|
|
||||||
|
// 路由表资源ID
|
||||||
|
RouteTableId string
|
||||||
|
|
||||||
|
// 路由表类型。1为默认路由表,0为自定义路由表
|
||||||
|
RouteTableType int
|
||||||
|
|
||||||
|
// 绑定该路由表的子网数量
|
||||||
|
SubnetCount int
|
||||||
|
|
||||||
|
// 路由表所属业务组
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
// 路由表所属的VPC资源ID
|
||||||
|
VPCId string
|
||||||
|
|
||||||
|
// 路由表所属的VPC资源名称
|
||||||
|
VPCName string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
VPCSubnetInfoSet - 子网信息
|
||||||
|
*/
|
||||||
|
type VPCSubnetInfoSet struct {
|
||||||
|
// 名称 【已废弃】
|
||||||
|
Name string `deprecated:"true"`
|
||||||
|
|
||||||
|
// 虚拟路由 id【已废弃】
|
||||||
|
VRouterId string `deprecated:"true"`
|
||||||
|
|
||||||
|
// 可用IP数量
|
||||||
|
AvailableIPs int
|
||||||
|
|
||||||
|
// 创建时间
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// 子网网关
|
||||||
|
Gateway string
|
||||||
|
|
||||||
|
// 是否有natgw
|
||||||
|
HasNATGW bool
|
||||||
|
|
||||||
|
// 子网关联的IPv6网段
|
||||||
|
IPv6Network string
|
||||||
|
|
||||||
|
// 子网掩码
|
||||||
|
Netmask string
|
||||||
|
|
||||||
|
// 备注
|
||||||
|
Remark string
|
||||||
|
|
||||||
|
// 路由表Id
|
||||||
|
RouteTableId string
|
||||||
|
|
||||||
|
// 子网网段
|
||||||
|
Subnet string
|
||||||
|
|
||||||
|
// 子网Id
|
||||||
|
SubnetId string
|
||||||
|
|
||||||
|
// 子网名称
|
||||||
|
SubnetName string
|
||||||
|
|
||||||
|
// 子网类型
|
||||||
|
SubnetType int
|
||||||
|
|
||||||
|
// 业务组
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
// VPCId
|
||||||
|
VPCId string
|
||||||
|
|
||||||
|
// VPC名称
|
||||||
|
VPCName string
|
||||||
|
|
||||||
|
// 可用区名称
|
||||||
|
Zone string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
ResourceInfo - 子网下资源
|
||||||
|
*/
|
||||||
|
type ResourceInfo struct {
|
||||||
|
|
||||||
|
// 资源ip
|
||||||
|
IP string
|
||||||
|
|
||||||
|
// 名称
|
||||||
|
Name string
|
||||||
|
|
||||||
|
// 资源Id
|
||||||
|
ResourceId string
|
||||||
|
|
||||||
|
// 资源类型。对应的资源类型:UHOST,云主机;PHOST,物理云主机;ULB,负载均衡;UHADOOP_HOST,hadoop节点;UFORTRESS_HOST,堡垒机;UNATGW,NAT网关;UKAFKA,分布式消息系统;UMEM,内存存储;DOCKER,容器集群;UDB,数据库;UDW,数据仓库;VIP,内网VIP.
|
||||||
|
ResourceType string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
VIPDetailSet - VIPDetailSet
|
||||||
|
*/
|
||||||
|
type VIPDetailSet struct {
|
||||||
|
|
||||||
|
// 创建时间
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// VIP名称
|
||||||
|
Name string
|
||||||
|
|
||||||
|
// 真实主机ip
|
||||||
|
RealIp string
|
||||||
|
|
||||||
|
// VIP备注
|
||||||
|
Remark string
|
||||||
|
|
||||||
|
// 子网id
|
||||||
|
SubnetId string
|
||||||
|
|
||||||
|
// VIP所属业务组
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
// 虚拟ip
|
||||||
|
VIP string
|
||||||
|
|
||||||
|
// 虚拟ip id
|
||||||
|
VIPId string
|
||||||
|
|
||||||
|
// VPC id
|
||||||
|
VPCId string
|
||||||
|
|
||||||
|
// 地域
|
||||||
|
Zone string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
VPCNetworkInfo - vpc地址空间信息
|
||||||
|
*/
|
||||||
|
type VPCNetworkInfo struct {
|
||||||
|
|
||||||
|
// vpc地址空间
|
||||||
|
Network string
|
||||||
|
|
||||||
|
// 地址空间中子网数量
|
||||||
|
SubnetCount int
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
VPCInfo - VPC信息
|
||||||
|
*/
|
||||||
|
type VPCInfo struct {
|
||||||
|
|
||||||
|
//
|
||||||
|
CreateTime int
|
||||||
|
|
||||||
|
// VPC关联的IPv6网段
|
||||||
|
IPv6Network string
|
||||||
|
|
||||||
|
//
|
||||||
|
Name string
|
||||||
|
|
||||||
|
//
|
||||||
|
Network []string
|
||||||
|
|
||||||
|
//
|
||||||
|
NetworkInfo []VPCNetworkInfo
|
||||||
|
|
||||||
|
// VPC关联的IPv6网段所属运营商
|
||||||
|
OperatorName string
|
||||||
|
|
||||||
|
//
|
||||||
|
SubnetCount int
|
||||||
|
|
||||||
|
//
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
//
|
||||||
|
UpdateTime int
|
||||||
|
|
||||||
|
// VPCId
|
||||||
|
VPCId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
VPCIntercomInfo -
|
||||||
|
*/
|
||||||
|
type VPCIntercomInfo struct {
|
||||||
|
|
||||||
|
// 所属地域
|
||||||
|
DstRegion string
|
||||||
|
|
||||||
|
// VPC名字
|
||||||
|
Name string
|
||||||
|
|
||||||
|
// VPC的地址空间
|
||||||
|
Network []string
|
||||||
|
|
||||||
|
// 项目Id
|
||||||
|
ProjectId string
|
||||||
|
|
||||||
|
// 业务组(未分组显示为 Default)
|
||||||
|
Tag string
|
||||||
|
|
||||||
|
// VPCId
|
||||||
|
VPCId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
DescribeWhiteListResourceObjectIPInfo - DescribeWhiteListResource
|
||||||
|
*/
|
||||||
|
type DescribeWhiteListResourceObjectIPInfo struct {
|
||||||
|
|
||||||
|
// natgw字符串
|
||||||
|
GwType string
|
||||||
|
|
||||||
|
// 白名单资源的内网IP
|
||||||
|
PrivateIP string
|
||||||
|
|
||||||
|
// 白名单资源Id信息
|
||||||
|
ResourceId string
|
||||||
|
|
||||||
|
// 白名单资源名称
|
||||||
|
ResourceName string
|
||||||
|
|
||||||
|
// 白名单资源类型
|
||||||
|
ResourceType string
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的实例ID
|
||||||
|
SubResourceId string
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的实例名称
|
||||||
|
SubResourceName string
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的类型
|
||||||
|
SubResourceType string
|
||||||
|
|
||||||
|
// 白名单资源所属VPCId
|
||||||
|
VPCId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
NatGWWhitelistDataSet - nat网关白名单数据
|
||||||
|
*/
|
||||||
|
type NatGWWhitelistDataSet struct {
|
||||||
|
|
||||||
|
// 白名单开关标记
|
||||||
|
IfOpen int
|
||||||
|
|
||||||
|
// NATGateWay Id
|
||||||
|
NATGWId string
|
||||||
|
|
||||||
|
// 白名单详情
|
||||||
|
ObjectIPInfo []DescribeWhiteListResourceObjectIPInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetAvailableResourceForPolicyDataSet - GetAvailableResourceForPolicy
|
||||||
|
*/
|
||||||
|
type GetAvailableResourceForPolicyDataSet struct {
|
||||||
|
|
||||||
|
// 资源对应的内网Ip
|
||||||
|
PrivateIP string
|
||||||
|
|
||||||
|
// 资源的Id
|
||||||
|
ResourceId string
|
||||||
|
|
||||||
|
// 资源类型。"uhost":云主机; "upm",物理云主机; "hadoophost":hadoop节点; "fortresshost":堡垒机: "udockhost",容器
|
||||||
|
ResourceType string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetAvailableResourceForWhiteListDataSet - GetAvailableResourceForWhiteList
|
||||||
|
*/
|
||||||
|
type GetAvailableResourceForWhiteListDataSet struct {
|
||||||
|
|
||||||
|
// 资源的内网Ip
|
||||||
|
PrivateIP string
|
||||||
|
|
||||||
|
// 资源类型Id
|
||||||
|
ResourceId string
|
||||||
|
|
||||||
|
// 资源名称
|
||||||
|
ResourceName string
|
||||||
|
|
||||||
|
// 资源类型。"uhost":云主机; "upm",物理云主机; "hadoophost":hadoop节点; "fortresshost":堡垒机: "udockhost",容器
|
||||||
|
ResourceType string
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的实例ID
|
||||||
|
SubResouceId string
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的实例类型
|
||||||
|
SubResouceType string
|
||||||
|
|
||||||
|
// 资源绑定的虚拟网卡的实例名称
|
||||||
|
SubResourceName string
|
||||||
|
|
||||||
|
// 资源所属子网Id
|
||||||
|
SubnetworkId string
|
||||||
|
|
||||||
|
// 资源所属VPCId
|
||||||
|
VPCId string
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
NatgwSubnetDataSet - natgw可以绑定的子网
|
||||||
|
*/
|
||||||
|
type NatgwSubnetDataSet struct {
|
||||||
|
|
||||||
|
// 是否绑定NATGW
|
||||||
|
HasNATGW bool
|
||||||
|
|
||||||
|
// 掩码
|
||||||
|
Netmask string
|
||||||
|
|
||||||
|
// 子网网段
|
||||||
|
Subnet string
|
||||||
|
|
||||||
|
// 子网id
|
||||||
|
SubnetId string
|
||||||
|
|
||||||
|
// 子网名字
|
||||||
|
SubnetName string
|
||||||
|
}
|
|
@ -1,60 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/request"
|
|
||||||
"github.com/ucloud/ucloud-sdk-go/ucloud/response"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SetGwDefaultExportRequest is request schema for SetGwDefaultExport action
|
|
||||||
type SetGwDefaultExportRequest struct {
|
|
||||||
request.CommonBase
|
|
||||||
|
|
||||||
// [公共参数] 项目Id。不填写为默认项目,子帐号必须填写。 请参考[GetProjectList接口](../summary/get_project_list.html)
|
|
||||||
// ProjectId *string `required:"false"`
|
|
||||||
|
|
||||||
// [公共参数] 地域。 参见 [地域和可用区列表](../summary/regionlist.html)
|
|
||||||
// Region *string `required:"true"`
|
|
||||||
|
|
||||||
// NAT网关绑定的EIP Id。ExportIp和ExportEipId必填一个
|
|
||||||
ExportEipId *string `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关绑定的EIP。ExportIp和ExportEipId必填一个
|
|
||||||
ExportIp *string `required:"false"`
|
|
||||||
|
|
||||||
// NAT网关Id
|
|
||||||
NATGWId *string `required:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetGwDefaultExportResponse is response schema for SetGwDefaultExport action
|
|
||||||
type SetGwDefaultExportResponse struct {
|
|
||||||
response.CommonBase
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewSetGwDefaultExportRequest will create request of SetGwDefaultExport action.
|
|
||||||
func (c *VPCClient) NewSetGwDefaultExportRequest() *SetGwDefaultExportRequest {
|
|
||||||
req := &SetGwDefaultExportRequest{}
|
|
||||||
|
|
||||||
// setup request with client config
|
|
||||||
c.Client.SetupRequest(req)
|
|
||||||
|
|
||||||
// setup retryable with default retry policy (retry for non-create action and common error)
|
|
||||||
req.SetRetryable(true)
|
|
||||||
return req
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetGwDefaultExport - 设置NAT网关的默认出口
|
|
||||||
func (c *VPCClient) SetGwDefaultExport(req *SetGwDefaultExportRequest) (*SetGwDefaultExportResponse, error) {
|
|
||||||
var err error
|
|
||||||
var res SetGwDefaultExportResponse
|
|
||||||
|
|
||||||
reqCopier := *req
|
|
||||||
|
|
||||||
err = c.Client.InvokeAction("SetGwDefaultExport", &reqCopier, &res)
|
|
||||||
if err != nil {
|
|
||||||
return &res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return &res, nil
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
/*
|
|
||||||
DescribeWhiteListResourceObjectIPInfo - DescribeWhiteListResource
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn/api for detail.
|
|
||||||
*/
|
|
||||||
type DescribeWhiteListResourceObjectIPInfo struct {
|
|
||||||
|
|
||||||
// natgw字符串
|
|
||||||
GwType string
|
|
||||||
|
|
||||||
// 白名单资源的内网IP
|
|
||||||
PrivateIP string
|
|
||||||
|
|
||||||
// 白名单资源Id信息
|
|
||||||
ResourceId string
|
|
||||||
|
|
||||||
// 白名单资源名称
|
|
||||||
ResourceName string
|
|
||||||
|
|
||||||
// 白名单资源类型
|
|
||||||
ResourceType string
|
|
||||||
|
|
||||||
// 资源绑定的虚拟网卡的实例ID
|
|
||||||
SubResourceId string
|
|
||||||
|
|
||||||
// 资源绑定的虚拟网卡的实例名称
|
|
||||||
SubResourceName string
|
|
||||||
|
|
||||||
// 资源绑定的虚拟网卡的类型
|
|
||||||
SubResourceType string
|
|
||||||
|
|
||||||
// 白名单资源所属VPCId
|
|
||||||
VPCId string
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
/*
|
|
||||||
GetAvailableResourceForPolicyDataSet - GetAvailableResourceForPolicy
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn/api for detail.
|
|
||||||
*/
|
|
||||||
type GetAvailableResourceForPolicyDataSet struct {
|
|
||||||
|
|
||||||
// 资源对应的内网Ip
|
|
||||||
PrivateIP string
|
|
||||||
|
|
||||||
// 资源的Id
|
|
||||||
ResourceId string
|
|
||||||
|
|
||||||
// 资源类型。"uhost":云主机; "upm",物理云主机; "hadoophost":hadoop节点; "fortresshost":堡垒机: "udockhost",容器
|
|
||||||
ResourceType string
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
/*
|
|
||||||
GetAvailableResourceForWhiteListDataSet - GetAvailableResourceForWhiteList
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn/api for detail.
|
|
||||||
*/
|
|
||||||
type GetAvailableResourceForWhiteListDataSet struct {
|
|
||||||
|
|
||||||
// 资源的内网Ip
|
|
||||||
PrivateIP string
|
|
||||||
|
|
||||||
// 资源类型Id
|
|
||||||
ResourceId string
|
|
||||||
|
|
||||||
// 资源名称
|
|
||||||
ResourceName string
|
|
||||||
|
|
||||||
// 资源类型。"uhost":云主机; "upm",物理云主机; "hadoophost":hadoop节点; "fortresshost":堡垒机: "udockhost",容器
|
|
||||||
ResourceType string
|
|
||||||
|
|
||||||
// 资源绑定的虚拟网卡的实例ID
|
|
||||||
SubResouceId string
|
|
||||||
|
|
||||||
// 资源绑定的虚拟网卡的实例类型
|
|
||||||
SubResouceType string
|
|
||||||
|
|
||||||
// 资源绑定的虚拟网卡的实例名称
|
|
||||||
SubResourceName string
|
|
||||||
|
|
||||||
// 资源所属子网Id
|
|
||||||
SubnetworkId string
|
|
||||||
|
|
||||||
// 资源所属VPCId
|
|
||||||
VPCId string
|
|
||||||
}
|
|
45
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gateway_data_set.go
generated
vendored
45
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gateway_data_set.go
generated
vendored
|
@ -1,45 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
/*
|
|
||||||
NatGatewayDataSet - natgw的信息
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn/api for detail.
|
|
||||||
*/
|
|
||||||
type NatGatewayDataSet struct {
|
|
||||||
|
|
||||||
// natgw创建时间
|
|
||||||
CreateTime int
|
|
||||||
|
|
||||||
// 绑定的防火墙Id
|
|
||||||
FirewallId string
|
|
||||||
|
|
||||||
// 绑定的EIP 信息
|
|
||||||
IPSet []NatGatewayIPSet
|
|
||||||
|
|
||||||
// natgw id
|
|
||||||
NATGWId string
|
|
||||||
|
|
||||||
// natgw名称
|
|
||||||
NATGWName string
|
|
||||||
|
|
||||||
// 转发策略Id
|
|
||||||
PolicyId []string
|
|
||||||
|
|
||||||
// 备注
|
|
||||||
Remark string
|
|
||||||
|
|
||||||
// 子网 Id
|
|
||||||
SubnetSet []NatGatewaySubnetSet
|
|
||||||
|
|
||||||
// 业务组
|
|
||||||
Tag string
|
|
||||||
|
|
||||||
// 所属VPC Id
|
|
||||||
VPCId string
|
|
||||||
|
|
||||||
// 所属VPC 信息
|
|
||||||
VPCInfo string
|
|
||||||
}
|
|
27
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gateway_ip_set.go
generated
vendored
27
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gateway_ip_set.go
generated
vendored
|
@ -1,27 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
/*
|
|
||||||
NatGatewayIPSet - IPSet信息
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn/api for detail.
|
|
||||||
*/
|
|
||||||
type NatGatewayIPSet struct {
|
|
||||||
|
|
||||||
// 带宽
|
|
||||||
Bandwidth int
|
|
||||||
|
|
||||||
// EIP带宽类型
|
|
||||||
BandwidthType string
|
|
||||||
|
|
||||||
// 外网IP的 EIPId
|
|
||||||
EIPId string
|
|
||||||
|
|
||||||
// 外网IP信息
|
|
||||||
IPResInfo []NatGWIPResInfo
|
|
||||||
|
|
||||||
// 权重为100的为出口
|
|
||||||
Weight int
|
|
||||||
}
|
|
21
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gateway_subnet_set.go
generated
vendored
21
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gateway_subnet_set.go
generated
vendored
|
@ -1,21 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
/*
|
|
||||||
NatGatewaySubnetSet - natgw里面的子网信息
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn/api for detail.
|
|
||||||
*/
|
|
||||||
type NatGatewaySubnetSet struct {
|
|
||||||
|
|
||||||
// 子网网段
|
|
||||||
Subnet string
|
|
||||||
|
|
||||||
// 子网名字
|
|
||||||
SubnetName string
|
|
||||||
|
|
||||||
// 子网id
|
|
||||||
SubnetworkId string
|
|
||||||
}
|
|
18
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gw_ip_res_info.go
generated
vendored
18
vendor/github.com/ucloud/ucloud-sdk-go/services/vpc/types_nat_gw_ip_res_info.go
generated
vendored
|
@ -1,18 +0,0 @@
|
||||||
// Code is generated by ucloud-model, DO NOT EDIT IT.
|
|
||||||
|
|
||||||
package vpc
|
|
||||||
|
|
||||||
/*
|
|
||||||
NatGWIPResInfo - IP信息
|
|
||||||
|
|
||||||
this model is auto created by ucloud code generater for open api,
|
|
||||||
you can also see https://docs.ucloud.cn/api for detail.
|
|
||||||
*/
|
|
||||||
type NatGWIPResInfo struct {
|
|
||||||
|
|
||||||
// 外网IP
|
|
||||||
EIP string
|
|
||||||
|
|
||||||
// IP的运营商信息
|
|
||||||
OperatorName string
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue