151 lines
5.4 KiB
Go
151 lines
5.4 KiB
Go
|
package sdk
|
||
|
|
||
|
import (
|
||
|
"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
|
||
|
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
|
||
|
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
|
||
|
"github.com/aliyun/alibaba-cloud-sdk-go/services/kms"
|
||
|
dedicatedkmsopenapi "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/openapi"
|
||
|
dedicatedkmssdk "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/sdk"
|
||
|
)
|
||
|
|
||
|
type KmsTransferClient struct {
|
||
|
*kms.Client
|
||
|
dkmsClient *dedicatedkmssdk.Client
|
||
|
isUseKmsShareGateway bool
|
||
|
Verify string
|
||
|
}
|
||
|
|
||
|
func (client *KmsTransferClient) SetVerify(v string) {
|
||
|
client.Verify = v
|
||
|
}
|
||
|
|
||
|
func NewClientWithProvider(regionId string, dkmsConfig *dedicatedkmsopenapi.Config, providers ...provider.Provider) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithProvider(regionId, providers...)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
func NewClientWithOptions(regionId string, kmsConfig *sdk.Config, credential auth.Credential, dkmsConfig *dedicatedkmsopenapi.Config) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithOptions(regionId, kmsConfig, credential)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string, dkmsConfig *dedicatedkmsopenapi.Config) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string, dkmsConfig *dedicatedkmsopenapi.Config) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string, dkmsConfig *dedicatedkmsopenapi.Config) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string, dkmsConfig *dedicatedkmsopenapi.Config) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewClientWithEcsRamRole(regionId string, roleName string, dkmsConfig *dedicatedkmsopenapi.Config) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithEcsRamRole(regionId, roleName)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int, dkmsConfig *dedicatedkmsopenapi.Config) (*KmsTransferClient, error) {
|
||
|
kmsClient, err := kms.NewClientWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if dkmsConfig != nil {
|
||
|
dkmsClient, err := dedicatedkmssdk.NewClient(dkmsConfig)
|
||
|
if err != nil {
|
||
|
return nil, TransferTeaErrorClientError(err)
|
||
|
}
|
||
|
return &KmsTransferClient{Client: kmsClient, dkmsClient: dkmsClient}, nil
|
||
|
} else {
|
||
|
return &KmsTransferClient{Client: kmsClient, isUseKmsShareGateway: true}, nil
|
||
|
}
|
||
|
}
|