mirror of
https://github.com/certimate-go/certimate.git
synced 2026-09-24 23:10:13 +08:00
refactor: lightweight alibaba vendor packages
This commit is contained in:
@@ -11,29 +11,36 @@ require (
|
||||
github.com/G-Core/gcorelabscdn-go v1.0.35
|
||||
github.com/KscSDK/ksc-sdk-go v0.14.0
|
||||
github.com/akamai/AkamaiOPEN-edgegrid-golang/v11 v11.1.0
|
||||
github.com/alibabacloud-go/alb-20200616/v2 v2.2.9
|
||||
github.com/alibabacloud-go/apig-20240327/v5 v5.0.1
|
||||
github.com/alibabacloud-go/alb-20200616/v2 v2.2.10
|
||||
github.com/alibabacloud-go/apig-20240327/v5 v5.0.3
|
||||
github.com/alibabacloud-go/cas-20200407/v4 v4.0.3
|
||||
github.com/alibabacloud-go/cdn-20180510/v8 v8.0.2
|
||||
github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.7
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.13
|
||||
github.com/alibabacloud-go/dcdn-20180115/v4 v4.0.0
|
||||
github.com/alibabacloud-go/ddoscoo-20200101/v4 v4.0.4
|
||||
github.com/alibabacloud-go/esa-20240910/v2 v2.39.2
|
||||
github.com/alibabacloud-go/esa-20240910/v2 v2.40.1
|
||||
github.com/alibabacloud-go/fc-20230330/v4 v4.6.3
|
||||
github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12
|
||||
github.com/alibabacloud-go/ga-20191120/v3 v3.1.8
|
||||
github.com/alibabacloud-go/live-20161101/v2 v2.3.0
|
||||
github.com/alibabacloud-go/nlb-20220430/v4 v4.1.0
|
||||
github.com/alibabacloud-go/openapi-util v0.1.1
|
||||
github.com/alibabacloud-go/slb-20140515/v4 v4.0.10
|
||||
github.com/alibabacloud-go/tea v1.3.13
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.7
|
||||
github.com/alibabacloud-go/vod-20170321/v4 v4.10.0
|
||||
github.com/alibabacloud-go/waf-openapi-20211001/v6 v6.7.0
|
||||
github.com/alibabacloud-go/waf-openapi-20211001/v7 v7.0.0
|
||||
github.com/aliyun/alibabacloud-oss-go-sdk-v2 v1.3.0
|
||||
github.com/aws/aws-sdk-go-v2/service/acm v1.37.10
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.55.3
|
||||
github.com/aws/aws-sdk-go-v2 v1.39.6
|
||||
github.com/aws/aws-sdk-go-v2/config v1.31.17
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.21
|
||||
github.com/aws/aws-sdk-go-v2/service/acm v1.37.11
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.56.0
|
||||
github.com/aws/aws-sdk-go-v2/service/iam v1.49.1
|
||||
github.com/baidubce/bce-sdk-go v0.9.250
|
||||
github.com/byteplus-sdk/byteplus-sdk-golang v1.0.58
|
||||
github.com/domodwyer/mailyak/v3 v3.6.2
|
||||
github.com/go-acme/lego/v4 v4.28.0
|
||||
github.com/go-cmd/cmd v1.4.3
|
||||
github.com/go-resty/resty/v2 v2.16.5
|
||||
@@ -51,6 +58,8 @@ require (
|
||||
github.com/povsister/scp v0.0.0-20250701154629-777cf82de5df
|
||||
github.com/qiniu/go-sdk/v7 v7.25.4
|
||||
github.com/samber/lo v1.52.0
|
||||
github.com/spf13/cobra v1.10.1
|
||||
github.com/spf13/pflag v1.0.10
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.1.47
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.1.28
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.48
|
||||
@@ -69,6 +78,8 @@ require (
|
||||
gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1
|
||||
gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0
|
||||
golang.org/x/crypto v0.43.0
|
||||
golang.org/x/sync v0.18.0
|
||||
golang.org/x/sys v0.38.0
|
||||
k8s.io/api v0.34.1
|
||||
k8s.io/apimachinery v0.34.1
|
||||
k8s.io/client-go v0.34.1
|
||||
@@ -83,11 +94,6 @@ require (
|
||||
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 // indirect
|
||||
github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7 // indirect
|
||||
github.com/alibabacloud-go/openplatform-20191219/v2 v2.0.1 // indirect
|
||||
github.com/alibabacloud-go/tea-fileform v1.1.1 // indirect
|
||||
github.com/alibabacloud-go/tea-oss-sdk v1.1.5 // indirect
|
||||
github.com/alibabacloud-go/tea-oss-utils v1.1.0 // indirect
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.7 // indirect
|
||||
github.com/avast/retry-go v3.0.0+incompatible // indirect
|
||||
github.com/aws/aws-sdk-go v1.40.45 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/route53 v1.59.1 // indirect
|
||||
@@ -170,32 +176,24 @@ require (
|
||||
require (
|
||||
github.com/BurntSushi/toml v1.5.0 // indirect
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect
|
||||
github.com/alibabacloud-go/dcdn-20180115/v3 v3.5.0
|
||||
github.com/alibabacloud-go/debug v1.0.1 // indirect
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.1 // indirect
|
||||
github.com/alibabacloud-go/openapi-util v0.1.1 // indirect
|
||||
github.com/alibabacloud-go/tea-utils v1.4.5 // indirect
|
||||
github.com/alibabacloud-go/tea-xml v1.1.3 // indirect
|
||||
github.com/aliyun/credentials-go v1.4.7 // indirect
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2 v1.39.5
|
||||
github.com/aws/aws-sdk-go-v2/config v1.31.15
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.19
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.38.9 // indirect
|
||||
github.com/aws/smithy-go v1.23.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 // indirect
|
||||
github.com/aws/smithy-go v1.23.2 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||
github.com/clbanning/mxj/v2 v2.7.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/disintegration/imaging v1.6.2 // indirect
|
||||
github.com/domodwyer/mailyak/v3 v3.6.2
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/fatih/color v1.18.0 // indirect
|
||||
github.com/gabriel-vasile/mimetype v1.4.10 // indirect
|
||||
@@ -203,7 +201,7 @@ require (
|
||||
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
|
||||
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect
|
||||
github.com/google/go-querystring v1.1.0 // indirect
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
|
||||
@@ -217,15 +215,11 @@ require (
|
||||
github.com/nrdcg/namesilo v0.5.0 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/spf13/cast v1.10.0 // indirect
|
||||
github.com/spf13/cobra v1.10.1
|
||||
github.com/spf13/pflag v1.0.10
|
||||
github.com/tjfoc/gmsm v1.4.1 // indirect
|
||||
golang.org/x/image v0.32.0 // indirect
|
||||
golang.org/x/mod v0.29.0 // indirect
|
||||
golang.org/x/net v0.46.0 // indirect
|
||||
golang.org/x/oauth2 v0.32.0 // indirect
|
||||
golang.org/x/sync v0.17.0
|
||||
golang.org/x/sys v0.37.0
|
||||
golang.org/x/term v0.36.0 // indirect
|
||||
golang.org/x/text v0.30.0 // indirect
|
||||
golang.org/x/time v0.14.0 // indirect
|
||||
|
||||
@@ -89,8 +89,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
|
||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
||||
github.com/alex-ant/gomath v0.0.0-20160516115720-89013a210a82/go.mod h1:nLnM0KdK1CmygvjpDUO6m1TjSsiQtL61juhNsvV/JVI=
|
||||
github.com/alibabacloud-go/alb-20200616/v2 v2.2.9 h1:0pEYgxbkQiXOLKhkCBHPnTEl4X1Ahkoo45qMcyElm+U=
|
||||
github.com/alibabacloud-go/alb-20200616/v2 v2.2.9/go.mod h1:7revp3b2AHMZq+8GhU+WMFCwqbHC2KSvEDPeAzmTdY0=
|
||||
github.com/alibabacloud-go/alb-20200616/v2 v2.2.10 h1:6HQJJtav8jevxVyQliQ41LApZfnJ6B/hVtVUhLGO4eI=
|
||||
github.com/alibabacloud-go/alb-20200616/v2 v2.2.10/go.mod h1:pwbMBl7ZWziOD2cRingbtJcf5q1YrmgA+/jcnsycBjM=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7 h1:RDatRb9RG39HjkevgzTeiVoDDaamoB+12GHNairp3Ag=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7/go.mod h1:H0RPHXHP/ICfEQrKzQcCqXI15jcV4zaDPCOAmh3U9O8=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6 h1:eIf+iGJxdU4U9ypaUfbtOWCsZSbTb8AUHvyPrxu6mAA=
|
||||
@@ -98,8 +98,8 @@ github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6/go.mod h1:4EUIoxs/do2
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 h1:zE8vH9C7JiZLNJJQ5OwjU9mSi4T9ef9u3BURT6LCLC8=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5/go.mod h1:tWnyE9AjF8J8qqLk645oUmVUnFybApTQWklQmi5tY6g=
|
||||
github.com/alibabacloud-go/apig-20240327/v5 v5.0.1 h1:2Oar/WXh9JNCPdwXXkuomcUOQ5W526G1s/WUaxbsqDA=
|
||||
github.com/alibabacloud-go/apig-20240327/v5 v5.0.1/go.mod h1:9M9nutBGX1LK/W1U4zOAPZrn9Bigf3ZP3ToR9Dl8Xoc=
|
||||
github.com/alibabacloud-go/apig-20240327/v5 v5.0.3 h1:TkLXb8oWBTCdt29+xkkFRpBQhaxL1Rqlc8kltXB7uyo=
|
||||
github.com/alibabacloud-go/apig-20240327/v5 v5.0.3/go.mod h1:9M9nutBGX1LK/W1U4zOAPZrn9Bigf3ZP3ToR9Dl8Xoc=
|
||||
github.com/alibabacloud-go/cas-20200407/v4 v4.0.3 h1:dGM9+DZwb1bnMgxBlI4SvRlnI7r9lr3Zi6cI0zt8uWM=
|
||||
github.com/alibabacloud-go/cas-20200407/v4 v4.0.3/go.mod h1:Kh6ECWAcOACsfBFHkHtKNgdtybfOaPIejX7ot7XNWIc=
|
||||
github.com/alibabacloud-go/cdn-20180510/v8 v8.0.2 h1:IAkEE7tlPQ+G89fNOEv6fHMpLsgOys48rd5TupbEYZI=
|
||||
@@ -112,11 +112,9 @@ github.com/alibabacloud-go/darabonba-encode-util v0.0.2 h1:1uJGrbsGEVqWcWxrS9MyC
|
||||
github.com/alibabacloud-go/darabonba-encode-util v0.0.2/go.mod h1:JiW9higWHYXm7F4PKuMgEUETNZasrDM6vqVr/Can7H8=
|
||||
github.com/alibabacloud-go/darabonba-map v0.0.2 h1:qvPnGB4+dJbJIxOOfawxzF3hzMnIpjmafa0qOTp6udc=
|
||||
github.com/alibabacloud-go/darabonba-map v0.0.2/go.mod h1:28AJaX8FOE/ym8OUFWga+MtEzBunJwQGceGQlvaPGPc=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.0/go.mod h1:5JHVmnHvGzR2wNdgaW1zDLQG8kOC4Uec8ubkMogW7OQ=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.5/go.mod h1:kUe8JqFmoVU7lfBauaDD5taFaW7mBI+xVsyHutYtabg=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.9/go.mod h1:bb+Io8Sn2RuM3/Rpme6ll86jMyFSrD1bxeV/+v61KeU=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10/go.mod h1:26a14FGhZVELuz2cc2AolvW4RHmIO3/HRwsdHhaIPDE=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.11/go.mod h1:wHxkgZT1ClZdcwEVP/pDgYK/9HucsnCfMipmJgCz4xY=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.9/go.mod h1:kgnXaV74AVjM3ZWJu1GhyXGuCtxljJ677oUfz6MyJOE=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.10/go.mod h1:kgnXaV74AVjM3ZWJu1GhyXGuCtxljJ677oUfz6MyJOE=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.11/go.mod h1:ue0+WkdPxpCB2JP3iaG4Iawayxp72kyT5uDbozQKaW8=
|
||||
@@ -127,8 +125,8 @@ github.com/alibabacloud-go/darabonba-signature-util v0.0.7 h1:UzCnKvsjPFzApvODDN
|
||||
github.com/alibabacloud-go/darabonba-signature-util v0.0.7/go.mod h1:oUzCYV2fcCH797xKdL6BDH8ADIHlzrtKVjeRtunBNTQ=
|
||||
github.com/alibabacloud-go/darabonba-string v1.0.2 h1:E714wms5ibdzCqGeYJ9JCFywE5nDyvIXIIQbZVFkkqo=
|
||||
github.com/alibabacloud-go/darabonba-string v1.0.2/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA=
|
||||
github.com/alibabacloud-go/dcdn-20180115/v3 v3.5.0 h1:EQmKhYju6y38kJ1ZvZROeJG2Q1Wk6hlc8KQrVhvGyaw=
|
||||
github.com/alibabacloud-go/dcdn-20180115/v3 v3.5.0/go.mod h1:b9qzvr/2V1f0r1Z6xUmkLqEouKcPGy4LCC22yV+6HQo=
|
||||
github.com/alibabacloud-go/dcdn-20180115/v4 v4.0.0 h1:Ad7MrfPJGfB0RX+88U0u/TNP7W06nvU+rn6YsS0TUR0=
|
||||
github.com/alibabacloud-go/dcdn-20180115/v4 v4.0.0/go.mod h1:+cjW21VCRz/IQv/gdbHW6CBhR1mZzPFoXVdUp4ZCgIo=
|
||||
github.com/alibabacloud-go/ddoscoo-20200101/v4 v4.0.4 h1:7QCjt29gSpdF1/BXto4GJLozAshNPbR6Obo/8pXlao4=
|
||||
github.com/alibabacloud-go/ddoscoo-20200101/v4 v4.0.4/go.mod h1:EXd820TvsKZyYHxdkkAtPFqS5Cjp3zAmKxQ9yZ4YLCk=
|
||||
github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY=
|
||||
@@ -138,8 +136,8 @@ github.com/alibabacloud-go/debug v1.0.1/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/ql
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
|
||||
github.com/alibabacloud-go/esa-20240910/v2 v2.39.2 h1:sMirucmOGBacxGdMPNYlr0XJneV+8Z18EkAyEnioIQU=
|
||||
github.com/alibabacloud-go/esa-20240910/v2 v2.39.2/go.mod h1:JC3mQdUf5taJpmyaPbBqlWGnYZTKlc6iCHWo/xIslP8=
|
||||
github.com/alibabacloud-go/esa-20240910/v2 v2.40.1 h1:pDaECbhFsMZIUIxz6sRnB6xET38BUD2ge5W1qWhcdzI=
|
||||
github.com/alibabacloud-go/esa-20240910/v2 v2.40.1/go.mod h1:udjpsOYX8iBicJtu5YcXp5cd69rfXCap1cGAoosXxNo=
|
||||
github.com/alibabacloud-go/fc-20230330/v4 v4.6.3 h1:OcStT72BGdgf0pov2iUvCcnCrq0MkYdiLXWpXIgd6Kc=
|
||||
github.com/alibabacloud-go/fc-20230330/v4 v4.6.3/go.mod h1:OzdLxJQl4D5dsXKZQZubEZoqYL68M++hyD6n1qIsMHM=
|
||||
github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12 h1:A3D8Mp6qf8DfR6Dt5MpS8aDVaWfS4N85T5CvGUvgrjM=
|
||||
@@ -150,22 +148,16 @@ github.com/alibabacloud-go/live-20161101/v2 v2.3.0 h1:ApGoDlqh05wG8AIWUCCBZT3Mzx
|
||||
github.com/alibabacloud-go/live-20161101/v2 v2.3.0/go.mod h1:1BN//Z4vOkdEplf0pWcpF1GuIqaPJOwYuPCShljY+nI=
|
||||
github.com/alibabacloud-go/nlb-20220430/v4 v4.1.0 h1:iuoiJUMz0SUWbLxZdyp/IdbtGKuniftnV776FUwMEyU=
|
||||
github.com/alibabacloud-go/nlb-20220430/v4 v4.1.0/go.mod h1:OxNPeLl4eV3s2ZoMcuUoI9sSzwe03n4N9UmQH1H3SUw=
|
||||
github.com/alibabacloud-go/openapi-util v0.0.11/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.1 h1:ujGErJjG8ncRW6XtBBMphzHTvCxn4DjrVw4m04HsS28=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.1/go.mod h1:/UehBSE2cf1gYT43GV4E+RxTdLRzURImCYY0aRmlXpw=
|
||||
github.com/alibabacloud-go/openplatform-20191219/v2 v2.0.1 h1:L0TIjr9Qh/SLVc1yPhFkcB9+9SbCNK/jPq4ZKB5zmnc=
|
||||
github.com/alibabacloud-go/openplatform-20191219/v2 v2.0.1/go.mod h1:EKxBRDLcMzwl4VLF/1WJwlByZZECJawPXUvinKMsTTs=
|
||||
github.com/alibabacloud-go/slb-20140515/v4 v4.0.10 h1:ppAt0BUr8hPyp9aCP+fV1KTKclbr/QRqFCSjCPFVXTE=
|
||||
github.com/alibabacloud-go/slb-20140515/v4 v4.0.10/go.mod h1:N1z4uYIL1DcWrrsIq5r552RlAoarl2zmaPKChoG+UA0=
|
||||
github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg=
|
||||
github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.10/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.11/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.12/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.17/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
|
||||
github.com/alibabacloud-go/tea v1.1.19/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
|
||||
github.com/alibabacloud-go/tea v1.1.20/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
|
||||
github.com/alibabacloud-go/tea v1.2.1/go.mod h1:qbzof29bM/IFhLMtJPrgTGK3eauV5J2wSyEUo4OEmnA=
|
||||
github.com/alibabacloud-go/tea v1.2.2/go.mod h1:CF3vOzEMAG+bR4WOql8gc2G9H3EkH3ZLAQdpmpXMgwk=
|
||||
@@ -174,31 +166,17 @@ github.com/alibabacloud-go/tea v1.3.11/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT
|
||||
github.com/alibabacloud-go/tea v1.3.12/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg=
|
||||
github.com/alibabacloud-go/tea v1.3.13 h1:WhGy6LIXaMbBM6VBYcsDCz6K/TPsT1Ri2hPmmZffZ94=
|
||||
github.com/alibabacloud-go/tea v1.3.13/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg=
|
||||
github.com/alibabacloud-go/tea-fileform v1.1.1 h1:1YG6erAP3joQ0XdCXYIotuD7zyOM6qCR49xkp5FZDeU=
|
||||
github.com/alibabacloud-go/tea-fileform v1.1.1/go.mod h1:ZeCV91o4ISmxidd686f0ebdS5EDHWU+vW+TkjLhrsFE=
|
||||
github.com/alibabacloud-go/tea-oss-sdk v1.1.3/go.mod h1:yUnodpR3Bf2rudLE7V/Gft5txjJF30Pk+hH77K/Eab0=
|
||||
github.com/alibabacloud-go/tea-oss-sdk v1.1.5 h1:CFUFcqanvBaoGN/CyTHUZrVNtFZd1WTjem46m0HTTV0=
|
||||
github.com/alibabacloud-go/tea-oss-sdk v1.1.5/go.mod h1:5fhlKMa/kWRJNgPYRt+5qSg3UidRvNbf9Z2bI8Dp5/s=
|
||||
github.com/alibabacloud-go/tea-oss-utils v1.1.0 h1:y65crjjcZ2Pbb6UZtC2deuIZHDVTS3IaDWE7M9nVLRc=
|
||||
github.com/alibabacloud-go/tea-oss-utils v1.1.0/go.mod h1:PFCF12e9yEKyBUIn7X1IrF/pNjvxgkHy0CgxX4+xRuY=
|
||||
github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
|
||||
github.com/alibabacloud-go/tea-utils v1.3.6/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
|
||||
github.com/alibabacloud-go/tea-utils v1.4.5 h1:h0/6Xd2f3bPE4XHTvkpjwxowIwRCJAJOqY6Eq8f3zfA=
|
||||
github.com/alibabacloud-go/tea-utils v1.4.5/go.mod h1:KNcT0oXlZZxOXINnZBs6YvgOd5aYp9U67G+E3R8fcQw=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.0/go.mod h1:U5MTY10WwlquGPS34DOeomUGBB0gXbLueiq5Trwu0C4=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.4/go.mod h1:sj1PbjPodAVTqGTA3olprfeeqqmwD0A5OQz94o9EuXQ=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.5/go.mod h1:dL6vbUT35E4F4bFTHL845eUloqaerYBYPsdWR2/jhe4=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.6/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.7 h1:WDx5qW3Xa5ZgJ1c8NfqJkF6w+AU5wB8835UdhPr6Ax0=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.7/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
|
||||
github.com/alibabacloud-go/tea-xml v1.1.1/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
|
||||
github.com/alibabacloud-go/tea-xml v1.1.2/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
|
||||
github.com/alibabacloud-go/tea-xml v1.1.3 h1:7LYnm+JbOq2B+T/B0fHC4Ies4/FofC4zHzYtqw7dgt0=
|
||||
github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
|
||||
github.com/alibabacloud-go/vod-20170321/v4 v4.10.0 h1:e28BNu9IRhCtHI5HA+2ZRG4r9SDftAyp258q9py2tRU=
|
||||
github.com/alibabacloud-go/vod-20170321/v4 v4.10.0/go.mod h1:IkHD+fJL2oWvs9oxyp5Dc651AO5eptIP5PRsH0ofraA=
|
||||
github.com/alibabacloud-go/waf-openapi-20211001/v6 v6.7.0 h1:PBX4pFYXV8Ey+QKJYV3G0AC7X926jTFG2zVd5gRkCL4=
|
||||
github.com/alibabacloud-go/waf-openapi-20211001/v6 v6.7.0/go.mod h1:Pi1XJ9yMR6weUxPMDqVaT+mhHeeSPRdMZh2fl4VCKLs=
|
||||
github.com/alibabacloud-go/waf-openapi-20211001/v7 v7.0.0 h1:aPnkOUr3x2EKzTrN3trLOpfKV8bE53bL+FmUVukudpY=
|
||||
github.com/alibabacloud-go/waf-openapi-20211001/v7 v7.0.0/go.mod h1:7ZBhmAzHNEZs2sS6mn0ojKkFsMe0FSOZoHOp36Hx5jo=
|
||||
github.com/aliyun/alibabacloud-oss-go-sdk-v2 v1.3.0 h1:wQlqotpyjYPjJz+Noh5bRu7Snmydk8SKC5Z6u1CR20Y=
|
||||
github.com/aliyun/alibabacloud-oss-go-sdk-v2 v1.3.0/go.mod h1:FTzydeQVmR24FI0D6XWUOMKckjXehM/jgMn1xC+DA9M=
|
||||
github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
|
||||
@@ -206,7 +184,6 @@ github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTs
|
||||
github.com/aliyun/credentials-go v1.3.6/go.mod h1:1LxUuX7L5YrZUWzBrRyk0SwSdH4OmPrib8NVePL3fxM=
|
||||
github.com/aliyun/credentials-go v1.3.10/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U=
|
||||
github.com/aliyun/credentials-go v1.4.5/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U=
|
||||
github.com/aliyun/credentials-go v1.4.6/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U=
|
||||
github.com/aliyun/credentials-go v1.4.7 h1:T17dLqEtPUFvjDRRb5giVvLh6dFT8IcNFJJb7MeyCxw=
|
||||
github.com/aliyun/credentials-go v1.4.7/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U=
|
||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||
@@ -224,42 +201,42 @@ github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN
|
||||
github.com/aws/aws-sdk-go v1.40.45 h1:QN1nsY27ssD/JmW4s83qmSb+uL6DG4GmCDzjmJB4xUI=
|
||||
github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
|
||||
github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
|
||||
github.com/aws/aws-sdk-go-v2 v1.39.5 h1:e/SXuia3rkFtapghJROrydtQpfQaaUgd1cUvyO1mp2w=
|
||||
github.com/aws/aws-sdk-go-v2 v1.39.5/go.mod h1:yWSxrnioGUZ4WVv9TgMrNUeLV3PFESn/v+6T/Su8gnM=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.31.15 h1:gE3M4xuNXfC/9bG4hyowGm/35uQTi7bUKeYs5e/6uvU=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.31.15/go.mod h1:HvnvGJoE2I95KAIW8kkWVPJ4XhdrlvwJpV6pEzFQa8o=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.19 h1:Jc1zzwkSY1QbkEcLujwqRTXOdvW8ppND3jRBb/VhBQc=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.19/go.mod h1:DIfQ9fAk5H0pGtnqfqkbSIzky82qYnGvh06ASQXXg6A=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 h1:X7X4YKb+c0rkI6d4uJ5tEMxXgCZ+jZ/D6mvkno8c8Uw=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11/go.mod h1:EqM6vPZQsZHYvC4Cai35UDg/f5NCEU+vp0WfbVqVcZc=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12 h1:p/9flfXdoAnwJnuW9xHEAFY22R3A6skYkW19JFF9F+8=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12/go.mod h1:ZTLHakoVCTtW8AaLGSwJ3LXqHD9uQKnOcv1TrpO6u2k=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12 h1:2lTWFvRcnWFFLzHWmtddu5MTchc5Oj2OOey++99tPZ0=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12/go.mod h1:hI92pK+ho8HVcWMHKHrK3Uml4pfG7wvL86FzO0LVtQQ=
|
||||
github.com/aws/aws-sdk-go-v2 v1.39.6 h1:2JrPCVgWJm7bm83BDwY5z8ietmeJUbh3O2ACnn+Xsqk=
|
||||
github.com/aws/aws-sdk-go-v2 v1.39.6/go.mod h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.31.17 h1:QFl8lL6RgakNK86vusim14P2k8BFSxjvUkcWLDjgz9Y=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.31.17/go.mod h1:V8P7ILjp/Uef/aX8TjGk6OHZN6IKPM5YW6S78QnRD5c=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.21 h1:56HGpsgnmD+2/KpG0ikvvR8+3v3COCwaF4r+oWwOeNA=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.21/go.mod h1:3YELwedmQbw7cXNaII2Wywd+YY58AmLPwX4LzARgmmA=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 h1:T1brd5dR3/fzNFAQch/iBKeX07/ffu/cLu+q+RuzEWk=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13/go.mod h1:Peg/GBAQ6JDt+RoBf4meB1wylmAipb7Kg2ZFakZTlwk=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 h1:a+8/MLcWlIxo1lF9xaGt3J/u3yOZx+CdSveSNwjhD40=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13/go.mod h1:oGnKwIYZ4XttyU2JWxFrwvhF6YKiK/9/wmE3v3Iu9K8=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 h1:HBSI2kDkMdWz4ZM7FjwE7e/pWDEZ+nR95x8Ztet1ooY=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13/go.mod h1:YE94ZoDArI7awZqJzBAZ3PDD2zSfuP7w6P2knOzIn8M=
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
|
||||
github.com/aws/aws-sdk-go-v2/service/acm v1.37.10 h1:kORfSAFKQJuV+86FiEzSG4yDVPSBTPL2hcNdUHiTfjw=
|
||||
github.com/aws/aws-sdk-go-v2/service/acm v1.37.10/go.mod h1:socc8VxK7qg7mAEMa192VhUkNsikgtzsWHpAGGfSbfE=
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.55.3 h1:I1cy4m75ZT4A1pOdIS9gRiJ3Sp3oAQDnoSr7FdH0cWw=
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.55.3/go.mod h1:af/zNle59yEZVwKlGorGjIYteuW2QkFKIli28DsM26g=
|
||||
github.com/aws/aws-sdk-go-v2/service/acm v1.37.11 h1:oQgvxk0+83+EVZYsea3QysBDcrXffPG4UcnBfI2XD7M=
|
||||
github.com/aws/aws-sdk-go-v2/service/acm v1.37.11/go.mod h1:v8E4cAu0qIxpS7IokQilQb60A8IODPxo82VxVtJ+Dgo=
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.56.0 h1:MhbMTYraEw+I/l258s/aGqJOFdKkdcgBJr1NrydMlBw=
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.56.0/go.mod h1:UtP1sSXq2FHHO7Lvn4mNplFS4x7oP4+uMIJIQ8+3JyY=
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o=
|
||||
github.com/aws/aws-sdk-go-v2/service/iam v1.49.1 h1:eTd/dueph9k4ZPn2s2uMmzDrBpwtRchhVxYk4ZT7SDU=
|
||||
github.com/aws/aws-sdk-go-v2/service/iam v1.49.1/go.mod h1:OZUVTVNvBruorgXsEUctXiCDdmho+pY+l5O1P3JtKxY=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 h1:xtuxji5CS0JknaXoACOunXOYOQzgfTvGAc9s2QdCJA4=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2/go.mod h1:zxwi0DIR0rcRcgdbl7E2MSOvxDyyXGBlScvBkARFaLQ=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 h1:GpMf3z2KJa4RnJ0ew3Hac+hRFYLZ9DDjfgXjuW+pB54=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11/go.mod h1:6MZP3ZI4QQsgUCFTwMZA2V0sEriNQ8k2hmoHF3qjimQ=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg=
|
||||
github.com/aws/aws-sdk-go-v2/service/route53 v1.59.1 h1:KuoA/cmy/yK8n9v/d6WH36cZwGxFOrn0TmZ4lNN3MKQ=
|
||||
github.com/aws/aws-sdk-go-v2/service/route53 v1.59.1/go.mod h1:BymbICXBfXQHO6i+yTBhocA9a6DM0uMDQqYelqa9wzs=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 h1:M5nimZmugcZUO9wG7iVtROxPhiqyZX6ejS1lxlDPbTU=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.29.8/go.mod h1:mbef/pgKhtKRwrigPPs7SSSKZgytzP8PQ6P6JAAdqyM=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 h1:S5GuJZpYxE0lKeMHKn+BRTz6PTFpgThyJ+5mYfux7BM=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3/go.mod h1:X4OF+BTd7HIb3L+tc4UlWHVrpgwZZIVENU15pRDVTI0=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.38.9 h1:Ekml5vGg6sHSZLZJQJagefnVe6PmqC2oiRkBq4F7fU0=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.38.9/go.mod h1:/e15V+o1zFHWdH3u7lpI3rVBcxszktIKuHKCY2/py+k=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 h1:0JPwLz1J+5lEOfy/g0SURC9cxhbQ1lIMHMa+AHZSzz0=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.1/go.mod h1:fKvyjJcz63iL/ftA6RaM8sRCtN4r4zl4tjL3qw5ec7k=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 h1:OWs0/j2UYR5LOGi88sD5/lhN6TDLG6SfA7CqsQO9zF0=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5/go.mod h1:klO+ejMvYsB4QATfEOIXk8WAEwN4N0aBfJpvC+5SZBo=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 h1:mLlUgHn02ue8whiR4BmxxGJLR2gwU6s6ZzJ5wDamBUs=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.39.1/go.mod h1:E19xDjpzPZC7LS2knI9E6BaRFDK43Eul7vd6rSq2HWk=
|
||||
github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
|
||||
github.com/aws/smithy-go v1.23.1 h1:sLvcH6dfAFwGkHLZ7dGiYF7aK6mg4CgKA/iDKjLDt9M=
|
||||
github.com/aws/smithy-go v1.23.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
|
||||
github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM=
|
||||
github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
|
||||
github.com/baidubce/bce-sdk-go v0.9.250 h1:fnvV5clsNCAP6pCauj0eNaUnoLVmjQGnco7rcMqp984=
|
||||
github.com/baidubce/bce-sdk-go v0.9.250/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg=
|
||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||
@@ -1108,8 +1085,8 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
|
||||
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
|
||||
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
|
||||
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -1188,8 +1165,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
|
||||
golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
||||
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
|
||||
@@ -0,0 +1,266 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
aliesa "github.com/alibabacloud-go/esa-20240910/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/esa-20240910/blob/master/client/client.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type EsaClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewEsaClient(config *openapiutil.Config) (*EsaClient, error) {
|
||||
client := new(EsaClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *EsaClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *EsaClient) CreateRecordWithOptions(tmpReq *aliesa.CreateRecordRequest, runtime *dara.RuntimeOptions) (_result *aliesa.CreateRecordResponse, _err error) {
|
||||
_err = tmpReq.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
request := &aliesa.CreateRecordShrinkRequest{}
|
||||
openapiutil.Convert(tmpReq, request)
|
||||
if !dara.IsNil(tmpReq.AuthConf) {
|
||||
request.AuthConfShrink = openapiutil.ArrayToStringWithSpecifiedStyle(tmpReq.AuthConf, dara.String("AuthConf"), dara.String("json"))
|
||||
}
|
||||
|
||||
if !dara.IsNil(tmpReq.Data) {
|
||||
request.DataShrink = openapiutil.ArrayToStringWithSpecifiedStyle(tmpReq.Data, dara.String("Data"), dara.String("json"))
|
||||
}
|
||||
|
||||
query := map[string]interface{}{}
|
||||
if !dara.IsNil(request.AuthConfShrink) {
|
||||
query["AuthConf"] = request.AuthConfShrink
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.BizName) {
|
||||
query["BizName"] = request.BizName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Comment) {
|
||||
query["Comment"] = request.Comment
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DataShrink) {
|
||||
query["Data"] = request.DataShrink
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.HostPolicy) {
|
||||
query["HostPolicy"] = request.HostPolicy
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Proxied) {
|
||||
query["Proxied"] = request.Proxied
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RecordName) {
|
||||
query["RecordName"] = request.RecordName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SiteId) {
|
||||
query["SiteId"] = request.SiteId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SourceType) {
|
||||
query["SourceType"] = request.SourceType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Ttl) {
|
||||
query["Ttl"] = request.Ttl
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Type) {
|
||||
query["Type"] = request.Type
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("CreateRecord"),
|
||||
Version: dara.String("2024-09-10"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliesa.CreateRecordResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *EsaClient) CreateRecord(request *aliesa.CreateRecordRequest) (_result *aliesa.CreateRecordResponse, _err error) {
|
||||
runtime := &dara.RuntimeOptions{}
|
||||
_result = &aliesa.CreateRecordResponse{}
|
||||
_body, _err := client.CreateRecordWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *EsaClient) DeleteRecordWithOptions(request *aliesa.DeleteRecordRequest, runtime *dara.RuntimeOptions) (_result *aliesa.DeleteRecordResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
query := map[string]interface{}{}
|
||||
if !dara.IsNil(request.RecordId) {
|
||||
query["RecordId"] = request.RecordId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityToken) {
|
||||
query["SecurityToken"] = request.SecurityToken
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("DeleteRecord"),
|
||||
Version: dara.String("2024-09-10"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliesa.DeleteRecordResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *EsaClient) DeleteRecord(request *aliesa.DeleteRecordRequest) (_result *aliesa.DeleteRecordResponse, _err error) {
|
||||
runtime := &dara.RuntimeOptions{}
|
||||
_result = &aliesa.DeleteRecordResponse{}
|
||||
_body, _err := client.DeleteRecordWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *EsaClient) ListRecordsWithOptions(request *aliesa.ListRecordsRequest, runtime *dara.RuntimeOptions) (_result *aliesa.ListRecordsResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
query := openapiutil.Query(dara.ToMap(request))
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListRecords"),
|
||||
Version: dara.String("2024-09-10"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("GET"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliesa.ListRecordsResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *EsaClient) ListRecords(request *aliesa.ListRecordsRequest) (_result *aliesa.ListRecordsResponse, _err error) {
|
||||
runtime := &dara.RuntimeOptions{}
|
||||
_result = &aliesa.ListRecordsResponse{}
|
||||
_body, _err := client.ListRecordsWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *EsaClient) ListSitesWithOptions(tmpReq *aliesa.ListSitesRequest, runtime *dara.RuntimeOptions) (_result *aliesa.ListSitesResponse, _err error) {
|
||||
_err = tmpReq.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
request := &aliesa.ListSitesShrinkRequest{}
|
||||
openapiutil.Convert(tmpReq, request)
|
||||
if !dara.IsNil(tmpReq.TagFilter) {
|
||||
request.TagFilterShrink = openapiutil.ArrayToStringWithSpecifiedStyle(tmpReq.TagFilter, dara.String("TagFilter"), dara.String("json"))
|
||||
}
|
||||
|
||||
query := openapiutil.Query(dara.ToMap(request))
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListSites"),
|
||||
Version: dara.String("2024-09-10"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("GET"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliesa.ListSitesResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *EsaClient) ListSites(request *aliesa.ListSitesRequest) (_result *aliesa.ListSitesResponse, _err error) {
|
||||
runtime := &dara.RuntimeOptions{}
|
||||
_result = &aliesa.ListSitesResponse{}
|
||||
_body, _err := client.ListSitesWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
@@ -41,7 +41,7 @@ type Config struct {
|
||||
}
|
||||
|
||||
type DNSProvider struct {
|
||||
client *aliesa.Client
|
||||
client *EsaClient
|
||||
config *Config
|
||||
|
||||
siteIDs map[string]int64
|
||||
@@ -76,7 +76,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
||||
return nil, errors.New("alicloud-esa: the configuration of the DNS provider is nil")
|
||||
}
|
||||
|
||||
client, err := aliesa.NewClient(&aliopen.Config{
|
||||
client, err := NewEsaClient(&aliopen.Config{
|
||||
AccessKeyId: tea.String(config.SecretID),
|
||||
AccessKeySecret: tea.String(config.SecretKey),
|
||||
Endpoint: tea.String(fmt.Sprintf("esa.%s.aliyuncs.com", config.RegionID)),
|
||||
|
||||
@@ -3,14 +3,13 @@ package internal
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
bcedns "github.com/baidubce/bce-sdk-go/services/dns"
|
||||
"github.com/go-acme/lego/v4/challenge"
|
||||
"github.com/go-acme/lego/v4/challenge/dns01"
|
||||
"github.com/go-acme/lego/v4/platform/config/env"
|
||||
"github.com/google/uuid"
|
||||
"github.com/pocketbase/pocketbase/tools/security"
|
||||
"github.com/samber/lo"
|
||||
)
|
||||
|
||||
@@ -172,7 +171,7 @@ func (d *DNSProvider) addOrUpdateDNSRecord(zoneName, subDomain, value string) er
|
||||
Value: value,
|
||||
Ttl: lo.ToPtr(int32(d.config.TTL)),
|
||||
}
|
||||
err := d.client.CreateRecord(zoneName, request, d.generateClientToken())
|
||||
err := d.client.CreateRecord(zoneName, request, security.RandomString(32))
|
||||
return err
|
||||
} else {
|
||||
request := &bcedns.UpdateRecordRequest{
|
||||
@@ -181,7 +180,7 @@ func (d *DNSProvider) addOrUpdateDNSRecord(zoneName, subDomain, value string) er
|
||||
Value: value,
|
||||
Ttl: lo.ToPtr(int32(d.config.TTL)),
|
||||
}
|
||||
err := d.client.UpdateRecord(zoneName, record.Id, request, d.generateClientToken())
|
||||
err := d.client.UpdateRecord(zoneName, record.Id, request, security.RandomString(32))
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -195,11 +194,7 @@ func (d *DNSProvider) removeDNSRecord(zoneName, subDomain string) error {
|
||||
if record == nil {
|
||||
return nil
|
||||
} else {
|
||||
err = d.client.DeleteRecord(zoneName, record.Id, d.generateClientToken())
|
||||
err = d.client.DeleteRecord(zoneName, record.Id, security.RandomString(32))
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
func (d *DNSProvider) generateClientToken() string {
|
||||
return strings.ReplaceAll(uuid.New().String(), "-", "")
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
||||
clientConfig := &client.Config
|
||||
clientConfig.SetTimeout(config.HTTPTimeout)
|
||||
client.SetConfig(clientConfig)
|
||||
client.SetLogger(jdcore.NewDefaultLogger(jdcore.LogWarn))
|
||||
client.DisableLogger()
|
||||
|
||||
return &DNSProvider{
|
||||
client: client,
|
||||
|
||||
@@ -12,10 +12,12 @@ import (
|
||||
alialb "github.com/alibabacloud-go/alb-20200616/v2/client"
|
||||
alicas "github.com/alibabacloud-go/cas-20200407/v4/client"
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-alb/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -51,8 +53,8 @@ type SSLDeployerProvider struct {
|
||||
var _ core.SSLDeployer = (*SSLDeployerProvider)(nil)
|
||||
|
||||
type wSDKClients struct {
|
||||
ALB *alialb.Client
|
||||
CAS *alicas.Client
|
||||
ALB *internal.AlbClient
|
||||
CAS *internal.CasClient
|
||||
}
|
||||
|
||||
func NewSSLDeployerProvider(config *SSLDeployerProviderConfig) (*SSLDeployerProvider, error) {
|
||||
@@ -133,7 +135,7 @@ func (d *SSLDeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCer
|
||||
getLoadBalancerAttributeReq := &alialb.GetLoadBalancerAttributeRequest{
|
||||
LoadBalancerId: tea.String(d.config.LoadbalancerId),
|
||||
}
|
||||
getLoadBalancerAttributeResp, err := d.sdkClients.ALB.GetLoadBalancerAttribute(getLoadBalancerAttributeReq)
|
||||
getLoadBalancerAttributeResp, err := d.sdkClients.ALB.GetLoadBalancerAttributeWithContext(context.TODO(), getLoadBalancerAttributeReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.GetLoadBalancerAttribute'", slog.Any("request", getLoadBalancerAttributeReq), slog.Any("response", getLoadBalancerAttributeResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.GetLoadBalancerAttribute': %w", err)
|
||||
@@ -157,7 +159,7 @@ func (d *SSLDeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCer
|
||||
LoadBalancerIds: []*string{tea.String(d.config.LoadbalancerId)},
|
||||
ListenerProtocol: tea.String("HTTPS"),
|
||||
}
|
||||
listListenersResp, err := d.sdkClients.ALB.ListListeners(listListenersReq)
|
||||
listListenersResp, err := d.sdkClients.ALB.ListListenersWithContext(context.TODO(), listListenersReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.ListListeners'", slog.Any("request", listListenersReq), slog.Any("response", listListenersResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.ListListeners': %w", err)
|
||||
@@ -192,7 +194,7 @@ func (d *SSLDeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCer
|
||||
LoadBalancerIds: []*string{tea.String(d.config.LoadbalancerId)},
|
||||
ListenerProtocol: tea.String("QUIC"),
|
||||
}
|
||||
listListenersResp, err := d.sdkClients.ALB.ListListeners(listListenersReq)
|
||||
listListenersResp, err := d.sdkClients.ALB.ListListenersWithContext(context.TODO(), listListenersReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.ListListeners'", slog.Any("request", listListenersReq), slog.Any("response", listListenersResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.ListListeners': %w", err)
|
||||
@@ -256,7 +258,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
getListenerAttributeReq := &alialb.GetListenerAttributeRequest{
|
||||
ListenerId: tea.String(cloudListenerId),
|
||||
}
|
||||
getListenerAttributeResp, err := d.sdkClients.ALB.GetListenerAttribute(getListenerAttributeReq)
|
||||
getListenerAttributeResp, err := d.sdkClients.ALB.GetListenerAttributeWithContext(context.TODO(), getListenerAttributeReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.GetListenerAttribute'", slog.Any("request", getListenerAttributeReq), slog.Any("response", getListenerAttributeResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.GetListenerAttribute': %w", err)
|
||||
@@ -273,7 +275,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
CertificateId: tea.String(cloudCertId),
|
||||
}},
|
||||
}
|
||||
updateListenerAttributeResp, err := d.sdkClients.ALB.UpdateListenerAttribute(updateListenerAttributeReq)
|
||||
updateListenerAttributeResp, err := d.sdkClients.ALB.UpdateListenerAttributeWithContext(context.TODO(), updateListenerAttributeReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.UpdateListenerAttribute'", slog.Any("request", updateListenerAttributeReq), slog.Any("response", updateListenerAttributeResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.UpdateListenerAttribute': %w", err)
|
||||
@@ -299,7 +301,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
ListenerId: tea.String(cloudListenerId),
|
||||
CertificateType: tea.String("Server"),
|
||||
}
|
||||
listListenerCertificatesResp, err := d.sdkClients.ALB.ListListenerCertificates(listListenerCertificatesReq)
|
||||
listListenerCertificatesResp, err := d.sdkClients.ALB.ListListenerCertificatesWithContext(context.TODO(), listListenerCertificatesReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.ListListenerCertificates'", slog.Any("request", listListenerCertificatesReq), slog.Any("response", listListenerCertificatesResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.ListListenerCertificates': %w", err)
|
||||
@@ -352,7 +354,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
getUserCertificateDetailReq := &alicas.GetUserCertificateDetailRequest{
|
||||
CertId: tea.Int64(certificateIdAsInt64),
|
||||
}
|
||||
getUserCertificateDetailResp, err := d.sdkClients.CAS.GetUserCertificateDetail(getUserCertificateDetailReq)
|
||||
getUserCertificateDetailResp, err := d.sdkClients.CAS.GetUserCertificateDetailWithContext(context.TODO(), getUserCertificateDetailReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'cas.GetUserCertificateDetail'", slog.Any("request", getUserCertificateDetailReq), slog.Any("response", getUserCertificateDetailResp))
|
||||
if err != nil {
|
||||
if sdkerr, ok := err.(*tea.SDKError); ok {
|
||||
@@ -395,7 +397,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
},
|
||||
},
|
||||
}
|
||||
associateAdditionalCertificatesFromListenerResp, err := d.sdkClients.ALB.AssociateAdditionalCertificatesWithListener(associateAdditionalCertificatesFromListenerReq)
|
||||
associateAdditionalCertificatesFromListenerResp, err := d.sdkClients.ALB.AssociateAdditionalCertificatesWithListenerWithContext(context.TODO(), associateAdditionalCertificatesFromListenerReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.AssociateAdditionalCertificatesWithListener'", slog.Any("request", associateAdditionalCertificatesFromListenerReq), slog.Any("response", associateAdditionalCertificatesFromListenerResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.AssociateAdditionalCertificatesWithListener': %w", err)
|
||||
@@ -416,7 +418,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
ListenerId: tea.String(cloudListenerId),
|
||||
Certificates: dissociateAdditionalCertificates,
|
||||
}
|
||||
dissociateAdditionalCertificatesFromListenerResp, err := d.sdkClients.ALB.DissociateAdditionalCertificatesFromListener(dissociateAdditionalCertificatesFromListenerReq)
|
||||
dissociateAdditionalCertificatesFromListenerResp, err := d.sdkClients.ALB.DissociateAdditionalCertificatesFromListenerWithContext(context.TODO(), dissociateAdditionalCertificatesFromListenerReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'alb.DissociateAdditionalCertificatesFromListener'", slog.Any("request", dissociateAdditionalCertificatesFromListenerReq), slog.Any("response", dissociateAdditionalCertificatesFromListenerResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'alb.DissociateAdditionalCertificatesFromListener': %w", err)
|
||||
@@ -442,7 +444,7 @@ func createSDKClients(accessKeyId, accessKeySecret, region string) (*wSDKClients
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
Endpoint: tea.String(albEndpoint),
|
||||
}
|
||||
albClient, err := alialb.NewClient(albConfig)
|
||||
albClient, err := internal.NewAlbClient(albConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -460,7 +462,7 @@ func createSDKClients(accessKeyId, accessKeySecret, region string) (*wSDKClients
|
||||
AccessKeyId: tea.String(accessKeyId),
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
}
|
||||
casClient, err := alicas.NewClient(casConfig)
|
||||
casClient, err := internal.NewCasClient(casConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,455 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
alialb "github.com/alibabacloud-go/alb-20200616/v2/client"
|
||||
alicas "github.com/alibabacloud-go/cas-20200407/v4/client"
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/cas-20200407/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type CasClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewCasClient(config *openapiutil.Config) (*CasClient, error) {
|
||||
client := new(CasClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *CasClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *CasClient) GetUserCertificateDetailWithContext(ctx context.Context, request *alicas.GetUserCertificateDetailRequest, runtime *dara.RuntimeOptions) (_result *alicas.GetUserCertificateDetailResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertFilter) {
|
||||
query["CertFilter"] = request.CertFilter
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertId) {
|
||||
query["CertId"] = request.CertId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("GetUserCertificateDetail"),
|
||||
Version: dara.String("2020-04-07"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicas.GetUserCertificateDetailResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/alb-20200616/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type AlbClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewAlbClient(config *openapiutil.Config) (*AlbClient, error) {
|
||||
client := new(AlbClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *AlbClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *AlbClient) AssociateAdditionalCertificatesWithListenerWithContext(ctx context.Context, request *alialb.AssociateAdditionalCertificatesWithListenerRequest, runtime *dara.RuntimeOptions) (_result *alialb.AssociateAdditionalCertificatesWithListenerResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.Certificates) {
|
||||
query["Certificates"] = request.Certificates
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ClientToken) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DryRun) {
|
||||
query["DryRun"] = request.DryRun
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerId) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("AssociateAdditionalCertificatesWithListener"),
|
||||
Version: dara.String("2020-06-16"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alialb.AssociateAdditionalCertificatesWithListenerResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *AlbClient) DissociateAdditionalCertificatesFromListenerWithContext(ctx context.Context, request *alialb.DissociateAdditionalCertificatesFromListenerRequest, runtime *dara.RuntimeOptions) (_result *alialb.DissociateAdditionalCertificatesFromListenerResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.Certificates) {
|
||||
query["Certificates"] = request.Certificates
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ClientToken) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DryRun) {
|
||||
query["DryRun"] = request.DryRun
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerId) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("DissociateAdditionalCertificatesFromListener"),
|
||||
Version: dara.String("2020-06-16"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alialb.DissociateAdditionalCertificatesFromListenerResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *AlbClient) GetListenerAttributeWithContext(ctx context.Context, request *alialb.GetListenerAttributeRequest, runtime *dara.RuntimeOptions) (_result *alialb.GetListenerAttributeResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.ListenerId) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("GetListenerAttribute"),
|
||||
Version: dara.String("2020-06-16"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alialb.GetListenerAttributeResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *AlbClient) GetLoadBalancerAttributeWithContext(ctx context.Context, request *alialb.GetLoadBalancerAttributeRequest, runtime *dara.RuntimeOptions) (_result *alialb.GetLoadBalancerAttributeResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.LoadBalancerId) {
|
||||
query["LoadBalancerId"] = request.LoadBalancerId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("GetLoadBalancerAttribute"),
|
||||
Version: dara.String("2020-06-16"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alialb.GetLoadBalancerAttributeResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *AlbClient) ListListenerCertificatesWithContext(ctx context.Context, request *alialb.ListListenerCertificatesRequest, runtime *dara.RuntimeOptions) (_result *alialb.ListListenerCertificatesResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertificateIds) {
|
||||
query["CertificateIds"] = request.CertificateIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertificateType) {
|
||||
query["CertificateType"] = request.CertificateType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerId) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.MaxResults) {
|
||||
query["MaxResults"] = request.MaxResults
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.NextToken) {
|
||||
query["NextToken"] = request.NextToken
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListListenerCertificates"),
|
||||
Version: dara.String("2020-06-16"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alialb.ListListenerCertificatesResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *AlbClient) ListListenersWithContext(ctx context.Context, request *alialb.ListListenersRequest, runtime *dara.RuntimeOptions) (_result *alialb.ListListenersResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.ListenerIds) {
|
||||
query["ListenerIds"] = request.ListenerIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerProtocol) {
|
||||
query["ListenerProtocol"] = request.ListenerProtocol
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.LoadBalancerIds) {
|
||||
query["LoadBalancerIds"] = request.LoadBalancerIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.MaxResults) {
|
||||
query["MaxResults"] = request.MaxResults
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.NextToken) {
|
||||
query["NextToken"] = request.NextToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Tag) {
|
||||
query["Tag"] = request.Tag
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListListeners"),
|
||||
Version: dara.String("2020-06-16"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alialb.ListListenersResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *AlbClient) UpdateListenerAttributeWithContext(ctx context.Context, request *alialb.UpdateListenerAttributeRequest, runtime *dara.RuntimeOptions) (_result *alialb.UpdateListenerAttributeResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CaCertificates) {
|
||||
query["CaCertificates"] = request.CaCertificates
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CaEnabled) {
|
||||
query["CaEnabled"] = request.CaEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Certificates) {
|
||||
query["Certificates"] = request.Certificates
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ClientToken) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DefaultActions) {
|
||||
query["DefaultActions"] = request.DefaultActions
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DryRun) {
|
||||
query["DryRun"] = request.DryRun
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.GzipEnabled) {
|
||||
query["GzipEnabled"] = request.GzipEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Http2Enabled) {
|
||||
query["Http2Enabled"] = request.Http2Enabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.IdleTimeout) {
|
||||
query["IdleTimeout"] = request.IdleTimeout
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerDescription) {
|
||||
query["ListenerDescription"] = request.ListenerDescription
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerId) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.QuicConfig) {
|
||||
query["QuicConfig"] = request.QuicConfig
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RequestTimeout) {
|
||||
query["RequestTimeout"] = request.RequestTimeout
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityPolicyId) {
|
||||
query["SecurityPolicyId"] = request.SecurityPolicyId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.XForwardedForConfig) {
|
||||
query["XForwardedForConfig"] = request.XForwardedForConfig
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("UpdateListenerAttribute"),
|
||||
Version: dara.String("2020-06-16"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alialb.UpdateListenerAttributeResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -11,10 +11,12 @@ import (
|
||||
aliapig "github.com/alibabacloud-go/apig-20240327/v5/client"
|
||||
alicloudapi "github.com/alibabacloud-go/cloudapi-20160714/v5/client"
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-apigw/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -47,8 +49,8 @@ type SSLDeployerProvider struct {
|
||||
}
|
||||
|
||||
type wSDKClients struct {
|
||||
CloudNativeAPIGateway *aliapig.Client
|
||||
TraditionalAPIGateway *alicloudapi.Client
|
||||
CloudNativeAPIGateway *internal.ApigClient
|
||||
TraditionalAPIGateway *internal.CloudapiClient
|
||||
}
|
||||
|
||||
var _ core.SSLDeployer = (*SSLDeployerProvider)(nil)
|
||||
@@ -127,7 +129,7 @@ func (d *SSLDeployerProvider) deployToTraditional(ctx context.Context, certPEM s
|
||||
CertificateBody: tea.String(certPEM),
|
||||
CertificatePrivateKey: tea.String(privkeyPEM),
|
||||
}
|
||||
setDomainCertificateResp, err := d.sdkClients.TraditionalAPIGateway.SetDomainCertificate(setDomainCertificateReq)
|
||||
setDomainCertificateResp, err := d.sdkClients.TraditionalAPIGateway.SetDomainCertificateWithContext(context.TODO(), setDomainCertificateReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'apigateway.SetDomainCertificate'", slog.Any("request", setDomainCertificateReq), slog.Any("response", setDomainCertificateResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'apigateway.SetDomainCertificate': %w", err)
|
||||
@@ -163,7 +165,7 @@ func (d *SSLDeployerProvider) deployToCloudNative(ctx context.Context, certPEM s
|
||||
PageNumber: tea.Int32(listDomainsPageNumber),
|
||||
PageSize: tea.Int32(listDomainsPageSize),
|
||||
}
|
||||
listDomainsResp, err := d.sdkClients.CloudNativeAPIGateway.ListDomains(listDomainsReq)
|
||||
listDomainsResp, err := d.sdkClients.CloudNativeAPIGateway.ListDomainsWithContext(context.TODO(), listDomainsReq, make(map[string]*string), &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'apig.ListDomains'", slog.Any("request", listDomainsReq), slog.Any("response", listDomainsResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'apig.ListDomains': %w", err)
|
||||
@@ -195,7 +197,7 @@ func (d *SSLDeployerProvider) deployToCloudNative(ctx context.Context, certPEM s
|
||||
// 查询域名
|
||||
// REF: https://help.aliyun.com/zh/api-gateway/cloud-native-api-gateway/developer-reference/api-apig-2024-03-27-getdomain
|
||||
getDomainReq := &aliapig.GetDomainRequest{}
|
||||
getDomainResp, err := d.sdkClients.CloudNativeAPIGateway.GetDomain(tea.String(domainId), getDomainReq)
|
||||
getDomainResp, err := d.sdkClients.CloudNativeAPIGateway.GetDomainWithContext(context.TODO(), tea.String(domainId), getDomainReq, make(map[string]*string), &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'apig.GetDomain'", slog.String("domainId", domainId), slog.Any("request", getDomainReq), slog.Any("response", getDomainResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'apig.GetDomain': %w", err)
|
||||
@@ -221,7 +223,7 @@ func (d *SSLDeployerProvider) deployToCloudNative(ctx context.Context, certPEM s
|
||||
TlsCipherSuitesConfig: getDomainResp.Body.Data.TlsCipherSuitesConfig,
|
||||
CertIdentifier: tea.String(upres.ExtendedData["CertIdentifier"].(string)),
|
||||
}
|
||||
updateDomainResp, err := d.sdkClients.CloudNativeAPIGateway.UpdateDomain(tea.String(domainId), updateDomainReq)
|
||||
updateDomainResp, err := d.sdkClients.CloudNativeAPIGateway.UpdateDomainWithContext(context.TODO(), tea.String(domainId), updateDomainReq, make(map[string]*string), &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'apig.UpdateDomain'", slog.String("domainId", domainId), slog.Any("request", updateDomainReq), slog.Any("response", updateDomainResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'apig.UpdateDomain': %w", err)
|
||||
@@ -245,7 +247,7 @@ func createSDKClients(accessKeyId, accessKeySecret, region string) (*wSDKClients
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
Endpoint: tea.String(cloudNativeAPIGEndpoint),
|
||||
}
|
||||
cloudNativeAPIGClient, err := aliapig.NewClient(cloudNativeAPIGConfig)
|
||||
cloudNativeAPIGClient, err := internal.NewApigClient(cloudNativeAPIGConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -264,7 +266,7 @@ func createSDKClients(accessKeyId, accessKeySecret, region string) (*wSDKClients
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
Endpoint: tea.String(traditionalAPIGEndpoint),
|
||||
}
|
||||
traditionalAPIGClient, err := alicloudapi.NewClient(traditionalAPIGConfig)
|
||||
traditionalAPIGClient, err := internal.NewCloudapiClient(traditionalAPIGConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,272 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
aliapig "github.com/alibabacloud-go/apig-20240327/v5/client"
|
||||
alicloudapi "github.com/alibabacloud-go/cloudapi-20160714/v5/client"
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/apig-20240327/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type ApigClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewApigClient(config *openapiutil.Config) (*ApigClient, error) {
|
||||
client := new(ApigClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *ApigClient) GetDomainWithContext(ctx context.Context, domainId *string, request *aliapig.GetDomainRequest, headers map[string]*string, runtime *dara.RuntimeOptions) (_result *aliapig.GetDomainResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.WithStatistics) {
|
||||
query["withStatistics"] = request.WithStatistics
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Headers: headers,
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("GetDomain"),
|
||||
Version: dara.String("2024-03-27"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/v1/domains/" + dara.PercentEncode(dara.StringValue(domainId))),
|
||||
Method: dara.String("GET"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("ROA"),
|
||||
ReqBodyType: dara.String("json"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliapig.GetDomainResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *ApigClient) ListDomainsWithContext(ctx context.Context, request *aliapig.ListDomainsRequest, headers map[string]*string, runtime *dara.RuntimeOptions) (_result *aliapig.ListDomainsResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.GatewayId) {
|
||||
query["gatewayId"] = request.GatewayId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.GatewayType) {
|
||||
query["gatewayType"] = request.GatewayType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.NameLike) {
|
||||
query["nameLike"] = request.NameLike
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.PageNumber) {
|
||||
query["pageNumber"] = request.PageNumber
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.PageSize) {
|
||||
query["pageSize"] = request.PageSize
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ResourceGroupId) {
|
||||
query["resourceGroupId"] = request.ResourceGroupId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Headers: headers,
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListDomains"),
|
||||
Version: dara.String("2024-03-27"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/v1/domains"),
|
||||
Method: dara.String("GET"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("ROA"),
|
||||
ReqBodyType: dara.String("json"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliapig.ListDomainsResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *ApigClient) UpdateDomainWithContext(ctx context.Context, domainId *string, request *aliapig.UpdateDomainRequest, headers map[string]*string, runtime *dara.RuntimeOptions) (_result *aliapig.UpdateDomainResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
body := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CaCertIdentifier) {
|
||||
body["caCertIdentifier"] = request.CaCertIdentifier
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertIdentifier) {
|
||||
body["certIdentifier"] = request.CertIdentifier
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ClientCACert) {
|
||||
body["clientCACert"] = request.ClientCACert
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ForceHttps) {
|
||||
body["forceHttps"] = request.ForceHttps
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Http2Option) {
|
||||
body["http2Option"] = request.Http2Option
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.MTLSEnabled) {
|
||||
body["mTLSEnabled"] = request.MTLSEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Protocol) {
|
||||
body["protocol"] = request.Protocol
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.TlsCipherSuitesConfig) {
|
||||
body["tlsCipherSuitesConfig"] = request.TlsCipherSuitesConfig
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.TlsMax) {
|
||||
body["tlsMax"] = request.TlsMax
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.TlsMin) {
|
||||
body["tlsMin"] = request.TlsMin
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Headers: headers,
|
||||
Body: openapiutil.ParseToMap(body),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("UpdateDomain"),
|
||||
Version: dara.String("2024-03-27"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/v1/domains/" + dara.PercentEncode(dara.StringValue(domainId))),
|
||||
Method: dara.String("PUT"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("ROA"),
|
||||
ReqBodyType: dara.String("json"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliapig.UpdateDomainResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/cloudapi-20160714/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type CloudapiClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewCloudapiClient(config *openapiutil.Config) (*CloudapiClient, error) {
|
||||
client := new(CloudapiClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *CloudapiClient) SetDomainCertificateWithContext(ctx context.Context, request *alicloudapi.SetDomainCertificateRequest, runtime *dara.RuntimeOptions) (_result *alicloudapi.SetDomainCertificateResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CaCertificateBody) {
|
||||
query["CaCertificateBody"] = request.CaCertificateBody
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertificateBody) {
|
||||
query["CertificateBody"] = request.CertificateBody
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertificateName) {
|
||||
query["CertificateName"] = request.CertificateName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertificatePrivateKey) {
|
||||
query["CertificatePrivateKey"] = request.CertificatePrivateKey
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ClientCertSDnPassThrough) {
|
||||
query["ClientCertSDnPassThrough"] = request.ClientCertSDnPassThrough
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DomainName) {
|
||||
query["DomainName"] = request.DomainName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.GroupId) {
|
||||
query["GroupId"] = request.GroupId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityToken) {
|
||||
query["SecurityToken"] = request.SecurityToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SslOcspCacheEnable) {
|
||||
query["SslOcspCacheEnable"] = request.SslOcspCacheEnable
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SslOcspEnable) {
|
||||
query["SslOcspEnable"] = request.SslOcspEnable
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SslVerifyDepth) {
|
||||
query["SslVerifyDepth"] = request.SslVerifyDepth
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("SetDomainCertificate"),
|
||||
Version: dara.String("2016-07-14"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicloudapi.SetDomainCertificateResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -10,9 +10,11 @@ import (
|
||||
|
||||
alicas "github.com/alibabacloud-go/cas-20200407/v4/client"
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-cas-deploy/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -35,7 +37,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alicas.Client
|
||||
sdkClient *internal.CasClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -100,7 +102,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
ShowSize: tea.Int32(1),
|
||||
CurrentPage: tea.Int32(1),
|
||||
}
|
||||
listContactResp, err := d.sdkClient.ListContact(listContactReq)
|
||||
listContactResp, err := d.sdkClient.ListContactWithContext(context.TODO(), listContactReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'cas.ListContact'", slog.Any("request", listContactReq), slog.Any("response", listContactResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cas.ListContact': %w", err)
|
||||
@@ -120,7 +122,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
ResourceIds: tea.String(strings.Join(d.config.ResourceIds, ",")),
|
||||
ContactIds: tea.String(strings.Join(contactIds, ",")),
|
||||
}
|
||||
createDeploymentJobResp, err := d.sdkClient.CreateDeploymentJob(createDeploymentJobReq)
|
||||
createDeploymentJobResp, err := d.sdkClient.CreateDeploymentJobWithContext(context.TODO(), createDeploymentJobReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'cas.CreateDeploymentJob'", slog.Any("request", createDeploymentJobReq), slog.Any("response", createDeploymentJobResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cas.CreateDeploymentJob': %w", err)
|
||||
@@ -138,7 +140,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
describeDeploymentJobReq := &alicas.DescribeDeploymentJobRequest{
|
||||
JobId: createDeploymentJobResp.Body.JobId,
|
||||
}
|
||||
describeDeploymentJobResp, err := d.sdkClient.DescribeDeploymentJob(describeDeploymentJobReq)
|
||||
describeDeploymentJobResp, err := d.sdkClient.DescribeDeploymentJobWithContext(context.TODO(), describeDeploymentJobReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'cas.DescribeDeploymentJob'", slog.Any("request", describeDeploymentJobReq), slog.Any("response", describeDeploymentJobResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cas.DescribeDeploymentJob': %w", err)
|
||||
@@ -159,7 +161,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*alicas.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.CasClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/cas
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -175,7 +177,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*alicas.Clien
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := alicas.NewClient(config)
|
||||
client, err := internal.NewCasClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
alicas "github.com/alibabacloud-go/cas-20200407/v4/client"
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/cas-20200407/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type CasClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewCasClient(config *openapiutil.Config) (*CasClient, error) {
|
||||
client := new(CasClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *CasClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *CasClient) CreateDeploymentJobWithContext(ctx context.Context, request *alicas.CreateDeploymentJobRequest, runtime *dara.RuntimeOptions) (_result *alicas.CreateDeploymentJobResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertIds) {
|
||||
query["CertIds"] = request.CertIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ContactIds) {
|
||||
query["ContactIds"] = request.ContactIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.JobType) {
|
||||
query["JobType"] = request.JobType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Name) {
|
||||
query["Name"] = request.Name
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ResourceIds) {
|
||||
query["ResourceIds"] = request.ResourceIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ScheduleTime) {
|
||||
query["ScheduleTime"] = request.ScheduleTime
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("CreateDeploymentJob"),
|
||||
Version: dara.String("2020-04-07"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicas.CreateDeploymentJobResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *CasClient) DescribeDeploymentJobWithContext(ctx context.Context, request *alicas.DescribeDeploymentJobRequest, runtime *dara.RuntimeOptions) (_result *alicas.DescribeDeploymentJobResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.JobId) {
|
||||
query["JobId"] = request.JobId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("DescribeDeploymentJob"),
|
||||
Version: dara.String("2020-04-07"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicas.DescribeDeploymentJobResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *CasClient) ListContactWithContext(ctx context.Context, request *alicas.ListContactRequest, runtime *dara.RuntimeOptions) (_result *alicas.ListContactResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CurrentPage) {
|
||||
query["CurrentPage"] = request.CurrentPage
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Keyword) {
|
||||
query["Keyword"] = request.Keyword
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ShowSize) {
|
||||
query["ShowSize"] = request.ShowSize
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListContact"),
|
||||
Version: dara.String("2020-04-07"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicas.ListContactResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -10,10 +10,12 @@ import (
|
||||
|
||||
alicdn "github.com/alibabacloud-go/cdn-20180510/v8/client"
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-cdn/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -33,7 +35,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alicdn.Client
|
||||
sdkClient *internal.CdnClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -105,7 +107,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
Else(tea.String("ap-southeast-1")),
|
||||
SSLProtocol: tea.String("on"),
|
||||
}
|
||||
setCdnDomainSSLCertificateResp, err := d.sdkClient.SetCdnDomainSSLCertificate(setCdnDomainSSLCertificateReq)
|
||||
setCdnDomainSSLCertificateResp, err := d.sdkClient.SetCdnDomainSSLCertificateWithContext(context.TODO(), setCdnDomainSSLCertificateReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'cdn.SetCdnDomainSSLCertificate'", slog.Any("request", setCdnDomainSSLCertificateReq), slog.Any("response", setCdnDomainSSLCertificateResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cdn.SetCdnDomainSSLCertificate': %w", err)
|
||||
@@ -114,14 +116,14 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*alicdn.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*internal.CdnClient, error) {
|
||||
config := &aliopen.Config{
|
||||
AccessKeyId: tea.String(accessKeyId),
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
Endpoint: tea.String("cdn.aliyuncs.com"),
|
||||
}
|
||||
|
||||
client, err := alicdn.NewClient(config)
|
||||
client, err := internal.NewCdnClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
alicdn "github.com/alibabacloud-go/cdn-20180510/v8/client"
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/cdn-20180510/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type CdnClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewCdnClient(config *openapiutil.Config) (*CdnClient, error) {
|
||||
client := new(CdnClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *CdnClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *CdnClient) SetCdnDomainSSLCertificateWithContext(ctx context.Context, request *alicdn.SetCdnDomainSSLCertificateRequest, runtime *dara.RuntimeOptions) (_result *alicdn.SetCdnDomainSSLCertificateResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertId) {
|
||||
query["CertId"] = request.CertId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertName) {
|
||||
query["CertName"] = request.CertName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertRegion) {
|
||||
query["CertRegion"] = request.CertRegion
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertType) {
|
||||
query["CertType"] = request.CertType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DomainName) {
|
||||
query["DomainName"] = request.DomainName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.OwnerId) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPri) {
|
||||
query["SSLPri"] = request.SSLPri
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLProtocol) {
|
||||
query["SSLProtocol"] = request.SSLProtocol
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPub) {
|
||||
query["SSLPub"] = request.SSLPub
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityToken) {
|
||||
query["SecurityToken"] = request.SecurityToken
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("SetCdnDomainSSLCertificate"),
|
||||
Version: dara.String("2018-05-10"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicdn.SetCdnDomainSSLCertificateResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-clb/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-slb"
|
||||
)
|
||||
|
||||
@@ -39,7 +40,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alislb.Client
|
||||
sdkClient *internal.SlbClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -285,7 +286,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
return nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*alislb.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.SlbClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/Slb
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -305,7 +306,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*alislb.Clien
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := alislb.NewClient(config)
|
||||
client, err := internal.NewSlbClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,608 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
alislb "github.com/alibabacloud-go/slb-20140515/v4/client"
|
||||
util "github.com/alibabacloud-go/tea-utils/v2/service"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/slb-20140515/blob/master/client/client.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type SlbClient struct {
|
||||
openapi.Client
|
||||
}
|
||||
|
||||
func NewSlbClient(config *openapi.Config) (*SlbClient, error) {
|
||||
client := new(SlbClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *SlbClient) Init(config *openapi.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeDomainExtensionsWithOptions(request *alislb.DescribeDomainExtensionsRequest, runtime *util.RuntimeOptions) (_result *alislb.DescribeDomainExtensionsResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.DomainExtensionId)) {
|
||||
query["DomainExtensionId"] = request.DomainExtensionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerPort)) {
|
||||
query["ListenerPort"] = request.ListenerPort
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.LoadBalancerId)) {
|
||||
query["LoadBalancerId"] = request.LoadBalancerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("DescribeDomainExtensions"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.DescribeDomainExtensionsResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeDomainExtensions(request *alislb.DescribeDomainExtensionsRequest) (_result *alislb.DescribeDomainExtensionsResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.DescribeDomainExtensionsResponse{}
|
||||
_body, _err := client.DescribeDomainExtensionsWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeLoadBalancerListenersWithOptions(request *alislb.DescribeLoadBalancerListenersRequest, runtime *util.RuntimeOptions) (_result *alislb.DescribeLoadBalancerListenersResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Description)) {
|
||||
query["Description"] = request.Description
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerPort)) {
|
||||
query["ListenerPort"] = request.ListenerPort
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerProtocol)) {
|
||||
query["ListenerProtocol"] = request.ListenerProtocol
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.LoadBalancerId)) {
|
||||
query["LoadBalancerId"] = request.LoadBalancerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.MaxResults)) {
|
||||
query["MaxResults"] = request.MaxResults
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.NextToken)) {
|
||||
query["NextToken"] = request.NextToken
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Tag)) {
|
||||
query["Tag"] = request.Tag
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("DescribeLoadBalancerListeners"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.DescribeLoadBalancerListenersResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeLoadBalancerListeners(request *alislb.DescribeLoadBalancerListenersRequest) (_result *alislb.DescribeLoadBalancerListenersResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.DescribeLoadBalancerListenersResponse{}
|
||||
_body, _err := client.DescribeLoadBalancerListenersWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeLoadBalancerAttributeWithOptions(request *alislb.DescribeLoadBalancerAttributeRequest, runtime *util.RuntimeOptions) (_result *alislb.DescribeLoadBalancerAttributeResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.LoadBalancerId)) {
|
||||
query["LoadBalancerId"] = request.LoadBalancerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("DescribeLoadBalancerAttribute"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.DescribeLoadBalancerAttributeResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeLoadBalancerAttribute(request *alislb.DescribeLoadBalancerAttributeRequest) (_result *alislb.DescribeLoadBalancerAttributeResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.DescribeLoadBalancerAttributeResponse{}
|
||||
_body, _err := client.DescribeLoadBalancerAttributeWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeLoadBalancerHTTPSListenerAttributeWithOptions(request *alislb.DescribeLoadBalancerHTTPSListenerAttributeRequest, runtime *util.RuntimeOptions) (_result *alislb.DescribeLoadBalancerHTTPSListenerAttributeResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerPort)) {
|
||||
query["ListenerPort"] = request.ListenerPort
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.LoadBalancerId)) {
|
||||
query["LoadBalancerId"] = request.LoadBalancerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("DescribeLoadBalancerHTTPSListenerAttribute"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.DescribeLoadBalancerHTTPSListenerAttributeResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeLoadBalancerHTTPSListenerAttribute(request *alislb.DescribeLoadBalancerHTTPSListenerAttributeRequest) (_result *alislb.DescribeLoadBalancerHTTPSListenerAttributeResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.DescribeLoadBalancerHTTPSListenerAttributeResponse{}
|
||||
_body, _err := client.DescribeLoadBalancerHTTPSListenerAttributeWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) SetDomainExtensionAttributeWithOptions(request *alislb.SetDomainExtensionAttributeRequest, runtime *util.RuntimeOptions) (_result *alislb.SetDomainExtensionAttributeResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.DomainExtensionId)) {
|
||||
query["DomainExtensionId"] = request.DomainExtensionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ServerCertificateId)) {
|
||||
query["ServerCertificateId"] = request.ServerCertificateId
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("SetDomainExtensionAttribute"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.SetDomainExtensionAttributeResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) SetDomainExtensionAttribute(request *alislb.SetDomainExtensionAttributeRequest) (_result *alislb.SetDomainExtensionAttributeResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.SetDomainExtensionAttributeResponse{}
|
||||
_body, _err := client.SetDomainExtensionAttributeWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) SetLoadBalancerHTTPSListenerAttributeWithOptions(request *alislb.SetLoadBalancerHTTPSListenerAttributeRequest, runtime *util.RuntimeOptions) (_result *alislb.SetLoadBalancerHTTPSListenerAttributeResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AclId)) {
|
||||
query["AclId"] = request.AclId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AclStatus)) {
|
||||
query["AclStatus"] = request.AclStatus
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AclType)) {
|
||||
query["AclType"] = request.AclType
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Bandwidth)) {
|
||||
query["Bandwidth"] = request.Bandwidth
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.CACertificateId)) {
|
||||
query["CACertificateId"] = request.CACertificateId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Cookie)) {
|
||||
query["Cookie"] = request.Cookie
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.CookieTimeout)) {
|
||||
query["CookieTimeout"] = request.CookieTimeout
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Description)) {
|
||||
query["Description"] = request.Description
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.EnableHttp2)) {
|
||||
query["EnableHttp2"] = request.EnableHttp2
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Gzip)) {
|
||||
query["Gzip"] = request.Gzip
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheck)) {
|
||||
query["HealthCheck"] = request.HealthCheck
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheckConnectPort)) {
|
||||
query["HealthCheckConnectPort"] = request.HealthCheckConnectPort
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheckDomain)) {
|
||||
query["HealthCheckDomain"] = request.HealthCheckDomain
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheckHttpCode)) {
|
||||
query["HealthCheckHttpCode"] = request.HealthCheckHttpCode
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheckInterval)) {
|
||||
query["HealthCheckInterval"] = request.HealthCheckInterval
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheckMethod)) {
|
||||
query["HealthCheckMethod"] = request.HealthCheckMethod
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheckTimeout)) {
|
||||
query["HealthCheckTimeout"] = request.HealthCheckTimeout
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthCheckURI)) {
|
||||
query["HealthCheckURI"] = request.HealthCheckURI
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HealthyThreshold)) {
|
||||
query["HealthyThreshold"] = request.HealthyThreshold
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.IdleTimeout)) {
|
||||
query["IdleTimeout"] = request.IdleTimeout
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerPort)) {
|
||||
query["ListenerPort"] = request.ListenerPort
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.LoadBalancerId)) {
|
||||
query["LoadBalancerId"] = request.LoadBalancerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RequestTimeout)) {
|
||||
query["RequestTimeout"] = request.RequestTimeout
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Scheduler)) {
|
||||
query["Scheduler"] = request.Scheduler
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ServerCertificateId)) {
|
||||
query["ServerCertificateId"] = request.ServerCertificateId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.StickySession)) {
|
||||
query["StickySession"] = request.StickySession
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.StickySessionType)) {
|
||||
query["StickySessionType"] = request.StickySessionType
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.TLSCipherPolicy)) {
|
||||
query["TLSCipherPolicy"] = request.TLSCipherPolicy
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.UnhealthyThreshold)) {
|
||||
query["UnhealthyThreshold"] = request.UnhealthyThreshold
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.VServerGroup)) {
|
||||
query["VServerGroup"] = request.VServerGroup
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.VServerGroupId)) {
|
||||
query["VServerGroupId"] = request.VServerGroupId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.XForwardedFor)) {
|
||||
query["XForwardedFor"] = request.XForwardedFor
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.XForwardedFor_ClientSrcPort)) {
|
||||
query["XForwardedFor_ClientSrcPort"] = request.XForwardedFor_ClientSrcPort
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.XForwardedFor_SLBID)) {
|
||||
query["XForwardedFor_SLBID"] = request.XForwardedFor_SLBID
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.XForwardedFor_SLBIP)) {
|
||||
query["XForwardedFor_SLBIP"] = request.XForwardedFor_SLBIP
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.XForwardedFor_SLBPORT)) {
|
||||
query["XForwardedFor_SLBPORT"] = request.XForwardedFor_SLBPORT
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.XForwardedFor_proto)) {
|
||||
query["XForwardedFor_proto"] = request.XForwardedFor_proto
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("SetLoadBalancerHTTPSListenerAttribute"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.SetLoadBalancerHTTPSListenerAttributeResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) SetLoadBalancerHTTPSListenerAttribute(request *alislb.SetLoadBalancerHTTPSListenerAttributeRequest) (_result *alislb.SetLoadBalancerHTTPSListenerAttributeResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.SetLoadBalancerHTTPSListenerAttributeResponse{}
|
||||
_body, _err := client.SetLoadBalancerHTTPSListenerAttributeWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
@@ -9,11 +9,13 @@ import (
|
||||
"strings"
|
||||
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
alidcdn "github.com/alibabacloud-go/dcdn-20180115/v3/client"
|
||||
alidcdn "github.com/alibabacloud-go/dcdn-20180115/v4/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-dcdn/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -33,7 +35,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alidcdn.Client
|
||||
sdkClient *internal.DcdnClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -105,7 +107,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
Else(tea.String("ap-southeast-1")),
|
||||
SSLProtocol: tea.String("on"),
|
||||
}
|
||||
setDcdnDomainSSLCertificateResp, err := d.sdkClient.SetDcdnDomainSSLCertificate(setDcdnDomainSSLCertificateReq)
|
||||
setDcdnDomainSSLCertificateResp, err := d.sdkClient.SetDcdnDomainSSLCertificateWithContext(context.TODO(), setDcdnDomainSSLCertificateReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'dcdn.SetDcdnDomainSSLCertificate'", slog.Any("request", setDcdnDomainSSLCertificateReq), slog.Any("response", setDcdnDomainSSLCertificateResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'dcdn.SetDcdnDomainSSLCertificate': %w", err)
|
||||
@@ -114,14 +116,14 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*alidcdn.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*internal.DcdnClient, error) {
|
||||
config := &aliopen.Config{
|
||||
AccessKeyId: tea.String(accessKeyId),
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
Endpoint: tea.String("dcdn.aliyuncs.com"),
|
||||
}
|
||||
|
||||
client, err := alidcdn.NewClient(config)
|
||||
client, err := internal.NewDcdnClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
alidcdn "github.com/alibabacloud-go/dcdn-20180115/v4/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/dcdn-20180115/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type DcdnClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewDcdnClient(config *openapiutil.Config) (*DcdnClient, error) {
|
||||
client := new(DcdnClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *DcdnClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *DcdnClient) SetDcdnDomainSSLCertificateWithContext(ctx context.Context, request *alidcdn.SetDcdnDomainSSLCertificateRequest, runtime *dara.RuntimeOptions) (_result *alidcdn.SetDcdnDomainSSLCertificateResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertId) {
|
||||
query["CertId"] = request.CertId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertName) {
|
||||
query["CertName"] = request.CertName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertRegion) {
|
||||
query["CertRegion"] = request.CertRegion
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertType) {
|
||||
query["CertType"] = request.CertType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DomainName) {
|
||||
query["DomainName"] = request.DomainName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.OwnerId) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPri) {
|
||||
query["SSLPri"] = request.SSLPri
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLProtocol) {
|
||||
query["SSLProtocol"] = request.SSLProtocol
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPub) {
|
||||
query["SSLPub"] = request.SSLPub
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityToken) {
|
||||
query["SecurityToken"] = request.SecurityToken
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("SetDcdnDomainSSLCertificate"),
|
||||
Version: dara.String("2018-01-15"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alidcdn.SetDcdnDomainSSLCertificateResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -5,15 +5,16 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
aliddoscoo "github.com/alibabacloud-go/ddoscoo-20200101/v4/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-ddospro/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -33,7 +34,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *aliddoscoo.Client
|
||||
sdkClient *internal.DdoscooClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -94,12 +95,11 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
|
||||
// 为网站业务转发规则关联 SSL 证书
|
||||
// REF: https://help.aliyun.com/zh/anti-ddos/anti-ddos-pro-and-premium/developer-reference/api-ddoscoo-2020-01-01-associatewebcert
|
||||
certId, _ := strconv.ParseInt(upres.CertId, 10, 32)
|
||||
associateWebCertReq := &aliddoscoo.AssociateWebCertRequest{
|
||||
Domain: tea.String(d.config.Domain),
|
||||
CertId: tea.Int32(int32(certId)),
|
||||
Domain: tea.String(d.config.Domain),
|
||||
CertIdentifier: tea.String(upres.ExtendedData["CertIdentifier"].(string)),
|
||||
}
|
||||
associateWebCertResp, err := d.sdkClient.AssociateWebCert(associateWebCertReq)
|
||||
associateWebCertResp, err := d.sdkClient.AssociateWebCertWithContext(context.TODO(), associateWebCertReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'dcdn.AssociateWebCert'", slog.Any("request", associateWebCertReq), slog.Any("response", associateWebCertResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'dcdn.AssociateWebCert': %w", err)
|
||||
@@ -108,7 +108,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*aliddoscoo.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.DdoscooClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/ddoscoo
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -124,7 +124,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*aliddoscoo.C
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := aliddoscoo.NewClient(config)
|
||||
client, err := internal.NewDdoscooClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
aliddoscoo "github.com/alibabacloud-go/ddoscoo-20200101/v4/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/ddoscoo-20200101/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type DdoscooClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewDdoscooClient(config *openapiutil.Config) (*DdoscooClient, error) {
|
||||
client := new(DdoscooClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *DdoscooClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *DdoscooClient) AssociateWebCertWithContext(ctx context.Context, request *aliddoscoo.AssociateWebCertRequest, runtime *dara.RuntimeOptions) (_result *aliddoscoo.AssociateWebCertResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
body := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.Cert) {
|
||||
body["Cert"] = request.Cert
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertId) {
|
||||
body["CertId"] = request.CertId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertIdentifier) {
|
||||
body["CertIdentifier"] = request.CertIdentifier
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertName) {
|
||||
body["CertName"] = request.CertName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertRegion) {
|
||||
body["CertRegion"] = request.CertRegion
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Domain) {
|
||||
body["Domain"] = request.Domain
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Key) {
|
||||
body["Key"] = request.Key
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Body: openapiutil.ParseToMap(body),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("AssociateWebCert"),
|
||||
Version: dara.String("2020-01-01"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliddoscoo.AssociateWebCertResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -10,10 +10,12 @@ import (
|
||||
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
aliesa "github.com/alibabacloud-go/esa-20240910/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-esa/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -33,7 +35,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *aliesa.Client
|
||||
sdkClient *internal.EsaClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -101,7 +103,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
CasId: tea.Int64(certId),
|
||||
Region: tea.String(d.config.Region),
|
||||
}
|
||||
setCertificateResp, err := d.sdkClient.SetCertificate(setCertificateReq)
|
||||
setCertificateResp, err := d.sdkClient.SetCertificateWithContext(context.TODO(), setCertificateReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'esa.SetCertificate'", slog.Any("request", setCertificateReq), slog.Any("response", setCertificateResp))
|
||||
if err != nil {
|
||||
var sdkError *tea.SDKError
|
||||
@@ -116,7 +118,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*aliesa.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.EsaClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/ESA
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -132,7 +134,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*aliesa.Clien
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := aliesa.NewClient(config)
|
||||
client, err := internal.NewEsaClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
aliesa "github.com/alibabacloud-go/esa-20240910/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/esa-20240910/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type EsaClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewEsaClient(config *openapiutil.Config) (*EsaClient, error) {
|
||||
client := new(EsaClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *EsaClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *EsaClient) SetCertificateWithContext(ctx context.Context, request *aliesa.SetCertificateRequest, runtime *dara.RuntimeOptions) (_result *aliesa.SetCertificateResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.OwnerId) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityToken) {
|
||||
query["SecurityToken"] = request.SecurityToken
|
||||
}
|
||||
|
||||
body := map[string]interface{}{}
|
||||
if !dara.IsNil(request.CasId) {
|
||||
body["CasId"] = request.CasId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Certificate) {
|
||||
body["Certificate"] = request.Certificate
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Id) {
|
||||
body["Id"] = request.Id
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Name) {
|
||||
body["Name"] = request.Name
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.PrivateKey) {
|
||||
body["PrivateKey"] = request.PrivateKey
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Region) {
|
||||
body["Region"] = request.Region
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SiteId) {
|
||||
body["SiteId"] = request.SiteId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Type) {
|
||||
body["Type"] = request.Type
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
Body: openapiutil.ParseToMap(body),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("SetCertificate"),
|
||||
Version: dara.String("2024-09-10"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliesa.SetCertificateResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -10,8 +10,11 @@ import (
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
alifc3 "github.com/alibabacloud-go/fc-20230330/v4/client"
|
||||
alifc2 "github.com/alibabacloud-go/fc-open-20210406/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-fc/internal"
|
||||
)
|
||||
|
||||
type SSLDeployerProviderConfig struct {
|
||||
@@ -39,8 +42,8 @@ type SSLDeployerProvider struct {
|
||||
var _ core.SSLDeployer = (*SSLDeployerProvider)(nil)
|
||||
|
||||
type wSDKClients struct {
|
||||
FC2 *alifc2.Client
|
||||
FC3 *alifc3.Client
|
||||
FC2 *internal.FcopenClient
|
||||
FC3 *internal.FcClient
|
||||
}
|
||||
|
||||
func NewSSLDeployerProvider(config *SSLDeployerProviderConfig) (*SSLDeployerProvider, error) {
|
||||
@@ -94,7 +97,7 @@ func (d *SSLDeployerProvider) deployToFC3(ctx context.Context, certPEM string, p
|
||||
|
||||
// 获取自定义域名
|
||||
// REF: https://help.aliyun.com/zh/functioncompute/fc-3-0/developer-reference/api-fc-2023-03-30-getcustomdomain
|
||||
getCustomDomainResp, err := d.sdkClients.FC3.GetCustomDomain(tea.String(d.config.Domain))
|
||||
getCustomDomainResp, err := d.sdkClients.FC3.GetCustomDomainWithContext(context.TODO(), tea.String(d.config.Domain), make(map[string]*string), &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'fc.GetCustomDomain'", slog.Any("response", getCustomDomainResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'fc.GetCustomDomain': %w", err)
|
||||
@@ -116,7 +119,7 @@ func (d *SSLDeployerProvider) deployToFC3(ctx context.Context, certPEM string, p
|
||||
if tea.StringValue(updateCustomDomainReq.Body.Protocol) == "HTTP" {
|
||||
updateCustomDomainReq.Body.Protocol = tea.String("HTTP,HTTPS")
|
||||
}
|
||||
updateCustomDomainResp, err := d.sdkClients.FC3.UpdateCustomDomain(tea.String(d.config.Domain), updateCustomDomainReq)
|
||||
updateCustomDomainResp, err := d.sdkClients.FC3.UpdateCustomDomainWithContext(context.TODO(), tea.String(d.config.Domain), updateCustomDomainReq, make(map[string]*string), &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'fc.UpdateCustomDomain'", slog.Any("request", updateCustomDomainReq), slog.Any("response", updateCustomDomainResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'fc.UpdateCustomDomain': %w", err)
|
||||
@@ -178,7 +181,7 @@ func createSDKClients(accessKeyId, accessKeySecret, region string) (*wSDKClients
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
Endpoint: tea.String(fc2Endpoint),
|
||||
}
|
||||
fc2Client, err := alifc2.NewClient(fc2Config)
|
||||
fc2Client, err := internal.NewFcopenClient(fc2Config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -199,7 +202,7 @@ func createSDKClients(accessKeyId, accessKeySecret, region string) (*wSDKClients
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
Endpoint: tea.String(fc3Endpoint),
|
||||
}
|
||||
fc3Client, err := alifc3.NewClient(fc3Config)
|
||||
fc3Client, err := internal.NewFcClient(fc3Config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,253 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutilv2 "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
alifc "github.com/alibabacloud-go/fc-20230330/v4/client"
|
||||
alifcopen "github.com/alibabacloud-go/fc-open-20210406/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/openapi-util/service"
|
||||
util "github.com/alibabacloud-go/tea-utils/v2/service"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/fc-20230330/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type FcClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewFcClient(config *openapiutilv2.Config) (*FcClient, error) {
|
||||
client := new(FcClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *FcClient) Init(config *openapiutilv2.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *FcClient) GetCustomDomainWithContext(ctx context.Context, domainName *string, headers map[string]*string, runtime *dara.RuntimeOptions) (_result *alifc.GetCustomDomainResponse, _err error) {
|
||||
req := &openapiutilv2.OpenApiRequest{
|
||||
Headers: headers,
|
||||
}
|
||||
params := &openapiutilv2.Params{
|
||||
Action: dara.String("GetCustomDomain"),
|
||||
Version: dara.String("2023-03-30"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/2023-03-30/custom-domains/" + dara.PercentEncode(dara.StringValue(domainName))),
|
||||
Method: dara.String("GET"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("ROA"),
|
||||
ReqBodyType: dara.String("json"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alifc.GetCustomDomainResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *FcClient) UpdateCustomDomainWithContext(ctx context.Context, domainName *string, request *alifc.UpdateCustomDomainRequest, headers map[string]*string, runtime *dara.RuntimeOptions) (_result *alifc.UpdateCustomDomainResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
req := &openapiutilv2.OpenApiRequest{
|
||||
Headers: headers,
|
||||
Body: openapiutil.ParseToMap(request.Body),
|
||||
}
|
||||
params := &openapiutilv2.Params{
|
||||
Action: dara.String("UpdateCustomDomain"),
|
||||
Version: dara.String("2023-03-30"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/2023-03-30/custom-domains/" + dara.PercentEncode(dara.StringValue(domainName))),
|
||||
Method: dara.String("PUT"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("ROA"),
|
||||
ReqBodyType: dara.String("json"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alifc.UpdateCustomDomainResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/fc-open-20210406/blob/master/client/client.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type FcopenClient struct {
|
||||
openapi.Client
|
||||
}
|
||||
|
||||
func NewFcopenClient(config *openapi.Config) (*FcopenClient, error) {
|
||||
client := new(FcopenClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *FcopenClient) Init(config *openapi.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *FcopenClient) GetCustomDomain(domainName *string) (_result *alifcopen.GetCustomDomainResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
headers := &alifcopen.GetCustomDomainHeaders{}
|
||||
_result = &alifcopen.GetCustomDomainResponse{}
|
||||
_body, _err := client.GetCustomDomainWithOptions(domainName, headers, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *FcopenClient) GetCustomDomainWithOptions(domainName *string, headers *alifcopen.GetCustomDomainHeaders, runtime *util.RuntimeOptions) (_result *alifcopen.GetCustomDomainResponse, _err error) {
|
||||
realHeaders := make(map[string]*string)
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(headers.CommonHeaders)) {
|
||||
realHeaders = headers.CommonHeaders
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(headers.XFcAccountId)) {
|
||||
realHeaders["X-Fc-Account-Id"] = util.ToJSONString(headers.XFcAccountId)
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(headers.XFcDate)) {
|
||||
realHeaders["X-Fc-Date"] = util.ToJSONString(headers.XFcDate)
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(headers.XFcTraceId)) {
|
||||
realHeaders["X-Fc-Trace-Id"] = util.ToJSONString(headers.XFcTraceId)
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Headers: realHeaders,
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("GetCustomDomain"),
|
||||
Version: tea.String("2021-04-06"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/2021-04-06/custom-domains/" + tea.StringValue(openapiutil.GetEncodeParam(domainName))),
|
||||
Method: tea.String("GET"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("ROA"),
|
||||
ReqBodyType: tea.String("json"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alifcopen.GetCustomDomainResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *FcopenClient) UpdateCustomDomain(domainName *string, request *alifcopen.UpdateCustomDomainRequest) (_result *alifcopen.UpdateCustomDomainResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
headers := &alifcopen.UpdateCustomDomainHeaders{}
|
||||
_result = &alifcopen.UpdateCustomDomainResponse{}
|
||||
_body, _err := client.UpdateCustomDomainWithOptions(domainName, request, headers, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *FcopenClient) UpdateCustomDomainWithOptions(domainName *string, request *alifcopen.UpdateCustomDomainRequest, headers *alifcopen.UpdateCustomDomainHeaders, runtime *util.RuntimeOptions) (_result *alifcopen.UpdateCustomDomainResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
body := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.CertConfig)) {
|
||||
body["certConfig"] = request.CertConfig
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Protocol)) {
|
||||
body["protocol"] = request.Protocol
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RouteConfig)) {
|
||||
body["routeConfig"] = request.RouteConfig
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.TlsConfig)) {
|
||||
body["tlsConfig"] = request.TlsConfig
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.WafConfig)) {
|
||||
body["wafConfig"] = request.WafConfig
|
||||
}
|
||||
|
||||
realHeaders := make(map[string]*string)
|
||||
if !tea.BoolValue(util.IsUnset(headers.CommonHeaders)) {
|
||||
realHeaders = headers.CommonHeaders
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(headers.XFcAccountId)) {
|
||||
realHeaders["X-Fc-Account-Id"] = util.ToJSONString(headers.XFcAccountId)
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(headers.XFcDate)) {
|
||||
realHeaders["X-Fc-Date"] = util.ToJSONString(headers.XFcDate)
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(headers.XFcTraceId)) {
|
||||
realHeaders["X-Fc-Trace-Id"] = util.ToJSONString(headers.XFcTraceId)
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Headers: realHeaders,
|
||||
Body: openapiutil.ParseToMap(body),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("UpdateCustomDomain"),
|
||||
Version: tea.String("2021-04-06"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/2021-04-06/custom-domains/" + tea.StringValue(openapiutil.GetEncodeParam(domainName))),
|
||||
Method: tea.String("PUT"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("ROA"),
|
||||
ReqBodyType: tea.String("json"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alifcopen.UpdateCustomDomainResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-ga/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -38,7 +39,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *aliga.Client
|
||||
sdkClient *internal.GaClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -303,7 +304,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
return nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*aliga.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*internal.GaClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/Ga
|
||||
config := &aliopen.Config{
|
||||
AccessKeyId: tea.String(accessKeyId),
|
||||
@@ -311,7 +312,7 @@ func createSDKClient(accessKeyId, accessKeySecret string) (*aliga.Client, error)
|
||||
Endpoint: tea.String("ga.cn-hangzhou.aliyuncs.com"),
|
||||
}
|
||||
|
||||
client, err := aliga.NewClient(config)
|
||||
client, err := internal.NewGaClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,391 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
aliga "github.com/alibabacloud-go/ga-20191120/v3/client"
|
||||
openapiutil "github.com/alibabacloud-go/openapi-util/service"
|
||||
util "github.com/alibabacloud-go/tea-utils/v2/service"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/ga-20191120/blob/master/client/client.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type GaClient struct {
|
||||
openapi.Client
|
||||
}
|
||||
|
||||
func NewGaClient(config *openapi.Config) (*GaClient, error) {
|
||||
client := new(GaClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *GaClient) Init(config *openapi.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *GaClient) AssociateAdditionalCertificatesWithListenerWithOptions(request *aliga.AssociateAdditionalCertificatesWithListenerRequest, runtime *util.RuntimeOptions) (_result *aliga.AssociateAdditionalCertificatesWithListenerResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AcceleratorId)) {
|
||||
query["AcceleratorId"] = request.AcceleratorId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Certificates)) {
|
||||
query["Certificates"] = request.Certificates
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ClientToken)) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerId)) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("AssociateAdditionalCertificatesWithListener"),
|
||||
Version: tea.String("2019-11-20"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &aliga.AssociateAdditionalCertificatesWithListenerResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) AssociateAdditionalCertificatesWithListener(request *aliga.AssociateAdditionalCertificatesWithListenerRequest) (_result *aliga.AssociateAdditionalCertificatesWithListenerResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &aliga.AssociateAdditionalCertificatesWithListenerResponse{}
|
||||
_body, _err := client.AssociateAdditionalCertificatesWithListenerWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) ListListenersWithOptions(request *aliga.ListListenersRequest, runtime *util.RuntimeOptions) (_result *aliga.ListListenersResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AcceleratorId)) {
|
||||
query["AcceleratorId"] = request.AcceleratorId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.PageNumber)) {
|
||||
query["PageNumber"] = request.PageNumber
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.PageSize)) {
|
||||
query["PageSize"] = request.PageSize
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("ListListeners"),
|
||||
Version: tea.String("2019-11-20"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &aliga.ListListenersResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) ListListeners(request *aliga.ListListenersRequest) (_result *aliga.ListListenersResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &aliga.ListListenersResponse{}
|
||||
_body, _err := client.ListListenersWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) ListListenerCertificatesWithOptions(request *aliga.ListListenerCertificatesRequest, runtime *util.RuntimeOptions) (_result *aliga.ListListenerCertificatesResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AcceleratorId)) {
|
||||
query["AcceleratorId"] = request.AcceleratorId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerId)) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.MaxResults)) {
|
||||
query["MaxResults"] = request.MaxResults
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.NextToken)) {
|
||||
query["NextToken"] = request.NextToken
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Role)) {
|
||||
query["Role"] = request.Role
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("ListListenerCertificates"),
|
||||
Version: tea.String("2019-11-20"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &aliga.ListListenerCertificatesResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) ListListenerCertificates(request *aliga.ListListenerCertificatesRequest) (_result *aliga.ListListenerCertificatesResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &aliga.ListListenerCertificatesResponse{}
|
||||
_body, _err := client.ListListenerCertificatesWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) UpdateAdditionalCertificateWithListenerWithOptions(request *aliga.UpdateAdditionalCertificateWithListenerRequest, runtime *util.RuntimeOptions) (_result *aliga.UpdateAdditionalCertificateWithListenerResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AcceleratorId)) {
|
||||
query["AcceleratorId"] = request.AcceleratorId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.CertificateId)) {
|
||||
query["CertificateId"] = request.CertificateId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ClientToken)) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Domain)) {
|
||||
query["Domain"] = request.Domain
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.DryRun)) {
|
||||
query["DryRun"] = request.DryRun
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerId)) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("UpdateAdditionalCertificateWithListener"),
|
||||
Version: tea.String("2019-11-20"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &aliga.UpdateAdditionalCertificateWithListenerResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) UpdateAdditionalCertificateWithListener(request *aliga.UpdateAdditionalCertificateWithListenerRequest) (_result *aliga.UpdateAdditionalCertificateWithListenerResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &aliga.UpdateAdditionalCertificateWithListenerResponse{}
|
||||
_body, _err := client.UpdateAdditionalCertificateWithListenerWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) UpdateListenerWithOptions(request *aliga.UpdateListenerRequest, runtime *util.RuntimeOptions) (_result *aliga.UpdateListenerResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.BackendPorts)) {
|
||||
query["BackendPorts"] = request.BackendPorts
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Certificates)) {
|
||||
query["Certificates"] = request.Certificates
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ClientAffinity)) {
|
||||
query["ClientAffinity"] = request.ClientAffinity
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ClientToken)) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Description)) {
|
||||
query["Description"] = request.Description
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.HttpVersion)) {
|
||||
query["HttpVersion"] = request.HttpVersion
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.IdleTimeout)) {
|
||||
query["IdleTimeout"] = request.IdleTimeout
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ListenerId)) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Name)) {
|
||||
query["Name"] = request.Name
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.PortRanges)) {
|
||||
query["PortRanges"] = request.PortRanges
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Protocol)) {
|
||||
query["Protocol"] = request.Protocol
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ProxyProtocol)) {
|
||||
query["ProxyProtocol"] = request.ProxyProtocol
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RequestTimeout)) {
|
||||
query["RequestTimeout"] = request.RequestTimeout
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.SecurityPolicyId)) {
|
||||
query["SecurityPolicyId"] = request.SecurityPolicyId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.XForwardedForConfig)) {
|
||||
query["XForwardedForConfig"] = request.XForwardedForConfig
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("UpdateListener"),
|
||||
Version: tea.String("2019-11-20"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &aliga.UpdateListenerResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *GaClient) UpdateListener(request *aliga.UpdateListenerRequest) (_result *aliga.UpdateListenerResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &aliga.UpdateListenerResponse{}
|
||||
_body, _err := client.UpdateListenerWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
@@ -10,8 +10,11 @@ import (
|
||||
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
alilive "github.com/alibabacloud-go/live-20161101/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-live/internal"
|
||||
)
|
||||
|
||||
type SSLDeployerProviderConfig struct {
|
||||
@@ -30,7 +33,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alilive.Client
|
||||
sdkClient *internal.LiveClient
|
||||
}
|
||||
|
||||
var _ core.SSLDeployer = (*SSLDeployerProvider)(nil)
|
||||
@@ -78,7 +81,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
SSLPub: tea.String(certPEM),
|
||||
SSLPri: tea.String(privkeyPEM),
|
||||
}
|
||||
setLiveDomainSSLCertificateResp, err := d.sdkClient.SetLiveDomainCertificate(setLiveDomainSSLCertificateReq)
|
||||
setLiveDomainSSLCertificateResp, err := d.sdkClient.SetLiveDomainCertificateWithContext(context.TODO(), setLiveDomainSSLCertificateReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'live.SetLiveDomainCertificate'", slog.Any("request", setLiveDomainSSLCertificateReq), slog.Any("response", setLiveDomainSSLCertificateResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'live.SetLiveDomainCertificate': %w", err)
|
||||
@@ -87,7 +90,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*alilive.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.LiveClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/live
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -110,7 +113,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*alilive.Clie
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := alilive.NewClient(config)
|
||||
client, err := internal.NewLiveClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
alilive "github.com/alibabacloud-go/live-20161101/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/live-20161101/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type LiveClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewLiveClient(config *openapiutil.Config) (*LiveClient, error) {
|
||||
client := new(LiveClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *LiveClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *LiveClient) SetLiveDomainCertificateWithContext(ctx context.Context, request *alilive.SetLiveDomainCertificateRequest, runtime *dara.RuntimeOptions) (_result *alilive.SetLiveDomainCertificateResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertName) {
|
||||
query["CertName"] = request.CertName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertType) {
|
||||
query["CertType"] = request.CertType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DomainName) {
|
||||
query["DomainName"] = request.DomainName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ForceSet) {
|
||||
query["ForceSet"] = request.ForceSet
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.OwnerId) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPri) {
|
||||
query["SSLPri"] = request.SSLPri
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLProtocol) {
|
||||
query["SSLProtocol"] = request.SSLProtocol
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPub) {
|
||||
query["SSLPub"] = request.SSLPub
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityToken) {
|
||||
query["SecurityToken"] = request.SecurityToken
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("SetLiveDomainCertificate"),
|
||||
Version: dara.String("2016-11-01"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alilive.SetLiveDomainCertificateResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -9,10 +9,12 @@ import (
|
||||
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
alinlb "github.com/alibabacloud-go/nlb-20220430/v4/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-nlb/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -38,7 +40,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alinlb.Client
|
||||
sdkClient *internal.NlbClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -122,7 +124,7 @@ func (d *SSLDeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCer
|
||||
getLoadBalancerAttributeReq := &alinlb.GetLoadBalancerAttributeRequest{
|
||||
LoadBalancerId: tea.String(d.config.LoadbalancerId),
|
||||
}
|
||||
getLoadBalancerAttributeResp, err := d.sdkClient.GetLoadBalancerAttribute(getLoadBalancerAttributeReq)
|
||||
getLoadBalancerAttributeResp, err := d.sdkClient.GetLoadBalancerAttributeWithContext(context.TODO(), getLoadBalancerAttributeReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'nlb.GetLoadBalancerAttribute'", slog.Any("request", getLoadBalancerAttributeReq), slog.Any("response", getLoadBalancerAttributeResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'nlb.GetLoadBalancerAttribute': %w", err)
|
||||
@@ -146,7 +148,7 @@ func (d *SSLDeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCer
|
||||
LoadBalancerIds: []*string{tea.String(d.config.LoadbalancerId)},
|
||||
ListenerProtocol: tea.String("TCPSSL"),
|
||||
}
|
||||
listListenersResp, err := d.sdkClient.ListListeners(listListenersReq)
|
||||
listListenersResp, err := d.sdkClient.ListListenersWithContext(context.TODO(), listListenersReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'nlb.ListListeners'", slog.Any("request", listListenersReq), slog.Any("response", listListenersResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'nlb.ListListeners': %w", err)
|
||||
@@ -210,7 +212,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
getListenerAttributeReq := &alinlb.GetListenerAttributeRequest{
|
||||
ListenerId: tea.String(cloudListenerId),
|
||||
}
|
||||
getListenerAttributeResp, err := d.sdkClient.GetListenerAttribute(getListenerAttributeReq)
|
||||
getListenerAttributeResp, err := d.sdkClient.GetListenerAttributeWithContext(context.TODO(), getListenerAttributeReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'nlb.GetListenerAttribute'", slog.Any("request", getListenerAttributeReq), slog.Any("response", getListenerAttributeResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'nlb.GetListenerAttribute': %w", err)
|
||||
@@ -222,7 +224,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
ListenerId: tea.String(cloudListenerId),
|
||||
CertificateIds: []*string{tea.String(cloudCertId)},
|
||||
}
|
||||
updateListenerAttributeResp, err := d.sdkClient.UpdateListenerAttribute(updateListenerAttributeReq)
|
||||
updateListenerAttributeResp, err := d.sdkClient.UpdateListenerAttributeWithContext(context.TODO(), updateListenerAttributeReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'nlb.UpdateListenerAttribute'", slog.Any("request", updateListenerAttributeReq), slog.Any("response", updateListenerAttributeResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'nlb.UpdateListenerAttribute': %w", err)
|
||||
@@ -231,7 +233,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
return nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*alinlb.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.NlbClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/Nlb
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -247,7 +249,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*alinlb.Clien
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := alinlb.NewClient(config)
|
||||
client, err := internal.NewNlbClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,298 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
alinlb "github.com/alibabacloud-go/nlb-20220430/v4/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/nlb-20220430/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type NlbClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewNlbClient(config *openapiutil.Config) (*NlbClient, error) {
|
||||
client := new(NlbClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *NlbClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *NlbClient) GetListenerAttributeWithContext(ctx context.Context, request *alinlb.GetListenerAttributeRequest, runtime *dara.RuntimeOptions) (_result *alinlb.GetListenerAttributeResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.ClientToken) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DryRun) {
|
||||
query["DryRun"] = request.DryRun
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerId) {
|
||||
query["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("GetListenerAttribute"),
|
||||
Version: dara.String("2022-04-30"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alinlb.GetListenerAttributeResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *NlbClient) GetLoadBalancerAttributeWithContext(ctx context.Context, request *alinlb.GetLoadBalancerAttributeRequest, runtime *dara.RuntimeOptions) (_result *alinlb.GetLoadBalancerAttributeResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.ClientToken) {
|
||||
query["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DryRun) {
|
||||
query["DryRun"] = request.DryRun
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.LoadBalancerId) {
|
||||
query["LoadBalancerId"] = request.LoadBalancerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("GetLoadBalancerAttribute"),
|
||||
Version: dara.String("2022-04-30"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alinlb.GetLoadBalancerAttributeResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *NlbClient) ListListenersWithContext(ctx context.Context, request *alinlb.ListListenersRequest, runtime *dara.RuntimeOptions) (_result *alinlb.ListListenersResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.ListenerIds) {
|
||||
query["ListenerIds"] = request.ListenerIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerProtocol) {
|
||||
query["ListenerProtocol"] = request.ListenerProtocol
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.LoadBalancerIds) {
|
||||
query["LoadBalancerIds"] = request.LoadBalancerIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.MaxResults) {
|
||||
query["MaxResults"] = request.MaxResults
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.NextToken) {
|
||||
query["NextToken"] = request.NextToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecSensorEnabled) {
|
||||
query["SecSensorEnabled"] = request.SecSensorEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Tag) {
|
||||
query["Tag"] = request.Tag
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListListeners"),
|
||||
Version: dara.String("2022-04-30"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alinlb.ListListenersResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *NlbClient) UpdateListenerAttributeWithContext(ctx context.Context, tmpReq *alinlb.UpdateListenerAttributeRequest, runtime *dara.RuntimeOptions) (_result *alinlb.UpdateListenerAttributeResponse, _err error) {
|
||||
_err = tmpReq.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
request := &alinlb.UpdateListenerAttributeShrinkRequest{}
|
||||
openapiutil.Convert(tmpReq, request)
|
||||
if !dara.IsNil(tmpReq.ProxyProtocolV2Config) {
|
||||
request.ProxyProtocolV2ConfigShrink = openapiutil.ArrayToStringWithSpecifiedStyle(tmpReq.ProxyProtocolV2Config, dara.String("ProxyProtocolV2Config"), dara.String("json"))
|
||||
}
|
||||
|
||||
body := map[string]interface{}{}
|
||||
if !dara.IsNil(request.AlpnEnabled) {
|
||||
body["AlpnEnabled"] = request.AlpnEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.AlpnPolicy) {
|
||||
body["AlpnPolicy"] = request.AlpnPolicy
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CaCertificateIds) {
|
||||
body["CaCertificateIds"] = request.CaCertificateIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CaEnabled) {
|
||||
body["CaEnabled"] = request.CaEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertificateIds) {
|
||||
body["CertificateIds"] = request.CertificateIds
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ClientToken) {
|
||||
body["ClientToken"] = request.ClientToken
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Cps) {
|
||||
body["Cps"] = request.Cps
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DryRun) {
|
||||
body["DryRun"] = request.DryRun
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.IdleTimeout) {
|
||||
body["IdleTimeout"] = request.IdleTimeout
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerDescription) {
|
||||
body["ListenerDescription"] = request.ListenerDescription
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenerId) {
|
||||
body["ListenerId"] = request.ListenerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Mss) {
|
||||
body["Mss"] = request.Mss
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ProxyProtocolEnabled) {
|
||||
body["ProxyProtocolEnabled"] = request.ProxyProtocolEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ProxyProtocolV2ConfigShrink) {
|
||||
body["ProxyProtocolV2Config"] = request.ProxyProtocolV2ConfigShrink
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
body["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecSensorEnabled) {
|
||||
body["SecSensorEnabled"] = request.SecSensorEnabled
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityPolicyId) {
|
||||
body["SecurityPolicyId"] = request.SecurityPolicyId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ServerGroupId) {
|
||||
body["ServerGroupId"] = request.ServerGroupId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Body: openapiutil.ParseToMap(body),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("UpdateListenerAttribute"),
|
||||
Version: dara.String("2022-04-30"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alinlb.UpdateListenerAttributeResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -9,11 +9,13 @@ import (
|
||||
"strings"
|
||||
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
alivod "github.com/alibabacloud-go/vod-20170321/v4/client"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-vod/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -33,7 +35,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alivod.Client
|
||||
sdkClient *internal.VodClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -103,7 +105,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
Else(tea.String("ap-southeast-1")),
|
||||
SSLProtocol: tea.String("on"),
|
||||
}
|
||||
setVodDomainSSLCertificateResp, err := d.sdkClient.SetVodDomainSSLCertificate(setVodDomainSSLCertificateReq)
|
||||
setVodDomainSSLCertificateResp, err := d.sdkClient.SetVodDomainSSLCertificateWithContext(context.TODO(), setVodDomainSSLCertificateReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'live.SetVodDomainSSLCertificate'", slog.Any("request", setVodDomainSSLCertificateReq), slog.Any("response", setVodDomainSSLCertificateResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'live.SetVodDomainSSLCertificate': %w", err)
|
||||
@@ -112,7 +114,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*alivod.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.VodClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/vod
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -128,7 +130,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*alivod.Clien
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := alivod.NewClient(config)
|
||||
client, err := internal.NewVodClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
alivod "github.com/alibabacloud-go/vod-20170321/v4/client"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/vod-20170321/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type VodClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewVodClient(config *openapiutil.Config) (*VodClient, error) {
|
||||
client := new(VodClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *VodClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *VodClient) SetVodDomainSSLCertificateWithContext(ctx context.Context, request *alivod.SetVodDomainSSLCertificateRequest, runtime *dara.RuntimeOptions) (_result *alivod.SetVodDomainSSLCertificateResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertId) {
|
||||
query["CertId"] = request.CertId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertName) {
|
||||
query["CertName"] = request.CertName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertRegion) {
|
||||
query["CertRegion"] = request.CertRegion
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertType) {
|
||||
query["CertType"] = request.CertType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DomainName) {
|
||||
query["DomainName"] = request.DomainName
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Env) {
|
||||
query["Env"] = request.Env
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.OwnerId) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPri) {
|
||||
query["SSLPri"] = request.SSLPri
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLProtocol) {
|
||||
query["SSLProtocol"] = request.SSLProtocol
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SSLPub) {
|
||||
query["SSLPub"] = request.SSLPub
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SecurityToken) {
|
||||
query["SecurityToken"] = request.SecurityToken
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("SetVodDomainSSLCertificate"),
|
||||
Version: dara.String("2017-03-21"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alivod.SetVodDomainSSLCertificateResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -8,11 +8,13 @@ import (
|
||||
"strings"
|
||||
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
aliwaf "github.com/alibabacloud-go/waf-openapi-20211001/v6/client"
|
||||
aliwaf "github.com/alibabacloud-go/waf-openapi-20211001/v7/client"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-deployer/providers/aliyun-waf/internal"
|
||||
sslmgrsp "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas"
|
||||
)
|
||||
|
||||
@@ -36,7 +38,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *aliwaf.Client
|
||||
sdkClient *internal.WafClient
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -119,7 +121,7 @@ func (d *SSLDeployerProvider) deployToWAF3(ctx context.Context, certPEM string,
|
||||
InstanceId: tea.String(d.config.InstanceId),
|
||||
RegionId: tea.String(d.config.Region),
|
||||
}
|
||||
describeDefaultHttpsResp, err := d.sdkClient.DescribeDefaultHttps(describeDefaultHttpsReq)
|
||||
describeDefaultHttpsResp, err := d.sdkClient.DescribeDefaultHttpsWithContext(context.TODO(), describeDefaultHttpsReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'waf.DescribeDefaultHttps'", slog.Any("request", describeDefaultHttpsReq), slog.Any("response", describeDefaultHttpsResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'waf.DescribeDefaultHttps': %w", err)
|
||||
@@ -143,7 +145,7 @@ func (d *SSLDeployerProvider) deployToWAF3(ctx context.Context, certPEM string,
|
||||
modifyDefaultHttpsReq.EnableTLSv3 = describeDefaultHttpsResp.Body.DefaultHttps.EnableTLSv3
|
||||
}
|
||||
}
|
||||
modifyDefaultHttpsResp, err := d.sdkClient.ModifyDefaultHttps(modifyDefaultHttpsReq)
|
||||
modifyDefaultHttpsResp, err := d.sdkClient.ModifyDefaultHttpsWithContext(context.TODO(), modifyDefaultHttpsReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'waf.ModifyDefaultHttps'", slog.Any("request", modifyDefaultHttpsReq), slog.Any("response", modifyDefaultHttpsResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'waf.ModifyDefaultHttps': %w", err)
|
||||
@@ -158,7 +160,7 @@ func (d *SSLDeployerProvider) deployToWAF3(ctx context.Context, certPEM string,
|
||||
RegionId: tea.String(d.config.Region),
|
||||
Domain: tea.String(d.config.Domain),
|
||||
}
|
||||
describeDomainDetailResp, err := d.sdkClient.DescribeDomainDetail(describeDomainDetailReq)
|
||||
describeDomainDetailResp, err := d.sdkClient.DescribeDomainDetailWithContext(context.TODO(), describeDomainDetailReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'waf.DescribeDomainDetail'", slog.Any("request", describeDomainDetailReq), slog.Any("response", describeDomainDetailResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'waf.DescribeDomainDetail': %w", err)
|
||||
@@ -174,7 +176,7 @@ func (d *SSLDeployerProvider) deployToWAF3(ctx context.Context, certPEM string,
|
||||
Redirect: &aliwaf.ModifyDomainRequestRedirect{Loadbalance: tea.String("iphash")},
|
||||
}
|
||||
modifyDomainReq = assign(modifyDomainReq, describeDomainDetailResp.Body)
|
||||
modifyDomainResp, err := d.sdkClient.ModifyDomain(modifyDomainReq)
|
||||
modifyDomainResp, err := d.sdkClient.ModifyDomainWithContext(context.TODO(), modifyDomainReq, &dara.RuntimeOptions{})
|
||||
d.logger.Debug("sdk request 'waf.ModifyDomain'", slog.Any("request", modifyDomainReq), slog.Any("response", modifyDomainResp))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to execute sdk request 'waf.ModifyDomain': %w", err)
|
||||
@@ -184,7 +186,7 @@ func (d *SSLDeployerProvider) deployToWAF3(ctx context.Context, certPEM string,
|
||||
return nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*aliwaf.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.WafClient, error) {
|
||||
// 接入点一览:https://api.aliyun.com/product/waf-openapi
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -200,7 +202,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*aliwaf.Clien
|
||||
Endpoint: tea.String(endpoint),
|
||||
}
|
||||
|
||||
client, err := aliwaf.NewClient(config)
|
||||
client, err := internal.NewWafClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
aliwaf "github.com/alibabacloud-go/waf-openapi-20211001/v7/client"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/waf-openapi-20211001/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type WafClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewWafClient(config *openapiutil.Config) (*WafClient, error) {
|
||||
client := new(WafClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *WafClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *WafClient) DescribeDefaultHttpsWithContext(ctx context.Context, request *aliwaf.DescribeDefaultHttpsRequest, runtime *dara.RuntimeOptions) (_result *aliwaf.DescribeDefaultHttpsResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.InstanceId) {
|
||||
query["InstanceId"] = request.InstanceId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ResourceManagerResourceGroupId) {
|
||||
query["ResourceManagerResourceGroupId"] = request.ResourceManagerResourceGroupId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("DescribeDefaultHttps"),
|
||||
Version: dara.String("2021-10-01"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliwaf.DescribeDefaultHttpsResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *WafClient) DescribeDomainDetailWithContext(ctx context.Context, request *aliwaf.DescribeDomainDetailRequest, runtime *dara.RuntimeOptions) (_result *aliwaf.DescribeDomainDetailResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.Domain) {
|
||||
query["Domain"] = request.Domain
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DomainId) {
|
||||
query["DomainId"] = request.DomainId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.InstanceId) {
|
||||
query["InstanceId"] = request.InstanceId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("DescribeDomainDetail"),
|
||||
Version: dara.String("2021-10-01"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliwaf.DescribeDomainDetailResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *WafClient) ModifyDefaultHttpsWithContext(ctx context.Context, request *aliwaf.ModifyDefaultHttpsRequest, runtime *dara.RuntimeOptions) (_result *aliwaf.ModifyDefaultHttpsResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertId) {
|
||||
query["CertId"] = request.CertId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CipherSuite) {
|
||||
query["CipherSuite"] = request.CipherSuite
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CustomCiphers) {
|
||||
query["CustomCiphers"] = request.CustomCiphers
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.EnableTLSv3) {
|
||||
query["EnableTLSv3"] = request.EnableTLSv3
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.InstanceId) {
|
||||
query["InstanceId"] = request.InstanceId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ResourceManagerResourceGroupId) {
|
||||
query["ResourceManagerResourceGroupId"] = request.ResourceManagerResourceGroupId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.TLSVersion) {
|
||||
query["TLSVersion"] = request.TLSVersion
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ModifyDefaultHttps"),
|
||||
Version: dara.String("2021-10-01"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliwaf.ModifyDefaultHttpsResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *WafClient) ModifyDomainWithContext(ctx context.Context, tmpReq *aliwaf.ModifyDomainRequest, runtime *dara.RuntimeOptions) (_result *aliwaf.ModifyDomainResponse, _err error) {
|
||||
_err = tmpReq.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
request := &aliwaf.ModifyDomainShrinkRequest{}
|
||||
openapiutil.Convert(tmpReq, request)
|
||||
if !dara.IsNil(tmpReq.Listen) {
|
||||
request.ListenShrink = openapiutil.ArrayToStringWithSpecifiedStyle(tmpReq.Listen, dara.String("Listen"), dara.String("json"))
|
||||
}
|
||||
|
||||
if !dara.IsNil(tmpReq.Redirect) {
|
||||
request.RedirectShrink = openapiutil.ArrayToStringWithSpecifiedStyle(tmpReq.Redirect, dara.String("Redirect"), dara.String("json"))
|
||||
}
|
||||
|
||||
query := map[string]interface{}{}
|
||||
if !dara.IsNil(request.AccessType) {
|
||||
query["AccessType"] = request.AccessType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Domain) {
|
||||
query["Domain"] = request.Domain
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.DomainId) {
|
||||
query["DomainId"] = request.DomainId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.InstanceId) {
|
||||
query["InstanceId"] = request.InstanceId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ListenShrink) {
|
||||
query["Listen"] = request.ListenShrink
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RedirectShrink) {
|
||||
query["Redirect"] = request.RedirectShrink
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.RegionId) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ModifyDomain"),
|
||||
Version: dara.String("2021-10-01"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &aliwaf.ModifyDomainResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
|
||||
bceappblb "github.com/baidubce/bce-sdk-go/services/appblb"
|
||||
"github.com/google/uuid"
|
||||
"github.com/pocketbase/pocketbase/tools/security"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
@@ -264,7 +264,7 @@ func (d *SSLDeployerProvider) updateHttpsListenerCertificate(ctx context.Context
|
||||
// 更新 HTTPS 监听器
|
||||
// REF: https://cloud.baidu.com/doc/BLB/s/ujwvxnyux#updateapphttpslistener%E6%9B%B4%E6%96%B0https%E7%9B%91%E5%90%AC%E5%99%A8
|
||||
updateAppHTTPSListenerReq := &bceappblb.UpdateAppHTTPSListenerArgs{
|
||||
ClientToken: generateClientToken(),
|
||||
ClientToken: security.RandomString(32),
|
||||
ListenerPort: uint16(cloudHttpsListenerPort),
|
||||
Scheduler: describeAppHTTPSListenersResp.ListenerList[0].Scheduler,
|
||||
CertIds: []string{cloudCertId},
|
||||
@@ -280,7 +280,7 @@ func (d *SSLDeployerProvider) updateHttpsListenerCertificate(ctx context.Context
|
||||
// 更新 HTTPS 监听器
|
||||
// REF: https://cloud.baidu.com/doc/BLB/s/yjwvxnvl6#updatehttpslistener%E6%9B%B4%E6%96%B0https%E7%9B%91%E5%90%AC%E5%99%A8
|
||||
updateAppHTTPSListenerReq := &bceappblb.UpdateAppHTTPSListenerArgs{
|
||||
ClientToken: generateClientToken(),
|
||||
ClientToken: security.RandomString(32),
|
||||
ListenerPort: uint16(cloudHttpsListenerPort),
|
||||
Scheduler: describeAppHTTPSListenersResp.ListenerList[0].Scheduler,
|
||||
CertIds: describeAppHTTPSListenersResp.ListenerList[0].CertIds,
|
||||
@@ -312,7 +312,7 @@ func (d *SSLDeployerProvider) updateSslListenerCertificate(ctx context.Context,
|
||||
// 更新 SSL 监听器
|
||||
// REF: https://cloud.baidu.com/doc/BLB/s/ujwvxnyux#updateappssllistener%E6%9B%B4%E6%96%B0ssl%E7%9B%91%E5%90%AC%E5%99%A8
|
||||
updateAppSSLListenerReq := &bceappblb.UpdateAppSSLListenerArgs{
|
||||
ClientToken: generateClientToken(),
|
||||
ClientToken: security.RandomString(32),
|
||||
ListenerPort: uint16(cloudHttpsListenerPort),
|
||||
CertIds: []string{cloudCertId},
|
||||
}
|
||||
@@ -338,7 +338,3 @@ func createSDKClient(accessKeyId, secretAccessKey, region string) (*bceappblb.Cl
|
||||
|
||||
return client, nil
|
||||
}
|
||||
|
||||
func generateClientToken() string {
|
||||
return strings.ReplaceAll(uuid.New().String(), "-", "")
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
|
||||
bceblb "github.com/baidubce/bce-sdk-go/services/blb"
|
||||
"github.com/google/uuid"
|
||||
"github.com/pocketbase/pocketbase/tools/security"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
@@ -264,7 +264,7 @@ func (d *SSLDeployerProvider) updateHttpsListenerCertificate(ctx context.Context
|
||||
// 更新 HTTPS 监听器
|
||||
// REF: https://cloud.baidu.com/doc/BLB/s/yjwvxnvl6#updatehttpslistener%E6%9B%B4%E6%96%B0https%E7%9B%91%E5%90%AC%E5%99%A8
|
||||
updateHTTPSListenerReq := &bceblb.UpdateHTTPSListenerArgs{
|
||||
ClientToken: generateClientToken(),
|
||||
ClientToken: security.RandomString(32),
|
||||
ListenerPort: uint16(cloudHttpsListenerPort),
|
||||
CertIds: []string{cloudCertId},
|
||||
}
|
||||
@@ -279,7 +279,7 @@ func (d *SSLDeployerProvider) updateHttpsListenerCertificate(ctx context.Context
|
||||
// 更新 HTTPS 监听器
|
||||
// REF: https://cloud.baidu.com/doc/BLB/s/yjwvxnvl6#updatehttpslistener%E6%9B%B4%E6%96%B0https%E7%9B%91%E5%90%AC%E5%99%A8
|
||||
updateHTTPSListenerReq := &bceblb.UpdateHTTPSListenerArgs{
|
||||
ClientToken: generateClientToken(),
|
||||
ClientToken: security.RandomString(32),
|
||||
ListenerPort: uint16(cloudHttpsListenerPort),
|
||||
CertIds: describeHTTPSListenersResp.ListenerList[0].CertIds,
|
||||
AdditionalCertDomains: lo.Map(describeHTTPSListenersResp.ListenerList[0].AdditionalCertDomains, func(domain bceblb.AdditionalCertDomainsModel, _ int) bceblb.AdditionalCertDomainsModel {
|
||||
@@ -310,7 +310,7 @@ func (d *SSLDeployerProvider) updateSslListenerCertificate(ctx context.Context,
|
||||
// 更新 SSL 监听器
|
||||
// REF: https://cloud.baidu.com/doc/BLB/s/yjwvxnvl6#updatessllistener%E6%9B%B4%E6%96%B0ssl%E7%9B%91%E5%90%AC%E5%99%A8
|
||||
updateSSLListenerReq := &bceblb.UpdateSSLListenerArgs{
|
||||
ClientToken: generateClientToken(),
|
||||
ClientToken: security.RandomString(32),
|
||||
ListenerPort: uint16(cloudHttpsListenerPort),
|
||||
CertIds: []string{cloudCertId},
|
||||
}
|
||||
@@ -336,7 +336,3 @@ func createSDKClient(accessKeyId, secretAccessKey, region string) (*bceblb.Clien
|
||||
|
||||
return client, nil
|
||||
}
|
||||
|
||||
func generateClientToken() string {
|
||||
return strings.ReplaceAll(uuid.New().String(), "-", "")
|
||||
}
|
||||
|
||||
@@ -258,6 +258,6 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*jdlbclient.LbClient, error) {
|
||||
clientCredentials := jdcore.NewCredentials(accessKeyId, accessKeySecret)
|
||||
client := jdlbclient.NewLbClient(clientCredentials)
|
||||
client.SetLogger(jdcore.NewDefaultLogger(jdcore.LogWarn))
|
||||
client.DisableLogger()
|
||||
return client, nil
|
||||
}
|
||||
|
||||
@@ -111,6 +111,6 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*jdcdnclient.CdnClient, error) {
|
||||
clientCredentials := jdcore.NewCredentials(accessKeyId, accessKeySecret)
|
||||
client := jdcdnclient.NewCdnClient(clientCredentials)
|
||||
client.SetLogger(jdcore.NewDefaultLogger(jdcore.LogWarn))
|
||||
client.DisableLogger()
|
||||
return client, nil
|
||||
}
|
||||
|
||||
@@ -76,6 +76,6 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*jdliveclient.LiveClient, error) {
|
||||
clientCredentials := jdcore.NewCredentials(accessKeyId, accessKeySecret)
|
||||
client := jdliveclient.NewLiveClient(clientCredentials)
|
||||
client.SetLogger(jdcore.NewDefaultLogger(jdcore.LogWarn))
|
||||
client.DisableLogger()
|
||||
return client, nil
|
||||
}
|
||||
|
||||
@@ -125,6 +125,6 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*jdvodclient.VodClient, error) {
|
||||
clientCredentials := jdcore.NewCredentials(accessKeyId, accessKeySecret)
|
||||
client := jdvodclient.NewVodClient(clientCredentials)
|
||||
client.SetLogger(jdcore.NewDefaultLogger(jdcore.LogWarn))
|
||||
client.DisableLogger()
|
||||
return client, nil
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"strings"
|
||||
|
||||
k8score "k8s.io/api/core/v1"
|
||||
k8serrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
k8smeta "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
@@ -87,7 +88,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
// 连接
|
||||
client, err := createK8sClient(d.config.KubeConfig)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create k8s client: %w", err)
|
||||
return nil, fmt.Errorf("failed to create kubernetes client: %w", err)
|
||||
}
|
||||
|
||||
var secretPayload *k8score.Secret
|
||||
@@ -113,6 +114,10 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
// 获取 Secret 实例,如果不存在则创建
|
||||
secretPayload, err = client.CoreV1().Secrets(d.config.Namespace).Get(context.TODO(), d.config.SecretName, k8smeta.GetOptions{})
|
||||
if err != nil {
|
||||
if !k8serrors.IsNotFound(err) {
|
||||
return nil, fmt.Errorf("failed to get kubernetes secret: %w", err)
|
||||
}
|
||||
|
||||
secretPayload = &k8score.Secret{
|
||||
TypeMeta: k8smeta.TypeMeta{
|
||||
Kind: "Secret",
|
||||
@@ -130,9 +135,9 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
secretPayload.Data[d.config.SecretDataKeyForKey] = []byte(privkeyPEM)
|
||||
|
||||
secretPayload, err = client.CoreV1().Secrets(d.config.Namespace).Create(context.TODO(), secretPayload, k8smeta.CreateOptions{})
|
||||
d.logger.Debug("k8s operate 'Secrets.Create'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload))
|
||||
d.logger.Debug("kubernetes operate 'Secrets.Create'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create k8s secret: %w", err)
|
||||
return nil, fmt.Errorf("failed to create kubernetes secret: %w", err)
|
||||
} else {
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
@@ -160,9 +165,9 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
secretPayload.Data[d.config.SecretDataKeyForCrt] = []byte(certPEM)
|
||||
secretPayload.Data[d.config.SecretDataKeyForKey] = []byte(privkeyPEM)
|
||||
secretPayload, err = client.CoreV1().Secrets(d.config.Namespace).Update(context.TODO(), secretPayload, k8smeta.UpdateOptions{})
|
||||
d.logger.Debug("k8s operate 'Secrets.Update'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload))
|
||||
d.logger.Debug("kubernetes operate 'Secrets.Update'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to update k8s secret: %w", err)
|
||||
return nil, fmt.Errorf("failed to update kubernetes secret: %w", err)
|
||||
}
|
||||
|
||||
return &core.SSLDeployResult{}, nil
|
||||
|
||||
@@ -38,7 +38,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *vealb.ALB
|
||||
sdkClient vealb.ALBAPI
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -259,7 +259,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
return nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*vealb.ALB, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (vealb.ALBAPI, error) {
|
||||
config := ve.NewConfig().
|
||||
WithAkSk(accessKeyId, accessKeySecret).
|
||||
WithRegion(region)
|
||||
|
||||
@@ -31,7 +31,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *vecdn.CDN
|
||||
sdkClient vecdn.CDNAPI
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -247,7 +247,7 @@ func (d *SSLDeployerProvider) bindCert(ctx context.Context, domain string, cloud
|
||||
return nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*vecdn.CDN, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (vecdn.CDNAPI, error) {
|
||||
config := ve.NewConfig().
|
||||
WithAkSk(accessKeyId, accessKeySecret)
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *veclb.CLB
|
||||
sdkClient veclb.CLBAPI
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ func (d *SSLDeployerProvider) updateListenerCertificate(ctx context.Context, clo
|
||||
return nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*veclb.CLB, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (veclb.CLBAPI, error) {
|
||||
config := ve.NewConfig().
|
||||
WithAkSk(accessKeyId, accessKeySecret).
|
||||
WithRegion(region)
|
||||
|
||||
@@ -29,7 +29,7 @@ type SSLDeployerProviderConfig struct {
|
||||
type SSLDeployerProvider struct {
|
||||
config *SSLDeployerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *vedcdn.DCDN
|
||||
sdkClient vedcdn.DCDNAPI
|
||||
sslManager core.SSLManager
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
return &core.SSLDeployResult{}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*vedcdn.DCDN, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (vedcdn.DCDNAPI, error) {
|
||||
if region == "" {
|
||||
region = "cn-beijing" // DCDN 服务默认区域:北京
|
||||
}
|
||||
|
||||
@@ -10,10 +10,12 @@ import (
|
||||
|
||||
alicas "github.com/alibabacloud-go/cas-20200407/v4/client"
|
||||
aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-cas/internal"
|
||||
xcert "github.com/certimate-go/certimate/pkg/utils/cert"
|
||||
)
|
||||
|
||||
@@ -31,7 +33,7 @@ type SSLManagerProviderConfig struct {
|
||||
type SSLManagerProvider struct {
|
||||
config *SSLManagerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alicas.Client
|
||||
sdkClient *internal.CasClient
|
||||
}
|
||||
|
||||
var _ core.SSLManager = (*SSLManagerProvider)(nil)
|
||||
@@ -86,7 +88,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
ShowSize: tea.Int64(listUserCertificateOrderLimit),
|
||||
OrderType: tea.String("CERT"),
|
||||
}
|
||||
listUserCertificateOrderResp, err := m.sdkClient.ListUserCertificateOrder(listUserCertificateOrderReq)
|
||||
listUserCertificateOrderResp, err := m.sdkClient.ListUserCertificateOrderWithContext(context.TODO(), listUserCertificateOrderReq, &dara.RuntimeOptions{})
|
||||
m.logger.Debug("sdk request 'cas.ListUserCertificateOrder'", slog.Any("request", listUserCertificateOrderReq), slog.Any("response", listUserCertificateOrderResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cas.ListUserCertificateOrder': %w", err)
|
||||
@@ -111,7 +113,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
getUserCertificateDetailReq := &alicas.GetUserCertificateDetailRequest{
|
||||
CertId: certOrder.CertificateId,
|
||||
}
|
||||
getUserCertificateDetailResp, err := m.sdkClient.GetUserCertificateDetail(getUserCertificateDetailReq)
|
||||
getUserCertificateDetailResp, err := m.sdkClient.GetUserCertificateDetailWithContext(context.TODO(), getUserCertificateDetailReq, &dara.RuntimeOptions{})
|
||||
m.logger.Debug("sdk request 'cas.GetUserCertificateDetail'", slog.Any("request", getUserCertificateDetailReq), slog.Any("response", getUserCertificateDetailResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cas.GetUserCertificateDetail': %w", err)
|
||||
@@ -152,7 +154,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
Cert: tea.String(certPEM),
|
||||
Key: tea.String(privkeyPEM),
|
||||
}
|
||||
uploadUserCertificateResp, err := m.sdkClient.UploadUserCertificate(uploadUserCertificateReq)
|
||||
uploadUserCertificateResp, err := m.sdkClient.UploadUserCertificateWithContext(context.TODO(), uploadUserCertificateReq, &dara.RuntimeOptions{})
|
||||
m.logger.Debug("sdk request 'cas.UploadUserCertificate'", slog.Any("request", uploadUserCertificateReq), slog.Any("response", uploadUserCertificateResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cas.UploadUserCertificate': %w", err)
|
||||
@@ -164,7 +166,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
CertId: uploadUserCertificateResp.Body.CertId,
|
||||
CertFilter: tea.Bool(true),
|
||||
}
|
||||
getUserCertificateDetailResp, err := m.sdkClient.GetUserCertificateDetail(getUserCertificateDetailReq)
|
||||
getUserCertificateDetailResp, err := m.sdkClient.GetUserCertificateDetailWithContext(context.TODO(), getUserCertificateDetailReq, &dara.RuntimeOptions{})
|
||||
m.logger.Debug("sdk request 'cas.GetUserCertificateDetail'", slog.Any("request", getUserCertificateDetailReq), slog.Any("response", getUserCertificateDetailResp))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to execute sdk request 'cas.GetUserCertificateDetail': %w", err)
|
||||
@@ -180,7 +182,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*alicas.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.CasClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/cas
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -196,7 +198,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*alicas.Clien
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
}
|
||||
|
||||
client, err := alicas.NewClient(config)
|
||||
client, err := internal.NewCasClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
alicas "github.com/alibabacloud-go/cas-20200407/v4/client"
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/cas-20200407/blob/master/client/client_context_func.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type CasClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewCasClient(config *openapiutil.Config) (*CasClient, error) {
|
||||
client := new(CasClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *CasClient) Init(config *openapiutil.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *CasClient) GetUserCertificateDetailWithContext(ctx context.Context, request *alicas.GetUserCertificateDetailRequest, runtime *dara.RuntimeOptions) (_result *alicas.GetUserCertificateDetailResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CertFilter) {
|
||||
query["CertFilter"] = request.CertFilter
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.CertId) {
|
||||
query["CertId"] = request.CertId
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("GetUserCertificateDetail"),
|
||||
Version: dara.String("2020-04-07"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicas.GetUserCertificateDetailResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *CasClient) ListUserCertificateOrderWithContext(ctx context.Context, request *alicas.ListUserCertificateOrderRequest, runtime *dara.RuntimeOptions) (_result *alicas.ListUserCertificateOrderResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.CurrentPage) {
|
||||
query["CurrentPage"] = request.CurrentPage
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Keyword) {
|
||||
query["Keyword"] = request.Keyword
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.OrderType) {
|
||||
query["OrderType"] = request.OrderType
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ResourceGroupId) {
|
||||
query["ResourceGroupId"] = request.ResourceGroupId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ShowSize) {
|
||||
query["ShowSize"] = request.ShowSize
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Status) {
|
||||
query["Status"] = request.Status
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("ListUserCertificateOrder"),
|
||||
Version: dara.String("2020-04-07"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicas.ListUserCertificateOrderResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *CasClient) UploadUserCertificateWithContext(ctx context.Context, request *alicas.UploadUserCertificateRequest, runtime *dara.RuntimeOptions) (_result *alicas.UploadUserCertificateResponse, _err error) {
|
||||
_err = request.Validate()
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.IsNil(request.Cert) {
|
||||
query["Cert"] = request.Cert
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.EncryptCert) {
|
||||
query["EncryptCert"] = request.EncryptCert
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.EncryptPrivateKey) {
|
||||
query["EncryptPrivateKey"] = request.EncryptPrivateKey
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Key) {
|
||||
query["Key"] = request.Key
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Name) {
|
||||
query["Name"] = request.Name
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.ResourceGroupId) {
|
||||
query["ResourceGroupId"] = request.ResourceGroupId
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SignCert) {
|
||||
query["SignCert"] = request.SignCert
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.SignPrivateKey) {
|
||||
query["SignPrivateKey"] = request.SignPrivateKey
|
||||
}
|
||||
|
||||
if !dara.IsNil(request.Tags) {
|
||||
query["Tags"] = request.Tags
|
||||
}
|
||||
|
||||
req := &openapiutil.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapiutil.Params{
|
||||
Action: dara.String("UploadUserCertificate"),
|
||||
Version: dara.String("2020-04-07"),
|
||||
Protocol: dara.String("HTTPS"),
|
||||
Pathname: dara.String("/"),
|
||||
Method: dara.String("POST"),
|
||||
AuthType: dara.String("AK"),
|
||||
Style: dara.String("RPC"),
|
||||
ReqBodyType: dara.String("formData"),
|
||||
BodyType: dara.String("json"),
|
||||
}
|
||||
_result = &alicas.UploadUserCertificateResponse{}
|
||||
_body, _err := client.CallApiWithCtx(ctx, params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = dara.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import (
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
"github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-slb/internal"
|
||||
xcert "github.com/certimate-go/certimate/pkg/utils/cert"
|
||||
)
|
||||
|
||||
@@ -34,7 +35,7 @@ type SSLManagerProviderConfig struct {
|
||||
type SSLManagerProvider struct {
|
||||
config *SSLManagerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *alislb.Client
|
||||
sdkClient *internal.SlbClient
|
||||
}
|
||||
|
||||
var _ core.SSLManager = (*SSLManagerProvider)(nil)
|
||||
@@ -87,17 +88,22 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
fingerprint := sha256.Sum256(certX509.Raw)
|
||||
fingerprintHex := hex.EncodeToString(fingerprint[:])
|
||||
for _, serverCert := range describeServerCertificatesResp.Body.ServerCertificates.ServerCertificate {
|
||||
isSameCert := tea.Int32Value(serverCert.IsAliCloudCertificate) == 0 &&
|
||||
strings.EqualFold(fingerprintHex, strings.ReplaceAll(tea.StringValue(serverCert.Fingerprint), ":", "")) &&
|
||||
strings.EqualFold(certX509.Subject.CommonName, tea.StringValue(serverCert.CommonName))
|
||||
// 如果已存在相同证书,直接返回
|
||||
if isSameCert {
|
||||
m.logger.Info("ssl certificate already exists")
|
||||
return &core.SSLManageUploadResult{
|
||||
CertId: *serverCert.ServerCertificateId,
|
||||
CertName: *serverCert.ServerCertificateName,
|
||||
}, nil
|
||||
if tea.Int32Value(serverCert.IsAliCloudCertificate) != 0 {
|
||||
continue
|
||||
}
|
||||
if !strings.EqualFold(certX509.Subject.CommonName, tea.StringValue(serverCert.CommonName)) {
|
||||
continue
|
||||
}
|
||||
if !strings.EqualFold(fingerprintHex, strings.ReplaceAll(tea.StringValue(serverCert.Fingerprint), ":", "")) {
|
||||
continue
|
||||
}
|
||||
|
||||
// 如果已存在相同证书,直接返回
|
||||
m.logger.Info("ssl certificate already exists")
|
||||
return &core.SSLManageUploadResult{
|
||||
CertId: *serverCert.ServerCertificateId,
|
||||
CertName: *serverCert.ServerCertificateName,
|
||||
}, nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,7 +137,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*alislb.Client, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*internal.SlbClient, error) {
|
||||
// 接入点一览 https://api.aliyun.com/product/Slb
|
||||
var endpoint string
|
||||
switch region {
|
||||
@@ -151,7 +157,7 @@ func createSDKClient(accessKeyId, accessKeySecret, region string) (*alislb.Clien
|
||||
AccessKeySecret: tea.String(accessKeySecret),
|
||||
}
|
||||
|
||||
client, err := alislb.NewClient(config)
|
||||
client, err := internal.NewSlbClient(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
package aliyunslb_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
provider "github.com/certimate-go/certimate/pkg/core/ssl-manager/providers/aliyun-slb"
|
||||
)
|
||||
|
||||
var (
|
||||
fInputCertPath string
|
||||
fInputKeyPath string
|
||||
fAccessKeyId string
|
||||
fAccessKeySecret string
|
||||
fRegion string
|
||||
)
|
||||
|
||||
func init() {
|
||||
argsPrefix := "CERTIMATE_SSLMANAGER_ALIYUNSLB_"
|
||||
|
||||
flag.StringVar(&fInputCertPath, argsPrefix+"INPUTCERTPATH", "", "")
|
||||
flag.StringVar(&fInputKeyPath, argsPrefix+"INPUTKEYPATH", "", "")
|
||||
flag.StringVar(&fAccessKeyId, argsPrefix+"ACCESSKEYID", "", "")
|
||||
flag.StringVar(&fAccessKeySecret, argsPrefix+"ACCESSKEYSECRET", "", "")
|
||||
flag.StringVar(&fRegion, argsPrefix+"REGION", "", "")
|
||||
}
|
||||
|
||||
/*
|
||||
Shell command to run this test:
|
||||
|
||||
go test -v ./aliyun_slb_test.go -args \
|
||||
--CERTIMATE_SSLMANAGER_ALIYUNSLB_INPUTCERTPATH="/path/to/your-input-cert.pem" \
|
||||
--CERTIMATE_SSLMANAGER_ALIYUNSLB_INPUTKEYPATH="/path/to/your-input-key.pem" \
|
||||
--CERTIMATE_SSLMANAGER_ALIYUNSLB_ACCESSKEYID="your-access-key-id" \
|
||||
--CERTIMATE_SSLMANAGER_ALIYUNSLB_ACCESSKEYSECRET="your-access-key-secret" \
|
||||
--CERTIMATE_SSLMANAGER_ALIYUNSLB_REGION="cn-hangzhou"
|
||||
*/
|
||||
func TestDeploy(t *testing.T) {
|
||||
flag.Parse()
|
||||
|
||||
t.Run("Deploy", func(t *testing.T) {
|
||||
t.Log(strings.Join([]string{
|
||||
"args:",
|
||||
fmt.Sprintf("INPUTCERTPATH: %v", fInputCertPath),
|
||||
fmt.Sprintf("INPUTKEYPATH: %v", fInputKeyPath),
|
||||
fmt.Sprintf("ACCESSKEYID: %v", fAccessKeyId),
|
||||
fmt.Sprintf("ACCESSKEYSECRET: %v", fAccessKeySecret),
|
||||
fmt.Sprintf("REGION: %v", fRegion),
|
||||
}, "\n"))
|
||||
|
||||
sslmanager, err := provider.NewSSLManagerProvider(&provider.SSLManagerProviderConfig{
|
||||
AccessKeyId: fAccessKeyId,
|
||||
AccessKeySecret: fAccessKeySecret,
|
||||
Region: fRegion,
|
||||
})
|
||||
if err != nil {
|
||||
t.Errorf("err: %+v", err)
|
||||
return
|
||||
}
|
||||
|
||||
fInputCertData, _ := os.ReadFile(fInputCertPath)
|
||||
fInputKeyData, _ := os.ReadFile(fInputKeyPath)
|
||||
res, err := sslmanager.Upload(context.Background(), string(fInputCertData), string(fInputKeyData))
|
||||
if err != nil {
|
||||
t.Errorf("err: %+v", err)
|
||||
return
|
||||
}
|
||||
|
||||
sres, _ := json.Marshal(res)
|
||||
t.Logf("ok: %s", string(sres))
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
openapiutil "github.com/alibabacloud-go/darabonba-openapi/v2/utils"
|
||||
alislb "github.com/alibabacloud-go/slb-20140515/v4/client"
|
||||
util "github.com/alibabacloud-go/tea-utils/v2/service"
|
||||
"github.com/alibabacloud-go/tea/dara"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
)
|
||||
|
||||
// This is a partial copy of https://github.com/alibabacloud-go/slb-20140515/blob/master/client/client.go
|
||||
// to lightweight the vendor packages in the built binary.
|
||||
type SlbClient struct {
|
||||
openapi.Client
|
||||
DisableSDKError *bool
|
||||
}
|
||||
|
||||
func NewSlbClient(config *openapi.Config) (*SlbClient, error) {
|
||||
client := new(SlbClient)
|
||||
err := client.Init(config)
|
||||
return client, err
|
||||
}
|
||||
|
||||
func (client *SlbClient) Init(config *openapi.Config) (_err error) {
|
||||
_err = client.Client.Init(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
_err = client.CheckConfig(config)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeServerCertificatesWithOptions(request *alislb.DescribeServerCertificatesRequest, runtime *util.RuntimeOptions) (_result *alislb.DescribeServerCertificatesResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !dara.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceGroupId)) {
|
||||
query["ResourceGroupId"] = request.ResourceGroupId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ServerCertificateId)) {
|
||||
query["ServerCertificateId"] = request.ServerCertificateId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Tag)) {
|
||||
query["Tag"] = request.Tag
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("DescribeServerCertificates"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.DescribeServerCertificatesResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) DescribeServerCertificates(request *alislb.DescribeServerCertificatesRequest) (_result *alislb.DescribeServerCertificatesResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.DescribeServerCertificatesResponse{}
|
||||
_body, _err := client.DescribeServerCertificatesWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) UploadServerCertificateWithOptions(request *alislb.UploadServerCertificateRequest, runtime *util.RuntimeOptions) (_result *alislb.UploadServerCertificateResponse, _err error) {
|
||||
_err = util.ValidateModel(request)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
query := map[string]interface{}{}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AliCloudCertificateId)) {
|
||||
query["AliCloudCertificateId"] = request.AliCloudCertificateId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AliCloudCertificateName)) {
|
||||
query["AliCloudCertificateName"] = request.AliCloudCertificateName
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.AliCloudCertificateRegionId)) {
|
||||
query["AliCloudCertificateRegionId"] = request.AliCloudCertificateRegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerAccount)) {
|
||||
query["OwnerAccount"] = request.OwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.OwnerId)) {
|
||||
query["OwnerId"] = request.OwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.PrivateKey)) {
|
||||
query["PrivateKey"] = request.PrivateKey
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.RegionId)) {
|
||||
query["RegionId"] = request.RegionId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceGroupId)) {
|
||||
query["ResourceGroupId"] = request.ResourceGroupId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerAccount)) {
|
||||
query["ResourceOwnerAccount"] = request.ResourceOwnerAccount
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ResourceOwnerId)) {
|
||||
query["ResourceOwnerId"] = request.ResourceOwnerId
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ServerCertificate)) {
|
||||
query["ServerCertificate"] = request.ServerCertificate
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.ServerCertificateName)) {
|
||||
query["ServerCertificateName"] = request.ServerCertificateName
|
||||
}
|
||||
|
||||
if !tea.BoolValue(util.IsUnset(request.Tag)) {
|
||||
query["Tag"] = request.Tag
|
||||
}
|
||||
|
||||
req := &openapi.OpenApiRequest{
|
||||
Query: openapiutil.Query(query),
|
||||
}
|
||||
params := &openapi.Params{
|
||||
Action: tea.String("UploadServerCertificate"),
|
||||
Version: tea.String("2014-05-15"),
|
||||
Protocol: tea.String("HTTPS"),
|
||||
Pathname: tea.String("/"),
|
||||
Method: tea.String("POST"),
|
||||
AuthType: tea.String("AK"),
|
||||
Style: tea.String("RPC"),
|
||||
ReqBodyType: tea.String("formData"),
|
||||
BodyType: tea.String("json"),
|
||||
}
|
||||
_result = &alislb.UploadServerCertificateResponse{}
|
||||
_body, _err := client.CallApi(params, req, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_err = tea.Convert(_body, &_result)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func (client *SlbClient) UploadServerCertificate(request *alislb.UploadServerCertificateRequest) (_result *alislb.UploadServerCertificateResponse, _err error) {
|
||||
runtime := &util.RuntimeOptions{}
|
||||
_result = &alislb.UploadServerCertificateResponse{}
|
||||
_body, _err := client.UploadServerCertificateWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"log/slog"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/pocketbase/pocketbase/tools/security"
|
||||
"github.com/samber/lo"
|
||||
|
||||
"github.com/certimate-go/certimate/pkg/core"
|
||||
@@ -86,7 +86,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
// 创建证书
|
||||
// REF: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=24&api=5685&data=88&isNormal=1&vid=82
|
||||
createCertificateReq := &ctyunelb.CreateCertificateRequest{
|
||||
ClientToken: lo.ToPtr(generateClientToken()),
|
||||
ClientToken: lo.ToPtr(security.RandomString(32)),
|
||||
RegionID: lo.ToPtr(m.config.RegionId),
|
||||
Name: lo.ToPtr(certName),
|
||||
Description: lo.ToPtr("upload from certimate"),
|
||||
@@ -109,7 +109,3 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
func createSDKClient(accessKeyId, secretAccessKey string) (*ctyunelb.Client, error) {
|
||||
return ctyunelb.NewClient(accessKeyId, secretAccessKey)
|
||||
}
|
||||
|
||||
func generateClientToken() string {
|
||||
return uuid.New().String()
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ type SSLManagerProviderConfig struct {
|
||||
type SSLManagerProvider struct {
|
||||
config *SSLManagerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *vecdn.CDN
|
||||
sdkClient vecdn.CDNAPI
|
||||
}
|
||||
|
||||
var _ core.SSLManager = (*SSLManagerProvider)(nil)
|
||||
@@ -92,17 +92,21 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
if listCertInfoResp.CertInfo != nil {
|
||||
for _, certInfo := range listCertInfoResp.CertInfo {
|
||||
fingerprintSha1 := sha1.Sum(certX509.Raw)
|
||||
fingerprintSha256 := sha256.Sum256(certX509.Raw)
|
||||
isSameCert := strings.EqualFold(hex.EncodeToString(fingerprintSha1[:]), ve.StringValue(certInfo.CertFingerprint.Sha1)) &&
|
||||
strings.EqualFold(hex.EncodeToString(fingerprintSha256[:]), ve.StringValue(certInfo.CertFingerprint.Sha256))
|
||||
// 如果已存在相同证书,直接返回
|
||||
if isSameCert {
|
||||
m.logger.Info("ssl certificate already exists")
|
||||
return &core.SSLManageUploadResult{
|
||||
CertId: ve.StringValue(certInfo.CertId),
|
||||
CertName: ve.StringValue(certInfo.Desc),
|
||||
}, nil
|
||||
if !strings.EqualFold(hex.EncodeToString(fingerprintSha1[:]), ve.StringValue(certInfo.CertFingerprint.Sha1)) {
|
||||
continue
|
||||
}
|
||||
|
||||
fingerprintSha256 := sha256.Sum256(certX509.Raw)
|
||||
if !strings.EqualFold(hex.EncodeToString(fingerprintSha256[:]), ve.StringValue(certInfo.CertFingerprint.Sha256)) {
|
||||
continue
|
||||
}
|
||||
|
||||
// 如果已存在相同证书,直接返回
|
||||
m.logger.Info("ssl certificate already exists")
|
||||
return &core.SSLManageUploadResult{
|
||||
CertId: ve.StringValue(certInfo.CertId),
|
||||
CertName: ve.StringValue(certInfo.Desc),
|
||||
}, nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +142,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (*vecdn.CDN, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret string) (vecdn.CDNAPI, error) {
|
||||
config := ve.NewConfig().
|
||||
WithAkSk(accessKeyId, accessKeySecret)
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ type SSLManagerProviderConfig struct {
|
||||
type SSLManagerProvider struct {
|
||||
config *SSLManagerProviderConfig
|
||||
logger *slog.Logger
|
||||
sdkClient *vecs.CERTIFICATESERVICE
|
||||
sdkClient vecs.CERTIFICATESERVICEAPI
|
||||
}
|
||||
|
||||
var _ core.SSLManager = (*SSLManagerProvider)(nil)
|
||||
@@ -88,7 +88,7 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
}, nil
|
||||
}
|
||||
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (*vecs.CERTIFICATESERVICE, error) {
|
||||
func createSDKClient(accessKeyId, accessKeySecret, region string) (vecs.CERTIFICATESERVICEAPI, error) {
|
||||
if region == "" {
|
||||
region = "cn-beijing" // 证书中心默认区域:北京
|
||||
}
|
||||
|
||||
@@ -76,8 +76,8 @@ func (m *SSLManagerProvider) Upload(ctx context.Context, certPEM string, privkey
|
||||
continue
|
||||
}
|
||||
|
||||
oldCertPEM := strings.Join(describeCertDetailSecretResp.Result.SSL.Chain, "\n\n")
|
||||
// 如果已存在相同证书,直接返回
|
||||
oldCertPEM := strings.Join(describeCertDetailSecretResp.Result.SSL.Chain, "\n\n")
|
||||
if xcert.EqualCertificatesFromPEM(certPEM, oldCertPEM) {
|
||||
m.logger.Info("ssl certificate already exists")
|
||||
return &core.SSLManageUploadResult{
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/google/uuid"
|
||||
"github.com/pocketbase/pocketbase/tools/security"
|
||||
)
|
||||
|
||||
type Client struct {
|
||||
@@ -43,7 +43,7 @@ func NewClient(endpoint, accessKeyId, secretAccessKey string) (*Client, error) {
|
||||
// 生成时间戳及流水号
|
||||
now := time.Now()
|
||||
eopDate := now.Format("20060102T150405Z")
|
||||
eopReqId := uuid.New().String()
|
||||
eopReqId := security.RandomString(32)
|
||||
|
||||
// 获取查询参数
|
||||
queryStr := ""
|
||||
|
||||
Reference in New Issue
Block a user