diff --git a/builder/alicloud/ecs/access_config.go b/builder/alicloud/ecs/access_config.go index 33d4ff52d..bcc7ba76f 100644 --- a/builder/alicloud/ecs/access_config.go +++ b/builder/alicloud/ecs/access_config.go @@ -22,7 +22,7 @@ func (c *AlicloudAccessConfig) Client() (*ecs.Client, error) { if err := c.loadAndValidate(); err != nil { return nil, err } - client := ecs.NewClient(c.AlicloudAccessKey, c.AlicloudSecretKey) + client := ecs.NewECSClient(c.AlicloudAccessKey, c.AlicloudSecretKey, common.Region(c.AlicloudRegion)) client.SetBusinessInfo("Packer") if _, err := client.DescribeRegions(); err != nil { return nil, err diff --git a/examples/alicloud/basic/alicloud.json b/examples/alicloud/basic/alicloud.json index d96cafa57..8f83262fe 100644 --- a/examples/alicloud/basic/alicloud.json +++ b/examples/alicloud/basic/alicloud.json @@ -12,6 +12,7 @@ "source_image":"centos_7_2_64_40G_base_20170222.vhd", "ssh_username":"root", "instance_type":"ecs.n1.tiny", + "internet_charge_type":"PayByTraffic", "io_optimized":"true" }], "provisioners": [{ diff --git a/examples/alicloud/basic/alicloud_windows.json b/examples/alicloud/basic/alicloud_windows.json index 6a530ef36..9acb6267e 100644 --- a/examples/alicloud/basic/alicloud_windows.json +++ b/examples/alicloud/basic/alicloud_windows.json @@ -12,6 +12,7 @@ "source_image":"win2008r2_64_ent_sp1_zh-cn_40G_alibase_20170622.vhd", "instance_type":"ecs.n1.tiny", "io_optimized":"true", + "internet_charge_type":"PayByTraffic", "image_force_delete":"true", "communicator": "winrm", "winrm_port": 5985, diff --git a/examples/alicloud/basic/alicloud_with_data_disk.json b/examples/alicloud/basic/alicloud_with_data_disk.json index 88412d98a..31f10ab70 100644 --- a/examples/alicloud/basic/alicloud_with_data_disk.json +++ b/examples/alicloud/basic/alicloud_with_data_disk.json @@ -12,6 +12,7 @@ "source_image":"centos_7_2_64_40G_base_20170222.vhd", "ssh_username":"root", "instance_type":"ecs.n1.tiny", + "internet_charge_type":"PayByTraffic", "io_optimized":"true", "image_disk_mappings":[{"disk_name":"data1","disk_size":20},{"disk_name":"data1","disk_size":20,"disk_device":"/dev/xvdz"}] }], diff --git a/examples/alicloud/chef/alicloud.json b/examples/alicloud/chef/alicloud.json index c04e0600f..aa108bacb 100644 --- a/examples/alicloud/chef/alicloud.json +++ b/examples/alicloud/chef/alicloud.json @@ -14,6 +14,7 @@ "instance_type":"ecs.n1.medium", "io_optimized":"true", "image_force_delete":"true", + "internet_charge_type":"PayByTraffic", "ssh_password":"Test1234", "user_data_file":"examples/alicloud/chef/user_data.sh" }], diff --git a/examples/alicloud/jenkins/alicloud.json b/examples/alicloud/jenkins/alicloud.json index 481c39b0a..f1f9e9896 100644 --- a/examples/alicloud/jenkins/alicloud.json +++ b/examples/alicloud/jenkins/alicloud.json @@ -13,6 +13,7 @@ "ssh_username":"root", "instance_type":"ecs.n1.medium", "io_optimized":"true", + "internet_charge_type":"PayByTraffic", "image_force_delete":"true", "ssh_password":"Test12345" }], diff --git a/vendor/github.com/denverdino/aliyungo/common/client.go b/vendor/github.com/denverdino/aliyungo/common/client.go index d186ebd82..a59789fee 100755 --- a/vendor/github.com/denverdino/aliyungo/common/client.go +++ b/vendor/github.com/denverdino/aliyungo/common/client.go @@ -32,6 +32,7 @@ type Client struct { serviceCode string regionID Region businessInfo string + userAgent string } // NewClient creates a new instance of ECS client @@ -107,6 +108,11 @@ func (client *Client) SetBusinessInfo(businessInfo string) { } } +// SetUserAgent sets user agent to the request/response message +func (client *Client) SetUserAgent(userAgent string) { + client.userAgent = userAgent +} + // Invoke sends the raw HTTP request for ECS services func (client *Client) Invoke(action string, args interface{}, response interface{}) error { @@ -131,6 +137,8 @@ func (client *Client) Invoke(action string, args interface{}, response interface // TODO move to util and add build val flag httpReq.Header.Set("X-SDK-Client", `AliyunGO/`+Version+client.businessInfo) + httpReq.Header.Set("User-Agent", httpReq.UserAgent()+ " " +client.userAgent) + t0 := time.Now() httpResp, err := client.httpClient.Do(httpReq) t1 := time.Now() @@ -200,6 +208,8 @@ func (client *Client) InvokeByFlattenMethod(action string, args interface{}, res // TODO move to util and add build val flag httpReq.Header.Set("X-SDK-Client", `AliyunGO/`+Version+client.businessInfo) + httpReq.Header.Set("User-Agent", httpReq.UserAgent()+ " " +client.userAgent) + t0 := time.Now() httpResp, err := client.httpClient.Do(httpReq) t1 := time.Now() @@ -281,6 +291,8 @@ func (client *Client) InvokeByAnyMethod(method, action, path string, args interf // TODO move to util and add build val flag httpReq.Header.Set("X-SDK-Client", `AliyunGO/`+Version+client.businessInfo) + httpReq.Header.Set("User-Agent", httpReq.Header.Get("User-Agent")+ " " +client.userAgent) + t0 := time.Now() httpResp, err := client.httpClient.Do(httpReq) t1 := time.Now() diff --git a/vendor/github.com/denverdino/aliyungo/ecs/disks.go b/vendor/github.com/denverdino/aliyungo/ecs/disks.go index f1d1e9341..7a67c380d 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/disks.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/disks.go @@ -110,10 +110,7 @@ type DescribeDisksResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/disk&describedisks func (client *Client) DescribeDisks(args *DescribeDisksArgs) (disks []DiskItemType, pagination *common.PaginationResult, err error) { - response := DescribeDisksResponse{} - - err = client.Invoke("DescribeDisks", args, &response) - + response, err := client.DescribeDisksWithRaw(args) if err != nil { return nil, nil, err } @@ -121,6 +118,18 @@ func (client *Client) DescribeDisks(args *DescribeDisksArgs) (disks []DiskItemTy return response.Disks.Disk, &response.PaginationResult, err } +func (client *Client) DescribeDisksWithRaw(args *DescribeDisksArgs) (response *DescribeDisksResponse, err error) { + response = &DescribeDisksResponse{} + + err = client.Invoke("DescribeDisks", args, response) + + if err != nil { + return nil, err + } + + return response, err +} + type CreateDiskArgs struct { RegionId common.Region ZoneId string diff --git a/vendor/github.com/denverdino/aliyungo/ecs/forward_entry.go b/vendor/github.com/denverdino/aliyungo/ecs/forward_entry.go index 2a316e18e..ad716a1a5 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/forward_entry.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/forward_entry.go @@ -79,12 +79,7 @@ func (client *Client) CreateForwardEntry(args *CreateForwardEntryArgs) (resp *Cr func (client *Client) DescribeForwardTableEntries(args *DescribeForwardTableEntriesArgs) (forwardTableEntries []ForwardTableEntrySetType, pagination *common.PaginationResult, err error) { - - args.Validate() - response := DescribeForwardTableEntriesResponse{} - - err = client.Invoke("DescribeForwardTableEntries", args, &response) - + response, err := client.DescribeForwardTableEntriesWithRaw(args) if err != nil { return nil, nil, err } @@ -92,6 +87,19 @@ func (client *Client) DescribeForwardTableEntries(args *DescribeForwardTableEntr return response.ForwardTableEntries.ForwardTableEntry, &response.PaginationResult, nil } +func (client *Client) DescribeForwardTableEntriesWithRaw(args *DescribeForwardTableEntriesArgs) (response *DescribeForwardTableEntriesResponse, err error) { + args.Validate() + response = &DescribeForwardTableEntriesResponse{} + + err = client.Invoke("DescribeForwardTableEntries", args, response) + + if err != nil { + return nil, err + } + + return response, nil +} + func (client *Client) ModifyForwardEntry(args *ModifyForwardEntryArgs) error { response := ModifyForwardEntryResponse{} return client.Invoke("ModifyForwardEntry", args, &response) diff --git a/vendor/github.com/denverdino/aliyungo/ecs/images.go b/vendor/github.com/denverdino/aliyungo/ecs/images.go index 0a4e1e2c0..54fe86def 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/images.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/images.go @@ -37,7 +37,7 @@ const ( ImageUsageNone = ImageUsage("none") ) -// DescribeImagesArgs repsents arguements to describe images +// DescribeImagesArgs repsents arguments to describe images type DescribeImagesArgs struct { RegionId common.Region ImageId string @@ -63,12 +63,12 @@ type DescribeImagesResponse struct { type DiskDeviceMapping struct { SnapshotId string //Why Size Field is string-type. - Size string - Device string + Size string + Device string //For import images - Format string - OSSBucket string - OSSObject string + Format string + OSSBucket string + OSSObject string } // @@ -102,21 +102,28 @@ type ImageType struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/image&describeimages func (client *Client) DescribeImages(args *DescribeImagesArgs) (images []ImageType, pagination *common.PaginationResult, err error) { - - args.Validate() - response := DescribeImagesResponse{} - err = client.Invoke("DescribeImages", args, &response) + response, err := client.DescribeImagesWithRaw(args) if err != nil { return nil, nil, err } return response.Images.Image, &response.PaginationResult, nil } -// CreateImageArgs repsents arguements to create image +func (client *Client) DescribeImagesWithRaw(args *DescribeImagesArgs) (response *DescribeImagesResponse, err error) { + args.Validate() + response = &DescribeImagesResponse{} + err = client.Invoke("DescribeImages", args, response) + if err != nil { + return nil, err + } + return response, nil +} + +// CreateImageArgs repsents arguments to create image type CreateImageArgs struct { RegionId common.Region SnapshotId string - InstanceId string + InstanceId string ImageName string ImageVersion string Description string @@ -163,7 +170,7 @@ func (client *Client) DeleteImage(regionId common.Region, imageId string) error return client.Invoke("DeleteImage", &args, &response) } -// ModifyImageSharePermission repsents arguements to share image +// ModifyImageSharePermission repsents arguments to share image type ModifyImageSharePermissionArgs struct { RegionId common.Region ImageId string @@ -232,17 +239,16 @@ func (client *Client) CopyImage(args *CopyImageArgs) (string, error) { return response.ImageId, nil } - -// ImportImageArgs repsents arguements to import image from oss +// ImportImageArgs repsents arguments to import image from oss type ImportImageArgs struct { - RegionId common.Region - ImageName string - ImageVersion string - Description string - ClientToken string - Architecture string - OSType string - Platform string + RegionId common.Region + ImageName string + ImageVersion string + Description string + ClientToken string + Architecture string + OSType string + Platform string DiskDeviceMappings struct { DiskDeviceMapping []DiskDeviceMapping } @@ -259,8 +265,8 @@ func (client *Client) ImportImage(args *ImportImageArgs) (string, error) { type ImportImageResponse struct { common.Response - RegionId common.Region - ImageId string + RegionId common.Region + ImageId string ImportTaskId string } diff --git a/vendor/github.com/denverdino/aliyungo/ecs/instances.go b/vendor/github.com/denverdino/aliyungo/ecs/instances.go index d127d55ab..4eb999537 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/instances.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/instances.go @@ -15,7 +15,7 @@ type InstanceStatus string // Constants of InstanceStatus const ( - Creating = InstanceStatus("Creating") // For backward compatability + Creating = InstanceStatus("Creating") // For backward compatibility Pending = InstanceStatus("Pending") Running = InstanceStatus("Running") Starting = InstanceStatus("Starting") @@ -94,10 +94,7 @@ type DescribeInstanceStatusResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/instance&describeinstancestatus func (client *Client) DescribeInstanceStatus(args *DescribeInstanceStatusArgs) (instanceStatuses []InstanceStatusItemType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeInstanceStatusResponse{} - - err = client.Invoke("DescribeInstanceStatus", args, &response) + response, err := client.DescribeInstanceStatusWithRaw(args) if err == nil { return response.InstanceStatuses.InstanceStatus, &response.PaginationResult, nil @@ -106,6 +103,18 @@ func (client *Client) DescribeInstanceStatus(args *DescribeInstanceStatusArgs) ( return nil, nil, err } +func (client *Client) DescribeInstanceStatusWithRaw(args *DescribeInstanceStatusArgs) (response *DescribeInstanceStatusResponse, err error) { + args.Validate() + response = &DescribeInstanceStatusResponse{} + + err = client.Invoke("DescribeInstanceStatus", args, response) + if err != nil { + return nil, err + } + + return response, nil +} + type StopInstanceArgs struct { InstanceId string ForceStop bool @@ -254,6 +263,7 @@ type InstanceAttributesType struct { Tag []TagItemType } SpotStrategy SpotStrategyType + KeyPairName string } type DescribeInstanceAttributeResponse struct { @@ -408,16 +418,24 @@ type DescribeInstancesResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/instance&describeinstances func (client *Client) DescribeInstances(args *DescribeInstancesArgs) (instances []InstanceAttributesType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeInstancesResponse{} - - err = client.Invoke("DescribeInstances", args, &response) - - if err == nil { - return response.Instances.Instance, &response.PaginationResult, nil + response, err := client.DescribeInstancesWithRaw(args) + if err != nil { + return nil, nil, err } - return nil, nil, err + return response.Instances.Instance, &response.PaginationResult, nil +} + +func (client *Client) DescribeInstancesWithRaw(args *DescribeInstancesArgs) (response *DescribeInstancesResponse, err error) { + args.Validate() + response = &DescribeInstancesResponse{} + + err = client.Invoke("DescribeInstances", args, &response) + if err != nil { + return nil, err + } + + return response, nil } type DeleteInstanceArgs struct { @@ -517,6 +535,7 @@ type CreateInstanceArgs struct { AutoRenew bool AutoRenewPeriod int SpotStrategy SpotStrategyType + KeyPairName string } type CreateInstanceResponse struct { diff --git a/vendor/github.com/denverdino/aliyungo/ecs/nat_gateway.go b/vendor/github.com/denverdino/aliyungo/ecs/nat_gateway.go index dfcb74d32..10e00638e 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/nat_gateway.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/nat_gateway.go @@ -83,12 +83,7 @@ type DescribeNatGatewaysArgs struct { func (client *Client) DescribeNatGateways(args *DescribeNatGatewaysArgs) (natGateways []NatGatewaySetType, pagination *common.PaginationResult, err error) { - - args.Validate() - response := DescribeNatGatewayResponse{} - - err = client.Invoke("DescribeNatGateways", args, &response) - + response, err := client.DescribeNatGatewaysWithRaw(args) if err == nil { return response.NatGateways.NatGateway, &response.PaginationResult, nil } @@ -96,6 +91,19 @@ func (client *Client) DescribeNatGateways(args *DescribeNatGatewaysArgs) (natGat return nil, nil, err } +func (client *Client) DescribeNatGatewaysWithRaw(args *DescribeNatGatewaysArgs) (response *DescribeNatGatewayResponse, err error) { + args.Validate() + response = &DescribeNatGatewayResponse{} + + err = client.Invoke("DescribeNatGateways", args, response) + + if err == nil { + return response, nil + } + + return nil, err +} + type ModifyNatGatewayAttributeArgs struct { RegionId common.Region NatGatewayId string diff --git a/vendor/github.com/denverdino/aliyungo/ecs/networks.go b/vendor/github.com/denverdino/aliyungo/ecs/networks.go index fecc7af1a..100835c37 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/networks.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/networks.go @@ -146,11 +146,7 @@ type DescribeEipAddressesResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/network&describeeipaddresses func (client *Client) DescribeEipAddresses(args *DescribeEipAddressesArgs) (eipAddresses []EipAddressSetType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeEipAddressesResponse{} - - err = client.Invoke("DescribeEipAddresses", args, &response) - + response, err := client.DescribeEipAddressesWithRaw(args) if err == nil { return response.EipAddresses.EipAddress, &response.PaginationResult, nil } @@ -158,6 +154,19 @@ func (client *Client) DescribeEipAddresses(args *DescribeEipAddressesArgs) (eipA return nil, nil, err } +func (client *Client) DescribeEipAddressesWithRaw(args *DescribeEipAddressesArgs) (response *DescribeEipAddressesResponse, err error) { + args.Validate() + response = &DescribeEipAddressesResponse{} + + err = client.Invoke("DescribeEipAddresses", args, response) + + if err == nil { + return response, nil + } + + return nil, err +} + type ModifyEipAddressAttributeArgs struct { AllocationId string Bandwidth int diff --git a/vendor/github.com/denverdino/aliyungo/ecs/route_tables.go b/vendor/github.com/denverdino/aliyungo/ecs/route_tables.go index 01f43127c..cc85cb129 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/route_tables.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/route_tables.go @@ -76,11 +76,7 @@ type DescribeRouteTablesResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/routertable&describeroutetables func (client *Client) DescribeRouteTables(args *DescribeRouteTablesArgs) (routeTables []RouteTableSetType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeRouteTablesResponse{} - - err = client.Invoke("DescribeRouteTables", args, &response) - + response, err := client.DescribeRouteTablesWithRaw(args) if err == nil { return response.RouteTables.RouteTable, &response.PaginationResult, nil } @@ -88,6 +84,19 @@ func (client *Client) DescribeRouteTables(args *DescribeRouteTablesArgs) (routeT return nil, nil, err } +func (client *Client) DescribeRouteTablesWithRaw(args *DescribeRouteTablesArgs) (response *DescribeRouteTablesResponse, err error) { + args.Validate() + response = &DescribeRouteTablesResponse{} + + err = client.Invoke("DescribeRouteTables", args, &response) + + if err == nil { + return response, nil + } + + return nil, err +} + type NextHopType string const ( diff --git a/vendor/github.com/denverdino/aliyungo/ecs/security_groups.go b/vendor/github.com/denverdino/aliyungo/ecs/security_groups.go index eaec701de..54af3a798 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/security_groups.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/security_groups.go @@ -108,11 +108,7 @@ type DescribeSecurityGroupsResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/securitygroup&describesecuritygroups func (client *Client) DescribeSecurityGroups(args *DescribeSecurityGroupsArgs) (securityGroupItems []SecurityGroupItemType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeSecurityGroupsResponse{} - - err = client.Invoke("DescribeSecurityGroups", args, &response) - + response, err := client.DescribeSecurityGroupsWithRaw(args) if err != nil { return nil, nil, err } @@ -120,6 +116,19 @@ func (client *Client) DescribeSecurityGroups(args *DescribeSecurityGroupsArgs) ( return response.SecurityGroups.SecurityGroup, &response.PaginationResult, nil } +func (client *Client) DescribeSecurityGroupsWithRaw(args *DescribeSecurityGroupsArgs) (response *DescribeSecurityGroupsResponse, err error) { + args.Validate() + response = &DescribeSecurityGroupsResponse{} + + err = client.Invoke("DescribeSecurityGroups", args, response) + + if err != nil { + return nil, err + } + + return response, nil +} + type CreateSecurityGroupArgs struct { RegionId common.Region SecurityGroupName string diff --git a/vendor/github.com/denverdino/aliyungo/ecs/snapshots.go b/vendor/github.com/denverdino/aliyungo/ecs/snapshots.go index fb6f9c8e1..f3c1b09c5 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/snapshots.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/snapshots.go @@ -41,11 +41,7 @@ type DescribeSnapshotsResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/snapshot&describesnapshots func (client *Client) DescribeSnapshots(args *DescribeSnapshotsArgs) (snapshots []SnapshotType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeSnapshotsResponse{} - - err = client.Invoke("DescribeSnapshots", args, &response) - + response, err := client.DescribeSnapshotsWithRaw(args) if err != nil { return nil, nil, err } @@ -53,6 +49,19 @@ func (client *Client) DescribeSnapshots(args *DescribeSnapshotsArgs) (snapshots } +func (client *Client) DescribeSnapshotsWithRaw(args *DescribeSnapshotsArgs) (response *DescribeSnapshotsResponse, err error) { + args.Validate() + response = &DescribeSnapshotsResponse{} + + err = client.Invoke("DescribeSnapshots", args, response) + + if err != nil { + return nil, err + } + return response, nil + +} + type DeleteSnapshotArgs struct { SnapshotId string } diff --git a/vendor/github.com/denverdino/aliyungo/ecs/snat_entry.go b/vendor/github.com/denverdino/aliyungo/ecs/snat_entry.go index aa75574c3..d9806d769 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/snat_entry.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/snat_entry.go @@ -70,12 +70,7 @@ func (client *Client) CreateSnatEntry(args *CreateSnatEntryArgs) (resp *CreateSn func (client *Client) DescribeSnatTableEntries(args *DescribeSnatTableEntriesArgs) (snatTableEntries []SnatEntrySetType, pagination *common.PaginationResult, err error) { - - args.Validate() - response := DescribeSnatTableEntriesResponse{} - - err = client.Invoke("DescribeSnatTableEntries", args, &response) - + response, err := client.DescribeSnatTableEntriesWithRaw(args) if err != nil { return nil, nil, err } @@ -83,6 +78,19 @@ func (client *Client) DescribeSnatTableEntries(args *DescribeSnatTableEntriesArg return response.SnatTableEntries.SnatTableEntry, &response.PaginationResult, nil } +func (client *Client) DescribeSnatTableEntriesWithRaw(args *DescribeSnatTableEntriesArgs) ( response *DescribeSnatTableEntriesResponse, err error) { + args.Validate() + response = &DescribeSnatTableEntriesResponse{} + + err = client.Invoke("DescribeSnatTableEntries", args, response) + + if err != nil { + return nil, err + } + + return response, nil +} + func (client *Client) ModifySnatEntry(args *ModifySnatEntryArgs) error { response := ModifySnatEntryResponse{} return client.Invoke("ModifySnatEntry", args, &response) diff --git a/vendor/github.com/denverdino/aliyungo/ecs/ssh_key_pair.go b/vendor/github.com/denverdino/aliyungo/ecs/ssh_key_pair.go index bd742442e..76f1a3803 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/ssh_key_pair.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/ssh_key_pair.go @@ -77,10 +77,7 @@ type DescribeKeyPairsResponse struct { // // You can read doc at https://help.aliyun.com/document_detail/51773.html?spm=5176.doc51774.6.912.lyE0iX func (client *Client) DescribeKeyPairs(args *DescribeKeyPairsArgs) (KeyPairs []KeyPairItemType, pagination *common.PaginationResult, err error) { - response := DescribeKeyPairsResponse{} - - err = client.Invoke("DescribeKeyPairs", args, &response) - + response, err := client.DescribeKeyPairsWithRaw(args) if err != nil { return nil, nil, err } @@ -88,6 +85,18 @@ func (client *Client) DescribeKeyPairs(args *DescribeKeyPairsArgs) (KeyPairs [ return response.KeyPairs.KeyPair, &response.PaginationResult, err } +func (client *Client) DescribeKeyPairsWithRaw(args *DescribeKeyPairsArgs) (response *DescribeKeyPairsResponse, err error) { + response = &DescribeKeyPairsResponse{} + + err = client.Invoke("DescribeKeyPairs", args, response) + + if err != nil { + return nil, err + } + + return response, err +} + type AttachKeyPairArgs struct { RegionId common.Region KeyPairName string diff --git a/vendor/github.com/denverdino/aliyungo/ecs/tags.go b/vendor/github.com/denverdino/aliyungo/ecs/tags.go index 5ffd4931a..fb2519a1d 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/tags.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/tags.go @@ -76,15 +76,23 @@ type DescribeResourceByTagsResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/tags&describeresourcebytags func (client *Client) DescribeResourceByTags(args *DescribeResourceByTagsArgs) (resources []ResourceItemType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeResourceByTagsResponse{} - err = client.Invoke("DescribeResourceByTags", args, &response) + response, err := client.DescribeResourceByTagsWithRaw(args) if err != nil { return nil, nil, err } return response.Resources.Resource, &response.PaginationResult, nil } +func (client *Client) DescribeResourceByTagsWithRaw(args *DescribeResourceByTagsArgs) (response *DescribeResourceByTagsResponse, err error) { + args.Validate() + response = &DescribeResourceByTagsResponse{} + err = client.Invoke("DescribeResourceByTags", args, response) + if err != nil { + return nil, err + } + return response, nil +} + type TagItemType struct { TagKey string TagValue string diff --git a/vendor/github.com/denverdino/aliyungo/ecs/vpcs.go b/vendor/github.com/denverdino/aliyungo/ecs/vpcs.go index 80faf21ca..d66fe1027 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/vpcs.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/vpcs.go @@ -95,16 +95,24 @@ type DescribeVpcsResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/vpc&describevpcs func (client *Client) DescribeVpcs(args *DescribeVpcsArgs) (vpcs []VpcSetType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeVpcsResponse{} - - err = client.Invoke("DescribeVpcs", args, &response) - - if err == nil { - return response.Vpcs.Vpc, &response.PaginationResult, nil + response, err := client.DescribeVpcsWithRaw(args) + if err != nil { + return nil, nil, err } - return nil, nil, err + return response.Vpcs.Vpc, &response.PaginationResult, nil +} + +func (client *Client) DescribeVpcsWithRaw(args *DescribeVpcsArgs) (response *DescribeVpcsResponse, err error) { + args.Validate() + response = &DescribeVpcsResponse{} + + err = client.Invoke("DescribeVpcs", args, response) + if err != nil { + return nil, err + } + + return response, err } type ModifyVpcAttributeArgs struct { diff --git a/vendor/github.com/denverdino/aliyungo/ecs/vrouters.go b/vendor/github.com/denverdino/aliyungo/ecs/vrouters.go index 059a324bd..04d43daa8 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/vrouters.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/vrouters.go @@ -37,11 +37,7 @@ type DescribeVRoutersResponse struct { // // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/vrouter&describevrouters func (client *Client) DescribeVRouters(args *DescribeVRoutersArgs) (vrouters []VRouterSetType, pagination *common.PaginationResult, err error) { - args.Validate() - response := DescribeVRoutersResponse{} - - err = client.Invoke("DescribeVRouters", args, &response) - + response, err := client.DescribeVRoutersWithRaw(args) if err == nil { return response.VRouters.VRouter, &response.PaginationResult, nil } @@ -49,6 +45,19 @@ func (client *Client) DescribeVRouters(args *DescribeVRoutersArgs) (vrouters []V return nil, nil, err } +func (client *Client) DescribeVRoutersWithRaw(args *DescribeVRoutersArgs) (response *DescribeVRoutersResponse, err error) { + args.Validate() + response = &DescribeVRoutersResponse{} + + err = client.Invoke("DescribeVRouters", args, response) + + if err == nil { + return response, nil + } + + return nil, err +} + type ModifyVRouterAttributeArgs struct { VRouterId string VRouterName string diff --git a/vendor/github.com/denverdino/aliyungo/ecs/vswitches.go b/vendor/github.com/denverdino/aliyungo/ecs/vswitches.go index 8a879ec80..22d5ec8ea 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/vswitches.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/vswitches.go @@ -53,6 +53,7 @@ func (client *Client) DeleteVSwitch(VSwitchId string) error { } type DescribeVSwitchesArgs struct { + RegionId common.Region VpcId string VSwitchId string ZoneId string @@ -94,10 +95,7 @@ type DescribeVSwitchesResponse struct { // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/vswitch&describevswitches func (client *Client) DescribeVSwitches(args *DescribeVSwitchesArgs) (vswitches []VSwitchSetType, pagination *common.PaginationResult, err error) { args.Validate() - response := DescribeVSwitchesResponse{} - - err = client.Invoke("DescribeVSwitches", args, &response) - + response, err := client.DescribeVSwitchesWithRaw(args) if err == nil { return response.VSwitches.VSwitch, &response.PaginationResult, nil } @@ -105,6 +103,19 @@ func (client *Client) DescribeVSwitches(args *DescribeVSwitchesArgs) (vswitches return nil, nil, err } +func (client *Client) DescribeVSwitchesWithRaw(args *DescribeVSwitchesArgs) (response *DescribeVSwitchesResponse, err error) { + args.Validate() + response = &DescribeVSwitchesResponse{} + + err = client.Invoke("DescribeVSwitches", args, &response) + + if err == nil { + return response, nil + } + + return nil, err +} + type ModifyVSwitchAttributeArgs struct { VSwitchId string VSwitchName string diff --git a/vendor/github.com/denverdino/aliyungo/ecs/zones.go b/vendor/github.com/denverdino/aliyungo/ecs/zones.go index 4818c760f..61ecb0759 100644 --- a/vendor/github.com/denverdino/aliyungo/ecs/zones.go +++ b/vendor/github.com/denverdino/aliyungo/ecs/zones.go @@ -11,6 +11,34 @@ const ( ResourceTypeIOOptimizedInstance = ResourceType("IoOptimized") ) +// The sub-item of the type AvailableResourcesType +type SupportedResourceType string + +const ( + SupportedInstanceType = SupportedResourceType("supportedInstanceType") + SupportedInstanceTypeFamily = SupportedResourceType("supportedInstanceTypeFamily") + SupportedInstanceGeneration = SupportedResourceType("supportedInstanceGeneration") + SupportedSystemDiskCategory = SupportedResourceType("supportedSystemDiskCategory") + SupportedDataDiskCategory = SupportedResourceType("supportedDataDiskCategory") + SupportedNetworkCategory = SupportedResourceType("supportedNetworkCategory") + +) +// +// You can read doc at https://help.aliyun.com/document_detail/25670.html?spm=5176.doc25640.2.1.J24zQt +type ResourcesInfoType struct { + ResourcesInfo []AvailableResourcesType +} +// Because the sub-item of AvailableResourcesType starts with supported and golang struct cann't refer them, this uses map to parse ResourcesInfo +type AvailableResourcesType struct { + IoOptimized bool + NetworkTypes map[SupportedResourceType][]string + InstanceGenerations map[SupportedResourceType][]string + InstanceTypeFamilies map[SupportedResourceType][]string + InstanceTypes map[SupportedResourceType][]string + SystemDiskCategories map[SupportedResourceType][]DiskCategory + DataDiskCategories map[SupportedResourceType][]DiskCategory +} + type DescribeZonesArgs struct { RegionId common.Region } @@ -36,6 +64,7 @@ type AvailableInstanceTypesType struct { type ZoneType struct { ZoneId string LocalName string + AvailableResources ResourcesInfoType AvailableInstanceTypes AvailableInstanceTypesType AvailableResourceCreation AvailableResourceCreationType AvailableDiskCategories AvailableDiskCategoriesType @@ -50,16 +79,25 @@ type DescribeZonesResponse struct { // DescribeZones describes zones func (client *Client) DescribeZones(regionId common.Region) (zones []ZoneType, err error) { - args := DescribeZonesArgs{ - RegionId: regionId, - } - response := DescribeZonesResponse{} - - err = client.Invoke("DescribeZones", &args, &response) - + response, err := client.DescribeZonesWithRaw(regionId) if err == nil { return response.Zones.Zone, nil } return []ZoneType{}, err } + +func (client *Client) DescribeZonesWithRaw(regionId common.Region) (response *DescribeZonesResponse, err error) { + args := DescribeZonesArgs{ + RegionId: regionId, + } + response = &DescribeZonesResponse{} + + err = client.Invoke("DescribeZones", &args, response) + + if err == nil { + return response, nil + } + + return nil, err +} diff --git a/vendor/github.com/denverdino/aliyungo/ram/api.go b/vendor/github.com/denverdino/aliyungo/ram/api.go index 8ad173b78..d8f50296e 100644 --- a/vendor/github.com/denverdino/aliyungo/ram/api.go +++ b/vendor/github.com/denverdino/aliyungo/ram/api.go @@ -13,11 +13,11 @@ type RamClientInterface interface { DeleteUser(userQuery UserQueryRequest) (RamCommonResponse, error) ListUsers(listParams ListUserRequest) (ListUserResponse, error) - //TODO login ram console - CreateLoginProfile() - GetLoginProfile() - DeleteLoginProfile() - UpdateLoginProfile() + //ram login profile + CreateLoginProfile(req ProfileRequest) (ProfileResponse, error) + GetLoginProfile(req UserQueryRequest) (ProfileResponse, error) + DeleteLoginProfile(req UserQueryRequest) (RamCommonResponse, error) + UpdateLoginProfile(req ProfileRequest) (ProfileResponse, error) //ram ak CreateAccessKey(userQuery UserQueryRequest) (AccessKeyResponse, error) @@ -25,23 +25,24 @@ type RamClientInterface interface { DeleteAccessKey(accessKeyRequest UpdateAccessKeyRequest) (RamCommonResponse, error) ListAccessKeys(userQuery UserQueryRequest) (AccessKeyListResponse, error) - //TODO MFA - CreateVirtualMFADevices() - ListVirtualMFADevices() - DeleteVirtualMFADevices() - BindMFADevice() - GetUserMFAInfo() + //ram mfa + CreateVirtualMFADevice(req MFARequest) (MFAResponse, error) + ListVirtualMFADevices() (MFAListResponse, error) + DeleteVirtualMFADevice(req MFADeleteRequest) (RamCommonResponse, error) + BindMFADevice(req MFABindRequest) (RamCommonResponse, error) + UnbindMFADevice(req UserQueryRequest) (MFAUserResponse, error) + GetUserMFAInfo(req UserQueryRequest) (MFAUserResponse, error) - //TODO group - CreateGroup() - GetGroup() - UpdateGroup() - ListGroup() - DeleteGroup() - AddUserToGroup() - RemoveUserFromGroup() - ListGroupsForUser() - ListUsersForGroup() + //ram group + CreateGroup(req GroupRequest) (GroupResponse, error) + GetGroup(req GroupQueryRequest) (GroupResponse, error) + UpdateGroup(req GroupUpdateRequest) (GroupResponse, error) + ListGroup(req GroupListRequest) (GroupListResponse, error) + DeleteGroup(req GroupQueryRequest) (RamCommonResponse, error) + AddUserToGroup(req UserRelateGroupRequest) (RamCommonResponse, error) + RemoveUserFromGroup(req UserRelateGroupRequest) (RamCommonResponse, error) + ListGroupsForUser(req UserQueryRequest) (GroupListResponse, error) + ListUsersForGroup(req GroupQueryRequest) (ListUserResponse, error) CreateRole(role RoleRequest) (RoleResponse, error) GetRole(roleQuery RoleQueryRequest) (RoleResponse, error) @@ -56,24 +57,28 @@ type RamClientInterface interface { ListPolicies(policyQuery PolicyQueryRequest) (PolicyQueryResponse, error) ListPoliciesForUser(userQuery UserQueryRequest) (PolicyListResponse, error) - //TODO policy + //ram policy version CreatePolicyVersion(policyReq PolicyRequest) (PolicyVersionResponse, error) GetPolicyVersion(policyReq PolicyRequest) (PolicyVersionResponse, error) + GetPolicyVersionNew(policyReq PolicyRequest) (PolicyVersionResponseNew, error) DeletePolicyVersion(policyReq PolicyRequest) (RamCommonResponse, error) ListPolicyVersions(policyReq PolicyRequest) (PolicyVersionResponse, error) + ListPolicyVersionsNew(policyReq PolicyRequest) (PolicyVersionsResponse, error) AttachPolicyToUser(attachPolicyRequest AttachPolicyRequest) (RamCommonResponse, error) DetachPolicyFromUser(attachPolicyRequest AttachPolicyRequest) (RamCommonResponse, error) - ListEnitiesForPolicy() - SetDefaultPolicyVersion() - ListPoliciesForGroup() + ListEntitiesForPolicy(policyReq PolicyRequest) (PolicyListEntitiesResponse, error) + SetDefaultPolicyVersion(policyReq PolicyRequest) (RamCommonResponse, error) + ListPoliciesForGroup(groupQuery GroupQueryRequest) (PolicyListResponse, error) + AttachPolicyToGroup(attachPolicyRequest AttachPolicyToGroupRequest) (RamCommonResponse, error) + DetachPolicyFromGroup(attachPolicyRequest AttachPolicyToGroupRequest) (RamCommonResponse, error) AttachPolicyToRole(attachPolicyRequest AttachPolicyToRoleRequest) (RamCommonResponse, error) DetachPolicyFromRole(attachPolicyRequest AttachPolicyToRoleRequest) (RamCommonResponse, error) ListPoliciesForRole(roleQuery RoleQueryRequest) (PolicyListResponse, error) - //TODO security apis - SetAccountAlias(accountAlias AccountAlias) (RamCommonResponse, error) + //ram security + SetAccountAlias(accountAlias AccountAliasRequest) (RamCommonResponse, error) GetAccountAlias() (AccountAliasResponse, error) ClearAccountAlias() (RamCommonResponse, error) SetPasswordPolicy(passwordPolicy PasswordPolicyRequest) (PasswordPolicyResponse, error) - GetPasswordPolicy(accountAlias AccountAlias) (PasswordPolicyResponse, error) + GetPasswordPolicy() (PasswordPolicyResponse, error) } diff --git a/vendor/github.com/denverdino/aliyungo/ram/group.go b/vendor/github.com/denverdino/aliyungo/ram/group.go index a64e68fb4..6f1224f5f 100644 --- a/vendor/github.com/denverdino/aliyungo/ram/group.go +++ b/vendor/github.com/denverdino/aliyungo/ram/group.go @@ -1,11 +1,118 @@ package ram -func (client *RamClient) CreateGroup() {} -func (client *RamClient) GetGroup() {} -func (client *RamClient) UpdateGroup() {} -func (client *RamClient) ListGroup() {} -func (client *RamClient) DeleteGroup() {} -func (client *RamClient) AddUserToGroup() {} -func (client *RamClient) RemoveUserFromGroup() {} -func (client *RamClient) ListGroupsForUser() {} -func (client *RamClient) ListUsersForGroup() {} +type GroupRequest struct { + Group +} + +type GroupQueryRequest struct { + GroupName string +} + +type GroupUpdateRequest struct { + GroupName string + NewGroupName string + NewComments string +} + +type GroupListRequest struct { + Marker string + MaxItems int8 +} + +type UserRelateGroupRequest struct { + UserName string + GroupName string +} + +type GroupResponse struct { + RamCommonResponse + Group Group +} + +type GroupListResponse struct { + RamCommonResponse + Groups struct { + Group []Group + } +} + +func (client *RamClient) CreateGroup(req GroupRequest) (GroupResponse, error) { + var resp GroupResponse + err := client.Invoke("CreateGroup", req, &resp) + if err != nil { + return GroupResponse{}, err + } + return resp, nil +} + +func (client *RamClient) GetGroup(req GroupQueryRequest) (GroupResponse, error) { + var resp GroupResponse + err := client.Invoke("GetGroup", req, &resp) + if err != nil { + return GroupResponse{}, err + } + return resp, nil +} + +func (client *RamClient) UpdateGroup(req GroupUpdateRequest) (GroupResponse, error) { + var resp GroupResponse + err := client.Invoke("UpdateGroup", req, &resp) + if err != nil { + return GroupResponse{}, err + } + return resp, nil +} + +func (client *RamClient) ListGroup(req GroupListRequest) (GroupListResponse, error) { + var resp GroupListResponse + err := client.Invoke("ListGroups", req, &resp) + if err != nil { + return GroupListResponse{}, err + } + return resp, nil +} + +func (client *RamClient) DeleteGroup(req GroupQueryRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("DeleteGroup", req, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) AddUserToGroup(req UserRelateGroupRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("AddUserToGroup", req, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) RemoveUserFromGroup(req UserRelateGroupRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("RemoveUserFromGroup", req, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) ListGroupsForUser(req UserQueryRequest) (GroupListResponse, error) { + var resp GroupListResponse + err := client.Invoke("ListGroupsForUser", req, &resp) + if err != nil { + return GroupListResponse{}, err + } + return resp, nil +} + +func (client *RamClient) ListUsersForGroup(req GroupQueryRequest) (ListUserResponse, error) { + var resp ListUserResponse + err := client.Invoke("ListUsersForGroup", req, &resp) + if err != nil { + return ListUserResponse{}, err + } + return resp, nil +} diff --git a/vendor/github.com/denverdino/aliyungo/ram/mfa.go b/vendor/github.com/denverdino/aliyungo/ram/mfa.go index 07d6b3945..708dfe262 100644 --- a/vendor/github.com/denverdino/aliyungo/ram/mfa.go +++ b/vendor/github.com/denverdino/aliyungo/ram/mfa.go @@ -1,11 +1,87 @@ package ram -func (client *RamClient) CreateVirtualMFADevices() {} +type MFARequest struct { + VirtualMFADeviceName string +} -func (client *RamClient) ListVirtualMFADevices() {} +type MFADeleteRequest struct { + MFADevice +} -func (client *RamClient) DeleteVirtualMFADevices() {} +type MFABindRequest struct { + SerialNumber string + UserName string + AuthenticationCode1 string + AuthenticationCode2 string +} -func (client *RamClient) BindMFADevice() {} +type MFAResponse struct { + RamCommonResponse + VirtualMFADevice VirtualMFADevice +} -func (client *RamClient) GetUserMFAInfo() {} +type MFAListResponse struct { + RamCommonResponse + VirtualMFADevices struct { + VirtualMFADevice []VirtualMFADevice + } +} + +type MFAUserResponse struct { + RamCommonResponse + MFADevice MFADevice +} + +func (client *RamClient) CreateVirtualMFADevice(req MFARequest) (MFAResponse, error) { + var resp MFAResponse + err := client.Invoke("CreateVirtualMFADevice", req, &resp) + if err != nil { + return MFAResponse{}, err + } + return resp, nil +} + +func (client *RamClient) ListVirtualMFADevices() (MFAListResponse, error) { + var resp MFAListResponse + err := client.Invoke("ListVirtualMFADevices", struct{}{}, &resp) + if err != nil { + return MFAListResponse{}, err + } + return resp, nil +} + +func (client *RamClient) DeleteVirtualMFADevice(req MFADeleteRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("DeleteVirtualMFADevice", req, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) BindMFADevice(req MFABindRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("BindMFADevice", req, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) UnbindMFADevice(req UserQueryRequest) (MFAUserResponse, error) { + var resp MFAUserResponse + err := client.Invoke("UnbindMFADevice", req, &resp) + if err != nil { + return MFAUserResponse{}, err + } + return resp, nil +} + +func (client *RamClient) GetUserMFAInfo(req UserQueryRequest) (MFAUserResponse, error) { + var resp MFAUserResponse + err := client.Invoke("GetUserMFAInfo", req, &resp) + if err != nil { + return MFAUserResponse{}, err + } + return resp, nil +} diff --git a/vendor/github.com/denverdino/aliyungo/ram/policy.go b/vendor/github.com/denverdino/aliyungo/ram/policy.go index 2eaed4f4e..b0a84b86d 100644 --- a/vendor/github.com/denverdino/aliyungo/ram/policy.go +++ b/vendor/github.com/denverdino/aliyungo/ram/policy.go @@ -52,6 +52,41 @@ type AttachPolicyToRoleRequest struct { RoleName string } +type PolicyVersionResponseNew struct { + RamCommonResponse + PolicyVersion struct { + IsDefaultVersion bool + VersionId string + CreateDate string + PolicyDocument string + } +} + +type AttachPolicyToGroupRequest struct { + PolicyRequest + GroupName string +} + +type PolicyVersionsResponse struct { + RamCommonResponse + PolicyVersions struct { + PolicyVersion []PolicyVersion + } +} + +type PolicyListEntitiesResponse struct { + RamCommonResponse + Groups struct { + Group []Group + } + Users struct { + User []User + } + Roles struct { + Role []Role + } +} + func (client *RamClient) CreatePolicy(policyReq PolicyRequest) (PolicyResponse, error) { var resp PolicyResponse err := client.Invoke("CreatePolicy", policyReq, &resp) @@ -106,6 +141,15 @@ func (client *RamClient) GetPolicyVersion(policyReq PolicyRequest) (PolicyVersio return resp, nil } +func (client *RamClient) GetPolicyVersionNew(policyReq PolicyRequest) (PolicyVersionResponseNew, error) { + var resp PolicyVersionResponseNew + err := client.Invoke("GetPolicyVersion", policyReq, &resp) + if err != nil { + return PolicyVersionResponseNew{}, err + } + return resp, nil +} + func (client *RamClient) DeletePolicyVersion(policyReq PolicyRequest) (RamCommonResponse, error) { var resp RamCommonResponse err := client.Invoke("DeletePolicyVersion", policyReq, &resp) @@ -124,8 +168,23 @@ func (client *RamClient) ListPolicyVersions(policyReq PolicyRequest) (PolicyVers return resp, nil } -//TODO -func (client *RamClient) SetDefaultPolicyVersion() {} +func (client *RamClient) ListPolicyVersionsNew(policyReq PolicyRequest) (PolicyVersionsResponse, error) { + var resp PolicyVersionsResponse + err := client.Invoke("ListPolicyVersions", policyReq, &resp) + if err != nil { + return PolicyVersionsResponse{}, err + } + return resp, nil +} + +func (client *RamClient) SetDefaultPolicyVersion(policyReq PolicyRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("SetDefaultPolicyVersion", policyReq, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} func (client *RamClient) AttachPolicyToUser(attachPolicyRequest AttachPolicyRequest) (RamCommonResponse, error) { var resp RamCommonResponse @@ -145,8 +204,14 @@ func (client *RamClient) DetachPolicyFromUser(attachPolicyRequest AttachPolicyRe return resp, nil } -//TODO -func (client *RamClient) ListEnitiesForPolicy() {} +func (client *RamClient) ListEntitiesForPolicy(policyReq PolicyRequest) (PolicyListEntitiesResponse, error) { + var resp PolicyListEntitiesResponse + err := client.Invoke("ListEntitiesForPolicy", policyReq, &resp) + if err != nil { + return PolicyListEntitiesResponse{}, err + } + return resp, nil +} func (client *RamClient) ListPoliciesForUser(userQuery UserQueryRequest) (PolicyListResponse, error) { var resp PolicyListResponse @@ -190,6 +255,29 @@ func (client *RamClient) ListPoliciesForRole(roleQuery RoleQueryRequest) (Policy // //Group related // -//TODO -// -func (client *RamClient) ListPoliciesForGroup() {} +func (client *RamClient) AttachPolicyToGroup(attachPolicyRequest AttachPolicyToGroupRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("AttachPolicyToGroup", attachPolicyRequest, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) DetachPolicyFromGroup(attachPolicyRequest AttachPolicyToGroupRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("DetachPolicyFromGroup", attachPolicyRequest, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) ListPoliciesForGroup(groupQuery GroupQueryRequest) (PolicyListResponse, error) { + var resp PolicyListResponse + err := client.Invoke("ListPoliciesForGroup", groupQuery, &resp) + if err != nil { + return PolicyListResponse{}, err + } + return resp, nil +} diff --git a/vendor/github.com/denverdino/aliyungo/ram/profile.go b/vendor/github.com/denverdino/aliyungo/ram/profile.go index 91dd32e31..fb8276193 100644 --- a/vendor/github.com/denverdino/aliyungo/ram/profile.go +++ b/vendor/github.com/denverdino/aliyungo/ram/profile.go @@ -7,18 +7,50 @@ package ram UpdateLoginProfile() */ -func (client *RamClient) CreateLoginProfile() { - +type ProfileRequest struct { + UserName string + Password string + PasswordResetRequired bool + MFABindRequired bool } -func (client *RamClient) GetLoginProfile() { - +type ProfileResponse struct { + RamCommonResponse + LoginProfile LoginProfile } -func (client *RamClient) DeleteLoginProfile() { - +func (client *RamClient) CreateLoginProfile(req ProfileRequest) (ProfileResponse, error) { + var resp ProfileResponse + err := client.Invoke("CreateLoginProfile", req, &resp) + if err != nil { + return ProfileResponse{}, err + } + return resp, nil } -func (client *RamClient) UpdateLoginProfile() { - +func (client *RamClient) GetLoginProfile(req UserQueryRequest) (ProfileResponse, error) { + var resp ProfileResponse + err := client.Invoke("GetLoginProfile", req, &resp) + if err != nil { + return ProfileResponse{}, err + } + return resp, nil +} + +func (client *RamClient) DeleteLoginProfile(req UserQueryRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("DeleteLoginProfile", req, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil +} + +func (client *RamClient) UpdateLoginProfile(req ProfileRequest) (ProfileResponse, error) { + var resp ProfileResponse + err := client.Invoke("UpdateLoginProfile", req, &resp) + if err != nil { + return ProfileResponse{}, err + } + return resp, nil } diff --git a/vendor/github.com/denverdino/aliyungo/ram/security.go b/vendor/github.com/denverdino/aliyungo/ram/security.go index da5f4a78e..5421ba0b9 100644 --- a/vendor/github.com/denverdino/aliyungo/ram/security.go +++ b/vendor/github.com/denverdino/aliyungo/ram/security.go @@ -22,19 +22,51 @@ type PasswordPolicyRequest struct { PasswordPolicy } -func (client *RamClient) SetAccountAlias(accountalias AccountAlias) (RamCommonResponse, error) { - return RamCommonResponse{}, nil +type AccountAliasRequest struct { + AccountAlias string +} + +func (client *RamClient) SetAccountAlias(accountalias AccountAliasRequest) (RamCommonResponse, error) { + var resp RamCommonResponse + err := client.Invoke("SetAccountAlias", accountalias, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil } func (client *RamClient) GetAccountAlias() (AccountAliasResponse, error) { - return AccountAliasResponse{}, nil + var resp AccountAliasResponse + err := client.Invoke("GetAccountAlias", struct{}{}, &resp) + if err != nil { + return AccountAliasResponse{}, err + } + return resp, nil } + func (client *RamClient) ClearAccountAlias() (RamCommonResponse, error) { - return RamCommonResponse{}, nil + var resp RamCommonResponse + err := client.Invoke("ClearAccountAlias", struct{}{}, &resp) + if err != nil { + return RamCommonResponse{}, err + } + return resp, nil } + func (client *RamClient) SetPasswordPolicy(passwordPolicy PasswordPolicyRequest) (PasswordPolicyResponse, error) { - return PasswordPolicyResponse{}, nil + var resp PasswordPolicyResponse + err := client.Invoke("SetPasswordPolicy", passwordPolicy, &resp) + if err != nil { + return PasswordPolicyResponse{}, err + } + return resp, nil } -func (client *RamClient) GetPasswordPolicy(accountAlias AccountAlias) (PasswordPolicyResponse, error) { - return PasswordPolicyResponse{}, nil + +func (client *RamClient) GetPasswordPolicy() (PasswordPolicyResponse, error) { + var resp PasswordPolicyResponse + err := client.Invoke("GetPasswordPolicy", struct{}{}, &resp) + if err != nil { + return PasswordPolicyResponse{}, err + } + return resp, nil } diff --git a/vendor/github.com/denverdino/aliyungo/ram/types.go b/vendor/github.com/denverdino/aliyungo/ram/types.go index 0a82b959c..c7bb91879 100644 --- a/vendor/github.com/denverdino/aliyungo/ram/types.go +++ b/vendor/github.com/denverdino/aliyungo/ram/types.go @@ -39,12 +39,21 @@ type User struct { } type LoginProfile struct { + UserName string + PasswordResetRequired bool + MFABindRequired bool } type MFADevice struct { + SerialNumber string } type VirtualMFADevice struct { + SerialNumber string + Base32StringSeed string + QRCodePNG string + ActivateDate string + User User } type AccessKey struct { @@ -55,6 +64,8 @@ type AccessKey struct { } type Group struct { + GroupName string + Comments string } type Role struct { @@ -77,6 +88,13 @@ type Policy struct { AttachmentCount int64 } +type PolicyVersion struct { + VersionId string + IsDefaultVersion bool + CreateDate string + PolicyDocument string +} + type PolicyDocument struct { Statement []PolicyItem Version string diff --git a/vendor/github.com/denverdino/aliyungo/slb/listeners.go b/vendor/github.com/denverdino/aliyungo/slb/listeners.go index dedc67588..4861abc1f 100644 --- a/vendor/github.com/denverdino/aliyungo/slb/listeners.go +++ b/vendor/github.com/denverdino/aliyungo/slb/listeners.go @@ -100,6 +100,7 @@ type HTTPListenerType struct { HealthCheckTimeout int HealthCheckInterval int HealthCheckHttpCode HealthCheckHttpCodeType + VServerGroup FlagType VServerGroupId string Gzip FlagType } @@ -144,6 +145,7 @@ type TCPListenerType struct { Bandwidth int Scheduler SchedulerType PersistenceTimeout int + HealthCheck FlagType HealthCheckType HealthCheckType HealthCheckDomain string HealthCheckURI string @@ -153,6 +155,7 @@ type TCPListenerType struct { HealthCheckConnectTimeout int HealthCheckInterval int HealthCheckHttpCode HealthCheckHttpCodeType + VServerGroup FlagType VServerGroupId string } @@ -174,11 +177,13 @@ type UDPListenerType struct { Bandwidth int Scheduler SchedulerType PersistenceTimeout int + HealthCheck FlagType HealthCheckConnectPort int HealthyThreshold int UnhealthyThreshold int HealthCheckConnectTimeout int HealthCheckInterval int + VServerGroup FlagType VServerGroupId string } type CreateLoadBalancerUDPListenerArgs UDPListenerType diff --git a/vendor/vendor.json b/vendor/vendor.json index e1719e3e4..3a5b35714 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -396,34 +396,34 @@ "revision": "6d212800a42e8ab5c146b8ace3490ee17e5225f9" }, { - "checksumSHA1": "4YIveqfMA1MH8oX8YMG7rDSl+ms=", + "checksumSHA1": "b2m7aICkBOz9JqmnX2kdDN4wgjI=", "path": "github.com/denverdino/aliyungo/common", - "revision": "920561accef9a3e387f10bf8f93be73d6bb55054", - "revisionTime": "2017-05-25T09:08:54Z" + "revision": "b8a81c0f54003ea306ef566807919955d639cd48", + "revisionTime": "2017-08-02T08:24:47Z" }, { - "checksumSHA1": "x4l/zVF/J4ibAH39pNrSvTnFsPI=", + "checksumSHA1": "5UYxIc/DZ5g0SM7qwXskoyNOc78=", "path": "github.com/denverdino/aliyungo/ecs", - "revision": "920561accef9a3e387f10bf8f93be73d6bb55054", - "revisionTime": "2017-05-25T09:08:54Z" + "revision": "b8a81c0f54003ea306ef566807919955d639cd48", + "revisionTime": "2017-08-02T08:24:47Z" }, { - "checksumSHA1": "40PbgN4Emct6AIiJbhPoEdd+vIA=", + "checksumSHA1": "VfIjW9Tf2eLmHrgrvk1wRnBaxTE=", "path": "github.com/denverdino/aliyungo/ram", - "revision": "920561accef9a3e387f10bf8f93be73d6bb55054", - "revisionTime": "2017-05-25T09:08:54Z" + "revision": "b8a81c0f54003ea306ef566807919955d639cd48", + "revisionTime": "2017-08-02T08:24:47Z" }, { - "checksumSHA1": "iZftKqx5jdcEaMJNJhrb5QwmMuc=", + "checksumSHA1": "pQHH9wpyS0e4wpW0erxe3D7OILM=", "path": "github.com/denverdino/aliyungo/slb", - "revision": "920561accef9a3e387f10bf8f93be73d6bb55054", - "revisionTime": "2017-05-25T09:08:54Z" + "revision": "b8a81c0f54003ea306ef566807919955d639cd48", + "revisionTime": "2017-08-02T08:24:47Z" }, { "checksumSHA1": "piZlmhWPLGxYkXLysTrjcXllO4c=", "path": "github.com/denverdino/aliyungo/util", - "revision": "920561accef9a3e387f10bf8f93be73d6bb55054", - "revisionTime": "2017-05-25T09:08:54Z" + "revision": "b8a81c0f54003ea306ef566807919955d639cd48", + "revisionTime": "2017-08-02T08:24:47Z" }, { "checksumSHA1": "D37uI+U+FYvTJIdG2TTozXe7i7U=",