go 连接阿里云ram

go 连接阿里云ram

connect.go

package ram

import (
   openapi "github.com/alibabacloud-go/darabonba-openapi/client"
   ram20150501 "github.com/alibabacloud-go/ram-20150501/client"
   "github.com/alibabacloud-go/tea/tea"
   "src/goProject1/config"
)

var (
   addr             string
   AccessKey_ID     string
   AccessKey_Secret string
   client           *ram20150501.Client
)

func init() {
   addr = "ram.aliyuncs.com"
   AccessKey_ID = config.ENV["alibaba_mq"]["AccessKey_ID"]
   AccessKey_Secret = config.ENV["alibaba_mq"]["AccessKey_Secret"]
   client, _ = CreateClient(tea.String(AccessKey_ID), tea.String(AccessKey_Secret))
   //_, _ = applyToken()
}

func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *ram20150501.Client, _err error) {
   config_ := &openapi.Config{
      // 您的AccessKey ID
      AccessKeyId: accessKeyId,
      // 您的AccessKey Secret
      AccessKeySecret: accessKeySecret,
   }
   // 访问的域名
   config_.Endpoint = tea.String(addr)
   _result = &ram20150501.Client{}
   _result, _err = ram20150501.NewClient(config_)
   return _result, _err
}

group.go

package ram

import (
   ram20150501 "github.com/alibabacloud-go/ram-20150501/client"
   "github.com/alibabacloud-go/tea/tea"
)

