update aliyun go sdk and enable multi sites support for alicloud

This commit is contained in:
zhuzhih2017 2017-08-04 09:56:04 +08:00
parent 8cf8079cad
commit 096a0cd4fb
32 changed files with 747 additions and 190 deletions

View file

@ -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

View file

@ -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": [{

View file

@ -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,

View file

@ -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"}]
}],

View file

@ -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"
}],

View file

@ -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"
}],

View file

@ -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()

View file

@ -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

View file

@ -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)

View file

@ -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
}

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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 (

View file

@ -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

View file

@ -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
}

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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
}

View file

@ -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)
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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

View file

@ -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

28
vendor/vendor.json vendored
View file

@ -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=",