func CreateGroup(groupName, comments string) (*ram20150501.CreateGroupResponse, error) {
   createGroupRequest := &ram20150501.CreateGroupRequest{
      GroupName: tea.String(groupName),
      Comments:  tea.String(comments),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.CreateGroup(createGroupRequest)
}

func GetGroup(groupName string) (*ram20150501.GetGroupResponse, error) {
   getGroupRequest := &ram20150501.GetGroupRequest{
      GroupName: tea.String(groupName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.GetGroup(getGroupRequest)
}
func UpdateGroup(groupName, newGroupName, newComments string) (*ram20150501.UpdateGroupResponse, error) {
   updateGroupRequest := &ram20150501.UpdateGroupRequest{
      GroupName:    tea.String(groupName),
      NewGroupName: tea.String(newGroupName),
      NewComments:  tea.String(newComments),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.UpdateGroup(updateGroupRequest)
}

func ListGroupsWithNone() (*ram20150501.ListGroupsResponse, error) {
   listGroupsRequest := &ram20150501.ListGroupsRequest{}
   // 复制代码运行请自行打印 API 的返回值
   return client.ListGroups(listGroupsRequest)
}
func ListGroups(marker string, maxItems int32) (*ram20150501.ListGroupsResponse, error) {
   listGroupsRequest := &ram20150501.ListGroupsRequest{
      Marker:   tea.String(marker),
      MaxItems: tea.Int32(maxItems),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ListGroups(listGroupsRequest)
}

func AddUserToGroup(userName, groupName string) (*ram20150501.AddUserToGroupResponse, error) {
   addUserToGroupRequest := &ram20150501.AddUserToGroupRequest{
      UserName:  tea.String(userName),
      GroupName: tea.String(groupName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.AddUserToGroup(addUserToGroupRequest)
}

func RemoveUserFromGroup(userName, groupName string) (*ram20150501.RemoveUserFromGroupResponse, error) {
   removeUserFromGroupRequest := &ram20150501.RemoveUserFromGroupRequest{
      UserName:  tea.String(userName),
      GroupName: tea.String(groupName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.RemoveUserFromGroup(removeUserFromGroupRequest)
}

func ListGroupsForUser(userName string) (*ram20150501.ListGroupsForUserResponse, error) {
   listGroupsForUserRequest := &ram20150501.ListGroupsForUserRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ListGroupsForUser(listGroupsForUserRequest)
}

func ListUsersForGroup(groupName, marker string, maxItems int32) (*ram20150501.ListUsersForGroupResponse, error) {
   listUsersForGroupRequest := &ram20150501.ListUsersForGroupRequest{
      GroupName: tea.String(groupName),
      Marker:    tea.String(marker),
      MaxItems:  tea.Int32(maxItems),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ListUsersForGroup(listUsersForGroupRequest)
}

func ListUsersForGroupWithNone(groupName string) (*ram20150501.ListUsersForGroupResponse, error) {
   listUsersForGroupRequest := &ram20150501.ListUsersForGroupRequest{
      GroupName: tea.String(groupName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ListUsersForGroup(listUsersForGroupRequest)
}

func DeleteGroup(groupName string) (*ram20150501.DeleteGroupResponse, error) {
   deleteGroupRequest := &ram20150501.DeleteGroupRequest{
      GroupName: tea.String(groupName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.DeleteGroup(deleteGroupRequest)
}

role.go

package ram

import (
   ram20150501 "github.com/alibabacloud-go/ram-20150501/client"
   "github.com/alibabacloud-go/tea/tea"
)

func CreateRole(roleName, description, assumeRolePolicyDocument string, maxSessionDuration int64) (*ram20150501.CreateRoleResponse, error) {
   createRoleRequest := &ram20150501.CreateRoleRequest{
      //指定角色名。
      //长度为1~64个字符,可包含英文字母、数字、点号(.)和短横线(-)。
      RoleName: tea.String(roleName),
      //角色描述。
      //长度为1~1024个字符。
      Description: tea.String(description),
      //一个策略文本。指定允许扮演该角色的一个或多个主体,这个主体可以是阿里云账号、阿里云服务或身份提供商。
      //RAM用户不能扮演可信实体为阿里云服务的RAM角色。
      AssumeRolePolicyDocument: tea.String(assumeRolePolicyDocument),
      //角色最大会话时间。
      //取值范围:3600秒~43200秒。默认值:3600秒。
      //取值为空时将采用默认值。
      MaxSessionDuration: tea.Int64(maxSessionDuration),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.CreateRole(createRoleRequest)
}

func GetRole(roleName string) (*ram20150501.GetRoleResponse, error) {
   getRoleRequest := &ram20150501.GetRoleRequest{
      RoleName: tea.String(roleName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.GetRole(getRoleRequest)
}

func UpdateRole(roleName, newAssumeRolePolicyDocument string, newMaxSessionDuration int64) (*ram20150501.UpdateRoleResponse, error) {
   updateRoleRequest := &ram20150501.UpdateRoleRequest{
      RoleName:                    tea.String(roleName),
      NewAssumeRolePolicyDocument: tea.String(newAssumeRolePolicyDocument),
      NewMaxSessionDuration:       tea.Int64(newMaxSessionDuration),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.UpdateRole(updateRoleRequest)
}
func ListRoles(marker string, maxItems int32) (*ram20150501.ListRolesResponse, error) {
   listRolesRequest := &ram20150501.ListRolesRequest{
      Marker:   tea.String(marker),
      MaxItems: tea.Int32(maxItems),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ListRoles(listRolesRequest)
}
func ListRolesWithNone() (*ram20150501.ListRolesResponse, error) {
   listRolesRequest := &ram20150501.ListRolesRequest{}
   // 复制代码运行请自行打印 API 的返回值
   return client.ListRoles(listRolesRequest)
}
func DeleteRole(roleName string) (*ram20150501.DeleteRoleResponse, error) {
   deleteRoleRequest := &ram20150501.DeleteRoleRequest{
      RoleName: tea.String(roleName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.DeleteRole(deleteRoleRequest)
}

user.go

package ram

import (
   ram20150501 "github.com/alibabacloud-go/ram-20150501/client"
   "github.com/alibabacloud-go/tea/tea"
)

func GetRamUserName(userName, displayName, mobilePhone, email, comments string) string {
   res, err := GetUserInfo(userName)
   if err != nil {
      res2, err := CreateUser(userName, displayName, mobilePhone, email, comments)
      if err != nil {
         return ""
      }
      return *res2.Body.User.UserName
   }
   return *res.Body.User.UserName
}

func CreateUser(userName, displayName, mobilePhone, email, comments string) (*ram20150501.CreateUserResponse, error) {
   createUserRequest := &ram20150501.CreateUserRequest{
      UserName:    tea.String(userName),    //RAM用户名称
      DisplayName: tea.String(displayName), //RAM用户显示名称
      MobilePhone: tea.String(mobilePhone), //RAM用户的手机号
      Email:       tea.String(email),       //RAM用户的邮箱
      Comments:    tea.String(comments),    //备注
   }
   return client.CreateUser(createUserRequest)
}

func GetUserInfo(userName string) (*ram20150501.GetUserResponse, error) {
   getUserRequest := &ram20150501.GetUserRequest{
      UserName: tea.String(userName),
   }
   return client.GetUser(getUserRequest)
}

func UpdateUser(userName, newUserName, newDisplayName, newMobilePhone, newEmail, newComments string) (*ram20150501.UpdateUserResponse, error) {
   updateUserRequest := &ram20150501.UpdateUserRequest{
      UserName:       tea.String(userName),
      NewUserName:    tea.String(newUserName),
      NewDisplayName: tea.String(newDisplayName),
      NewMobilePhone: tea.String(newMobilePhone),
      NewEmail:       tea.String(newEmail),
      NewComments:    tea.String(newComments),
   }
   return client.UpdateUser(updateUserRequest)
}

func DeleteUser(userName string) (*ram20150501.DeleteUserResponse, error) {
   deleteUserRequest := &ram20150501.DeleteUserRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.DeleteUser(deleteUserRequest)
}

func ListUser(maker string, maxItems int32) (*ram20150501.ListUsersResponse, error) {
   listUsersRequest := &ram20150501.ListUsersRequest{
      Marker:   tea.String(maker),   //当请求的返回结果被截断时
      MaxItems: tea.Int32(maxItems), //返回结果的条数
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ListUsers(listUsersRequest)
}
func ListUserWithNone() (*ram20150501.ListUsersResponse, error) {
   listUsersRequest := &ram20150501.ListUsersRequest{}
   // 复制代码运行请自行打印 API 的返回值
   return client.ListUsers(listUsersRequest)
}

//为一个RAM用户启用Web控制台登录
func SetUserLoginProfile(userName, password string, passwordResetRequired, MFABindRequired bool) (*ram20150501.CreateLoginProfileResponse, error) {
   createLoginProfileRequest := &ram20150501.CreateLoginProfileRequest{
      UserName:              tea.String(userName),
      Password:              tea.String(password),
      PasswordResetRequired: tea.Bool(passwordResetRequired), // 指定用户在登录时是否需要修改密码。默认为:false。
      MFABindRequired:       tea.Bool(MFABindRequired),       //指定用户在下次登录时是否必须绑定多因素认证器。默认为:false
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.CreateLoginProfile(createLoginProfileRequest)
}

//查看一个RAM用户的登录配置
func GetUserLoginProfileInfo(userName string) (*ram20150501.GetLoginProfileResponse, error) {
   getLoginProfileRequest := &ram20150501.GetLoginProfileRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.GetLoginProfile(getLoginProfileRequest)
}

//关闭RAM用户登录Web控制台功能
func DeleteUserLoginProfile(userName string) (*ram20150501.DeleteLoginProfileResponse, error) {
   deleteLoginProfileRequest := &ram20150501.DeleteLoginProfileRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.DeleteLoginProfile(deleteLoginProfileRequest)
}

//修改用户的登录配置
func UpdateUserLoginProfile(userName, password string, passwordResetRequired, MFABindRequired bool) (*ram20150501.UpdateLoginProfileResponse, error) {
   updateLoginProfileRequest := &ram20150501.UpdateLoginProfileRequest{
      UserName:              tea.String(userName),
      Password:              tea.String(password),
      PasswordResetRequired: tea.Bool(passwordResetRequired),
      MFABindRequired:       tea.Bool(MFABindRequired),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.UpdateLoginProfile(updateLoginProfileRequest)
}

//为RAM用户创建访问密钥
func CreateUserLoginSecret(userName string) (*ram20150501.CreateAccessKeyResponse, error) {
   createAccessKeyRequest := &ram20150501.CreateAccessKeyRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.CreateAccessKey(createAccessKeyRequest)
}

//更新RAM用户访问密钥的状态
func UpdateUserLoginSecret(userName, userAccessKeyId, status string) (*ram20150501.UpdateAccessKeyResponse, error) {
   updateAccessKeyRequest := &ram20150501.UpdateAccessKeyRequest{
      UserName:        tea.String(userName),
      UserAccessKeyId: tea.String(userAccessKeyId),
      Status:          tea.String(status),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.UpdateAccessKey(updateAccessKeyRequest)
}

//删除RAM用户的访问密钥
func DeleteUserLoginSecret(userName, userAccessKeyId string) (*ram20150501.DeleteAccessKeyResponse, error) {
   deleteAccessKeyRequest := &ram20150501.DeleteAccessKeyRequest{
      UserName:        tea.String(userName),
      UserAccessKeyId: tea.String(userAccessKeyId),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.DeleteAccessKey(deleteAccessKeyRequest)
}

//列出指定用户的访问密钥
func ListUserLoginSecret(userName string) (*ram20150501.ListAccessKeysResponse, error) {
   listAccessKeysRequest := &ram20150501.ListAccessKeysRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ListAccessKeys(listAccessKeysRequest)
}

//创建多因素认证设备
func CreateVirtualMFADevice(virtualMFADeviceName string) (*ram20150501.CreateVirtualMFADeviceResponse, error) {
   createVirtualMFADeviceRequest := &ram20150501.CreateVirtualMFADeviceRequest{
      VirtualMFADeviceName: tea.String(virtualMFADeviceName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.CreateVirtualMFADevice(createVirtualMFADeviceRequest)
}

//列出多因素认证设备
func ListVirtualMFADevice() (*ram20150501.ListVirtualMFADevicesResponse, error) {
   return client.ListVirtualMFADevices()
}

//删除多因素认证设备
func DeleteVirtualMFADevice(serialNumber string) (*ram20150501.DeleteVirtualMFADeviceResponse, error) {
   deleteVirtualMFADeviceRequest := &ram20150501.DeleteVirtualMFADeviceRequest{
      SerialNumber: tea.String(serialNumber),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.DeleteVirtualMFADevice(deleteVirtualMFADeviceRequest)
}

//绑定多因素认证设备
func BindMFADevice(serialNumber, userName, authenticationCode1, authenticationCode2 string) (*ram20150501.BindMFADeviceResponse, error) {
   bindMFADeviceRequest := &ram20150501.BindMFADeviceRequest{
      SerialNumber:        tea.String(serialNumber),
      UserName:            tea.String(userName),
      AuthenticationCode1: tea.String(authenticationCode1),
      AuthenticationCode2: tea.String(authenticationCode2),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.BindMFADevice(bindMFADeviceRequest)
}

//解绑多因素认证设备
func UnbindMFADevice(userName string) (*ram20150501.UnbindMFADeviceResponse, error) {
   unbindMFADeviceRequest := &ram20150501.UnbindMFADeviceRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.UnbindMFADevice(unbindMFADeviceRequest)
}

//获取多因素认证设备信息
func GetUserMFAInfo(userName string) (*ram20150501.GetUserMFAInfoResponse, error) {
   getUserMFAInfoRequest := &ram20150501.GetUserMFAInfoRequest{
      UserName: tea.String(userName),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.GetUserMFAInfo(getUserMFAInfoRequest)
}

//修改RAM用户密码
func ChangePassword(oldPassword, newPassword string) (*ram20150501.ChangePasswordResponse, error) {
   changePasswordRequest := &ram20150501.ChangePasswordRequest{
      OldPassword: tea.String(oldPassword),
      NewPassword: tea.String(newPassword),
   }
   // 复制代码运行请自行打印 API 的返回值
   return client.ChangePassword(changePasswordRequest)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值