diff --git a/.changelog/2237.txt b/.changelog/2237.txt new file mode 100644 index 0000000000..a6eabf2e53 --- /dev/null +++ b/.changelog/2237.txt @@ -0,0 +1,3 @@ +```release-note:new-resource +tencentcloud_organization_org_identity +``` diff --git a/go.mod b/go.mod index 07b45e27d9..cb11deca7c 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.693 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.711 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.765 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.770 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692 @@ -68,7 +68,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.651 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.734 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.763 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.751 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 diff --git a/go.sum b/go.sum index 5fe93e7d95..d4bab8f84f 100644 --- a/go.sum +++ b/go.sum @@ -868,6 +868,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.763 h1:N+/G github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.763/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.765 h1:Du0gzA7g0eBDbw8bxBqecm8eSuJacWSkjBCI2Lc3ry8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.765/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.770 h1:5Nl8q6VJxfgZt/ockI9jwTzJIghxkw+NaG8DANkOMyU= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.770/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 h1:2egy69SP/wPsmnfozcQVZ6tUY6F6N/TpEe/7xtXrc/8= @@ -918,6 +920,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758 h1:lsuwM6C github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758/go.mod h1:OklPo0yw4wKOYDAtXgmtUJCzGdvYooaqKchviSg84Ro= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.763 h1:Qfsu2gRG+rguebyfKqoBrfxBkzxazQymQtdf4Azl9ow= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.763/go.mod h1:bR3aAS3kvCEJXgjWpMOocxMNDGoD+7Aue6BWN8TKZ40= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770 h1:Ksu947uY/fafnlILemfMuyKqL/RxHh9dfVowWX8paeQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770/go.mod h1:Ew8jug2Kq03q9Kkjzov7IMYgugGLEw3FGYPofuRqzKw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676 h1:KDt87M2b8j/Xo/9o+kaVtJ46fOtPctCpMDa1CJpSlkY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676/go.mod h1:mXbqv53QFAhvyYqainXSAMdoCui5GudorFhKufJxITc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.751 h1:D2tcvMV9G8dWIoTybLeZoO3Xwz3tFa0A/cN1+glbMG4= diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index cbce870dd8..278c2385f1 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -253,7 +253,6 @@ Cloud Access Management(CAM) tencentcloud_cam_set_policy_version_config tencentcloud_cam_user_permission_boundary_attachment tencentcloud_cam_role_permission_boundary_attachment - tencentcloud_organization_quit_organization_operation Customer Identity and Access Management(CIAM) Resource @@ -1482,9 +1481,11 @@ Tencent Cloud Organization (TCO) tencentcloud_organization_instance tencentcloud_organization_org_node tencentcloud_organization_org_member + tencentcloud_organization_org_identity tencentcloud_organization_org_member_email tencentcloud_organization_org_member_auth_identity_attachment tencentcloud_organization_policy_sub_account_attachment + tencentcloud_organization_quit_organization_operation TDSQL-C for PostgreSQL(TDCPG) Data Source @@ -3208,6 +3209,7 @@ func Provider() *schema.Provider { "tencentcloud_tat_invocation_command_attachment": resourceTencentCloudTatInvocationCommandAttachment(), "tencentcloud_organization_org_node": resourceTencentCloudOrganizationOrgNode(), "tencentcloud_organization_org_member": resourceTencentCloudOrganizationOrgMember(), + "tencentcloud_organization_org_identity": resourceTencentCloudOrganizationOrgIdentity(), "tencentcloud_organization_org_member_email": resourceTencentCloudOrganizationOrgMemberEmail(), "tencentcloud_organization_instance": resourceTencentCloudOrganizationOrganization(), "tencentcloud_organization_policy_sub_account_attachment": resourceTencentCloudOrganizationPolicySubAccountAttachment(), diff --git a/tencentcloud/resource_tc_organization_org_identity.go b/tencentcloud/resource_tc_organization_org_identity.go new file mode 100644 index 0000000000..cca3163ba3 --- /dev/null +++ b/tencentcloud/resource_tc_organization_org_identity.go @@ -0,0 +1,292 @@ +/* +Provides a resource to create a organization org_identity + +Example Usage + +```hcl +resource "tencentcloud_organization_org_identity" "org_identity" { + identity_alias_name = "example-iac-test" + identity_policy { + policy_id = 1 + policy_name = "AdministratorAccess" + policy_type = 2 + } + description = "iac-test" +} +``` + +Import + +organization org_identity can be imported using the id, e.g. + +``` +terraform import tencentcloud_organization_org_identity.org_identity org_identity_id +``` +*/ +package tencentcloud + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + organization "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func resourceTencentCloudOrganizationOrgIdentity() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudOrganizationOrgIdentityCreate, + Read: resourceTencentCloudOrganizationOrgIdentityRead, + Update: resourceTencentCloudOrganizationOrgIdentityUpdate, + Delete: resourceTencentCloudOrganizationOrgIdentityDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ + "identity_alias_name": { + Required: true, + Type: schema.TypeString, + Description: "Identity name.Supports English letters and numbers, the length cannot exceed 40 characters.", + }, + + "identity_policy": { + Required: true, + Type: schema.TypeList, + Description: "Identity policy list.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "policy_id": { + Type: schema.TypeInt, + Optional: true, + Description: "CAM default policy ID. Valid and required when PolicyType is the 2-preset policy.", + }, + "policy_name": { + Type: schema.TypeString, + Optional: true, + Description: "CAM default policy name. Valid and required when PolicyType is the 2-preset policy.", + }, + "policy_type": { + Type: schema.TypeInt, + Optional: true, + Description: "Policy type. Value 1-custom policy 2-preset policy; default value 2.", + }, + "policy_document": { + Type: schema.TypeString, + Optional: true, + Description: "Customize policy content and follow CAM policy syntax. Valid and required when PolicyType is the 1-custom policy.", + }, + }, + }, + }, + + "description": { + Optional: true, + Type: schema.TypeString, + Description: "Identity description.", + }, + }, + } +} + +func resourceTencentCloudOrganizationOrgIdentityCreate(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_organization_org_identity.create")() + defer inconsistentCheck(d, meta)() + + logId := getLogId(contextNil) + + var ( + request = organization.NewCreateOrganizationIdentityRequest() + response = organization.NewCreateOrganizationIdentityResponse() + identityId string + ) + if v, ok := d.GetOk("identity_alias_name"); ok { + request.IdentityAliasName = helper.String(v.(string)) + } + + if v, ok := d.GetOk("identity_policy"); ok { + for _, item := range v.([]interface{}) { + dMap := item.(map[string]interface{}) + identityPolicy := organization.IdentityPolicy{} + if v, ok := dMap["policy_id"]; ok { + identityPolicy.PolicyId = helper.IntUint64(v.(int)) + } + if v, ok := dMap["policy_name"]; ok { + identityPolicy.PolicyName = helper.String(v.(string)) + } + if v, ok := dMap["policy_type"]; ok { + identityPolicy.PolicyType = helper.IntUint64(v.(int)) + } + if v, ok := dMap["policy_document"]; ok { + identityPolicy.PolicyDocument = helper.String(v.(string)) + } + request.IdentityPolicy = append(request.IdentityPolicy, &identityPolicy) + } + } + + if v, ok := d.GetOk("description"); ok { + request.Description = helper.String(v.(string)) + } + + err := resource.Retry(writeRetryTimeout, func() *resource.RetryError { + result, e := meta.(*TencentCloudClient).apiV3Conn.UseOrganizationClient().CreateOrganizationIdentity(request) + if e != nil { + return retryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + response = result + return nil + }) + if err != nil { + log.Printf("[CRITAL]%s create organization orgIdentity failed, reason:%+v", logId, err) + return err + } + + identityId = helper.UInt64ToStr(*response.Response.IdentityId) + d.SetId(identityId) + + return resourceTencentCloudOrganizationOrgIdentityRead(d, meta) +} + +func resourceTencentCloudOrganizationOrgIdentityRead(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_organization_org_identity.read")() + defer inconsistentCheck(d, meta)() + + logId := getLogId(contextNil) + + ctx := context.WithValue(context.TODO(), logIdKey, logId) + + service := OrganizationService{client: meta.(*TencentCloudClient).apiV3Conn} + + orgIdentityId := d.Id() + + orgIdentity, err := service.DescribeOrganizationOrgIdentityById(ctx, orgIdentityId) + if err != nil { + return err + } + + if orgIdentity == nil { + d.SetId("") + log.Printf("[WARN]%s resource `OrganizationOrgIdentity` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + return nil + } + + if orgIdentity.IdentityAliasName != nil { + _ = d.Set("identity_alias_name", orgIdentity.IdentityAliasName) + } + + if orgIdentity.IdentityPolicy != nil { + var identityPolicyList []interface{} + for _, identityPolicy := range orgIdentity.IdentityPolicy { + identityPolicyMap := map[string]interface{}{} + + if identityPolicy.PolicyId != nil { + identityPolicyMap["policy_id"] = identityPolicy.PolicyId + } + + if identityPolicy.PolicyName != nil { + identityPolicyMap["policy_name"] = identityPolicy.PolicyName + } + + if identityPolicy.PolicyType != nil { + identityPolicyMap["policy_type"] = identityPolicy.PolicyType + } + + if identityPolicy.PolicyDocument != nil { + identityPolicyMap["policy_document"] = identityPolicy.PolicyDocument + } + + identityPolicyList = append(identityPolicyList, identityPolicyMap) + } + + _ = d.Set("identity_policy", identityPolicyList) + + } + + if orgIdentity.Description != nil { + _ = d.Set("description", orgIdentity.Description) + } + + return nil +} + +func resourceTencentCloudOrganizationOrgIdentityUpdate(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_organization_org_identity.update")() + defer inconsistentCheck(d, meta)() + + logId := getLogId(contextNil) + + request := organization.NewUpdateOrganizationIdentityRequest() + + orgIdentityId := d.Id() + + request.IdentityId = helper.StrToUint64Point(orgIdentityId) + + immutableArgs := []string{"identity_alias_name"} + + for _, v := range immutableArgs { + if d.HasChange(v) { + return fmt.Errorf("argument `%s` cannot be changed", v) + } + } + + if v, ok := d.GetOk("identity_policy"); ok { + for _, item := range v.([]interface{}) { + dMap := item.(map[string]interface{}) + identityPolicy := organization.IdentityPolicy{} + if v, ok := dMap["policy_id"]; ok { + identityPolicy.PolicyId = helper.IntUint64(v.(int)) + } + if v, ok := dMap["policy_name"]; ok { + identityPolicy.PolicyName = helper.String(v.(string)) + } + if v, ok := dMap["policy_type"]; ok { + identityPolicy.PolicyType = helper.IntUint64(v.(int)) + } + if v, ok := dMap["policy_document"]; ok { + identityPolicy.PolicyDocument = helper.String(v.(string)) + } + request.IdentityPolicy = append(request.IdentityPolicy, &identityPolicy) + } + } + + if v, ok := d.GetOk("description"); ok { + request.Description = helper.String(v.(string)) + } + + err := resource.Retry(writeRetryTimeout, func() *resource.RetryError { + result, e := meta.(*TencentCloudClient).apiV3Conn.UseOrganizationClient().UpdateOrganizationIdentity(request) + if e != nil { + return retryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + return nil + }) + if err != nil { + log.Printf("[CRITAL]%s update organization orgIdentity failed, reason:%+v", logId, err) + return err + } + + return resourceTencentCloudOrganizationOrgIdentityRead(d, meta) +} + +func resourceTencentCloudOrganizationOrgIdentityDelete(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_organization_org_identity.delete")() + defer inconsistentCheck(d, meta)() + + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + + service := OrganizationService{client: meta.(*TencentCloudClient).apiV3Conn} + orgIdentityId := d.Id() + + if err := service.DeleteOrganizationOrgIdentityById(ctx, orgIdentityId); err != nil { + return err + } + + return nil +} diff --git a/tencentcloud/resource_tc_organization_org_identity_test.go b/tencentcloud/resource_tc_organization_org_identity_test.go new file mode 100644 index 0000000000..057cd1eaba --- /dev/null +++ b/tencentcloud/resource_tc_organization_org_identity_test.go @@ -0,0 +1,73 @@ +package tencentcloud + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccTencentCloudOrganizationOrgIdentityResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + testAccPreCheck(t) + }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccOrganizationOrgIdentity, + Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_organization_org_identity.org_identity", "id"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_alias_name", "example-iac-test"), + resource.TestCheckResourceAttrSet("tencentcloud_organization_org_identity.org_identity", "identity_policy.#"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_policy.0.policy_id", "1"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_policy.0.policy_name", "AdministratorAccess"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_policy.0.policy_type", "2"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "description", "iac-test"), + ), + }, + { + Config: testAccOrganizationOrgIdentityUpdate, + Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_organization_org_identity.org_identity", "id"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_alias_name", "example-iac-test"), + resource.TestCheckResourceAttrSet("tencentcloud_organization_org_identity.org_identity", "identity_policy.#"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_policy.0.policy_id", "2"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_policy.0.policy_name", "QCloudResourceFullAccess"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "identity_policy.0.policy_type", "2"), + resource.TestCheckResourceAttr("tencentcloud_organization_org_identity.org_identity", "description", "iac"), + ), + }, + { + ResourceName: "tencentcloud_organization_org_identity.org_identity", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +const testAccOrganizationOrgIdentity = ` + +resource "tencentcloud_organization_org_identity" "org_identity" { + identity_alias_name = "example-iac-test" + identity_policy { + policy_id = 1 + policy_name = "AdministratorAccess" + policy_type = 2 + } + description = "iac-test" +} + +` +const testAccOrganizationOrgIdentityUpdate = ` + +resource "tencentcloud_organization_org_identity" "org_identity" { + identity_alias_name = "example-iac-test" + identity_policy { + policy_id = 2 + policy_name = "QCloudResourceFullAccess" + policy_type = 2 + } + description = "iac" +} + +` diff --git a/tencentcloud/service_tencentcloud_organization.go b/tencentcloud/service_tencentcloud_organization.go index 6f2ba6391a..906bfdf21f 100644 --- a/tencentcloud/service_tencentcloud_organization.go +++ b/tencentcloud/service_tencentcloud_organization.go @@ -617,3 +617,71 @@ func (me *OrganizationService) DescribeOrganizationOrgFinancialByProductByFilter } return } + +func (me *OrganizationService) DescribeOrganizationOrgIdentityById(ctx context.Context, identityId string) (orgIdentity *organization.OrgIdentity, errRet error) { + logId := getLogId(ctx) + + request := organization.NewListOrganizationIdentityRequest() + request.IdentityId = helper.StrToUint64Point(identityId) + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + ratelimit.Check(request.GetAction()) + var ( + offset uint64 = 0 + limit uint64 = 20 + ) + var tmp []*organization.OrgIdentity + for { + request.Offset = &offset + request.Limit = &limit + response, err := me.client.UseOrganizationClient().ListOrganizationIdentity(request) + if err != nil { + errRet = err + return + } + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + + if response == nil || len(response.Response.Items) < 1 { + break + } + tmp = append(tmp, response.Response.Items...) + if len(response.Response.Items) < int(limit) { + break + } + } + for _, item := range tmp { + if *item.IdentityId == helper.StrToInt64(identityId) { + orgIdentity = item + } + } + return +} + +func (me *OrganizationService) DeleteOrganizationOrgIdentityById(ctx context.Context, identityId string) (errRet error) { + logId := getLogId(ctx) + + request := organization.NewDeleteOrganizationIdentityRequest() + request.IdentityId = helper.StrToUint64Point(identityId) + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + ratelimit.Check(request.GetAction()) + + response, err := me.client.UseOrganizationClient().DeleteOrganizationIdentity(request) + if err != nil { + errRet = err + return + } + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go index cbfda08c43..4d7aa405ef 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go @@ -8,6 +8,7 @@ import ( "net/http/httputil" "net/url" "os" + "reflect" "regexp" "strconv" "strings" @@ -219,10 +220,11 @@ func (c *Client) sendWithoutSignature(request tchttp.Request, response tchttp.Re if canonicalQueryString != "" { url = url + "?" + canonicalQueryString } - httpRequest, err := http.NewRequestWithContext(request.GetContext(), httpRequestMethod, url, strings.NewReader(requestPayload)) + httpRequest, err := http.NewRequest(httpRequestMethod, url, strings.NewReader(requestPayload)) if err != nil { return err } + httpRequest = httpRequest.WithContext(request.GetContext()) for k, v := range headers { httpRequest.Header[k] = []string{v} } @@ -245,10 +247,11 @@ func (c *Client) sendWithSignatureV1(request tchttp.Request, response tchttp.Res if err != nil { return err } - httpRequest, err := http.NewRequestWithContext(request.GetContext(), request.GetHttpMethod(), request.GetUrl(), request.GetBodyReader()) + httpRequest, err := http.NewRequest(request.GetHttpMethod(), request.GetUrl(), request.GetBodyReader()) if err != nil { return err } + httpRequest = httpRequest.WithContext(request.GetContext()) if request.GetHttpMethod() == "POST" { httpRequest.Header.Set("Content-Type", "application/x-www-form-urlencoded") } @@ -415,10 +418,11 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res if canonicalQueryString != "" { url = url + "?" + canonicalQueryString } - httpRequest, err := http.NewRequestWithContext(request.GetContext(), httpRequestMethod, url, strings.NewReader(requestPayload)) + httpRequest, err := http.NewRequest(httpRequestMethod, url, strings.NewReader(requestPayload)) if err != nil { return err } + httpRequest = httpRequest.WithContext(request.GetContext()) for k, v := range headers { httpRequest.Header[k] = []string{v} } @@ -432,6 +436,11 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res // send http request func (c *Client) sendHttp(request *http.Request) (response *http.Response, err error) { + if len(c.httpProfile.ApigwEndpoint) > 0 { + request.URL.Host = c.httpProfile.ApigwEndpoint + request.Host = c.httpProfile.ApigwEndpoint + } + if c.debug && request != nil { outBytes, err := httputil.DumpRequest(request, true) if err != nil { @@ -471,8 +480,11 @@ func (c *Client) Init(region string) *Client { // try not to modify http.DefaultTransport if possible // since we could possibly modify Transport.Proxy transport := http.DefaultTransport - if ht, ok := transport.(*http.Transport); ok { - transport = ht.Clone() + if _, ok := transport.(*http.Transport); ok { + // http.Transport.Clone is only available after go1.12 + if cloneMethod, hasClone := reflect.TypeOf(transport).MethodByName("Clone"); hasClone { + transport = cloneMethod.Func.Call([]reflect.Value{reflect.ValueOf(transport)})[0].Interface().(http.RoundTripper) + } } c.httpClient = &http.Client{Transport: transport} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go index 3c0f1443ab..7af7a4c54d 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go @@ -265,7 +265,7 @@ func CompleteCommonParams(request Request, region string, requestClient string) params["Action"] = request.GetAction() params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) params["Nonce"] = strconv.Itoa(rand.Int()) - params["RequestClient"] = "SDK_GO_1.0.765" + params["RequestClient"] = "SDK_GO_1.0.770" if requestClient != "" { params["RequestClient"] += ": " + requestClient } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/response.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/response.go index 33970334d9..15e1c852fa 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/response.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/response.go @@ -5,7 +5,6 @@ import ( "bytes" "fmt" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/json" - "io" "io/ioutil" "log" "strconv" @@ -139,7 +138,7 @@ func TryReadErr(resp *http.Response) (err error) { if depResp.Code != 0 { return errors.NewTencentCloudSDKError(depResp.CodeDesc, depResp.Message, "") } - resp.Body = io.NopCloser(bytes.NewReader(body)) + resp.Body = ioutil.NopCloser(bytes.NewReader(body)) return nil } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go index 98d8356c02..610abb63ee 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go @@ -1,11 +1,12 @@ package profile type HttpProfile struct { - ReqMethod string - ReqTimeout int - Scheme string - RootDomain string - Endpoint string + ReqMethod string + ReqTimeout int + Scheme string + RootDomain string + Endpoint string + ApigwEndpoint string // Deprecated, use Scheme instead Protocol string Proxy string @@ -13,10 +14,11 @@ type HttpProfile struct { func NewHttpProfile() *HttpProfile { return &HttpProfile{ - ReqMethod: "POST", - ReqTimeout: 60, - Scheme: "HTTPS", - RootDomain: "", - Endpoint: "", + ReqMethod: "POST", + ReqTimeout: 60, + Scheme: "HTTPS", + RootDomain: "", + Endpoint: "", + ApigwEndpoint: "", } } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/client.go index 82793a467f..62b5ba7ae9 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/client.go @@ -59,8 +59,9 @@ func NewAddOrganizationMemberEmailRequest() (request *AddOrganizationMemberEmail func NewAddOrganizationMemberEmailResponse() (response *AddOrganizationMemberEmailResponse) { response = &AddOrganizationMemberEmailResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // AddOrganizationMemberEmail @@ -127,8 +128,9 @@ func NewAddOrganizationNodeRequest() (request *AddOrganizationNodeRequest) { func NewAddOrganizationNodeResponse() (response *AddOrganizationNodeResponse) { response = &AddOrganizationNodeResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // AddOrganizationNode @@ -191,8 +193,9 @@ func NewBindOrganizationMemberAuthAccountRequest() (request *BindOrganizationMem func NewBindOrganizationMemberAuthAccountResponse() (response *BindOrganizationMemberAuthAccountResponse) { response = &BindOrganizationMemberAuthAccountResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // BindOrganizationMemberAuthAccount @@ -255,8 +258,9 @@ func NewCancelOrganizationMemberAuthAccountRequest() (request *CancelOrganizatio func NewCancelOrganizationMemberAuthAccountResponse() (response *CancelOrganizationMemberAuthAccountResponse) { response = &CancelOrganizationMemberAuthAccountResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CancelOrganizationMemberAuthAccount @@ -315,8 +319,9 @@ func NewCreateOrganizationRequest() (request *CreateOrganizationRequest) { func NewCreateOrganizationResponse() (response *CreateOrganizationResponse) { response = &CreateOrganizationResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateOrganization @@ -361,6 +366,67 @@ func (c *Client) CreateOrganizationWithContext(ctx context.Context, request *Cre return } +func NewCreateOrganizationIdentityRequest() (request *CreateOrganizationIdentityRequest) { + request = &CreateOrganizationIdentityRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("organization", APIVersion, "CreateOrganizationIdentity") + + + return +} + +func NewCreateOrganizationIdentityResponse() (response *CreateOrganizationIdentityResponse) { + response = &CreateOrganizationIdentityResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// CreateOrganizationIdentity +// 添加组织身份 +// +// 可能返回的错误码: +// FAILEDOPERATION_GETPOLICYDETAIL = "FailedOperation.GetPolicyDetail" +// FAILEDOPERATION_ORGANIZATIONIDENTITYNAMEUSED = "FailedOperation.OrganizationIdentityNameUsed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// LIMITEXCEEDED_IDENTITYEXCEEDLIMIT = "LimitExceeded.IdentityExceedLimit" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +// RESOURCENOTFOUND_POLICYNOTEXIST = "ResourceNotFound.PolicyNotExist" +func (c *Client) CreateOrganizationIdentity(request *CreateOrganizationIdentityRequest) (response *CreateOrganizationIdentityResponse, err error) { + return c.CreateOrganizationIdentityWithContext(context.Background(), request) +} + +// CreateOrganizationIdentity +// 添加组织身份 +// +// 可能返回的错误码: +// FAILEDOPERATION_GETPOLICYDETAIL = "FailedOperation.GetPolicyDetail" +// FAILEDOPERATION_ORGANIZATIONIDENTITYNAMEUSED = "FailedOperation.OrganizationIdentityNameUsed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// LIMITEXCEEDED_IDENTITYEXCEEDLIMIT = "LimitExceeded.IdentityExceedLimit" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +// RESOURCENOTFOUND_POLICYNOTEXIST = "ResourceNotFound.PolicyNotExist" +func (c *Client) CreateOrganizationIdentityWithContext(ctx context.Context, request *CreateOrganizationIdentityRequest) (response *CreateOrganizationIdentityResponse, err error) { + if request == nil { + request = NewCreateOrganizationIdentityRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("CreateOrganizationIdentity require credential") + } + + request.SetContext(ctx) + + response = NewCreateOrganizationIdentityResponse() + err = c.Send(request, response) + return +} + func NewCreateOrganizationMemberRequest() (request *CreateOrganizationMemberRequest) { request = &CreateOrganizationMemberRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -375,8 +441,9 @@ func NewCreateOrganizationMemberRequest() (request *CreateOrganizationMemberRequ func NewCreateOrganizationMemberResponse() (response *CreateOrganizationMemberResponse) { response = &CreateOrganizationMemberResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateOrganizationMember @@ -495,8 +562,9 @@ func NewCreateOrganizationMemberAuthIdentityRequest() (request *CreateOrganizati func NewCreateOrganizationMemberAuthIdentityResponse() (response *CreateOrganizationMemberAuthIdentityResponse) { response = &CreateOrganizationMemberAuthIdentityResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateOrganizationMemberAuthIdentity @@ -557,8 +625,9 @@ func NewCreateOrganizationMemberPolicyRequest() (request *CreateOrganizationMemb func NewCreateOrganizationMemberPolicyResponse() (response *CreateOrganizationMemberPolicyResponse) { response = &CreateOrganizationMemberPolicyResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateOrganizationMemberPolicy @@ -605,6 +674,69 @@ func (c *Client) CreateOrganizationMemberPolicyWithContext(ctx context.Context, return } +func NewCreateOrganizationMembersPolicyRequest() (request *CreateOrganizationMembersPolicyRequest) { + request = &CreateOrganizationMembersPolicyRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("organization", APIVersion, "CreateOrganizationMembersPolicy") + + + return +} + +func NewCreateOrganizationMembersPolicyResponse() (response *CreateOrganizationMembersPolicyResponse) { + response = &CreateOrganizationMembersPolicyResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// CreateOrganizationMembersPolicy +// 创建组织成员访问策略 +// +// 可能返回的错误码: +// FAILEDOPERATION_CREATEPOLICY = "FailedOperation.CreatePolicy" +// FAILEDOPERATION_MEMBERPOLICYNAMEEXIST = "FailedOperation.MemberPolicyNameExist" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_MEMBERIDENTITYNOTEXIST = "ResourceNotFound.MemberIdentityNotExist" +// RESOURCENOTFOUND_ORGANIZATIONMEMBERNOTEXIST = "ResourceNotFound.OrganizationMemberNotExist" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) CreateOrganizationMembersPolicy(request *CreateOrganizationMembersPolicyRequest) (response *CreateOrganizationMembersPolicyResponse, err error) { + return c.CreateOrganizationMembersPolicyWithContext(context.Background(), request) +} + +// CreateOrganizationMembersPolicy +// 创建组织成员访问策略 +// +// 可能返回的错误码: +// FAILEDOPERATION_CREATEPOLICY = "FailedOperation.CreatePolicy" +// FAILEDOPERATION_MEMBERPOLICYNAMEEXIST = "FailedOperation.MemberPolicyNameExist" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_MEMBERIDENTITYNOTEXIST = "ResourceNotFound.MemberIdentityNotExist" +// RESOURCENOTFOUND_ORGANIZATIONMEMBERNOTEXIST = "ResourceNotFound.OrganizationMemberNotExist" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) CreateOrganizationMembersPolicyWithContext(ctx context.Context, request *CreateOrganizationMembersPolicyRequest) (response *CreateOrganizationMembersPolicyResponse, err error) { + if request == nil { + request = NewCreateOrganizationMembersPolicyRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("CreateOrganizationMembersPolicy require credential") + } + + request.SetContext(ctx) + + response = NewCreateOrganizationMembersPolicyResponse() + err = c.Send(request, response) + return +} + func NewDeleteOrganizationRequest() (request *DeleteOrganizationRequest) { request = &DeleteOrganizationRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -619,8 +751,9 @@ func NewDeleteOrganizationRequest() (request *DeleteOrganizationRequest) { func NewDeleteOrganizationResponse() (response *DeleteOrganizationResponse) { response = &DeleteOrganizationResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteOrganization @@ -671,6 +804,63 @@ func (c *Client) DeleteOrganizationWithContext(ctx context.Context, request *Del return } +func NewDeleteOrganizationIdentityRequest() (request *DeleteOrganizationIdentityRequest) { + request = &DeleteOrganizationIdentityRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("organization", APIVersion, "DeleteOrganizationIdentity") + + + return +} + +func NewDeleteOrganizationIdentityResponse() (response *DeleteOrganizationIdentityResponse) { + response = &DeleteOrganizationIdentityResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DeleteOrganizationIdentity +// 删除组织身份 +// +// 可能返回的错误码: +// FAILEDOPERATION_ORGANIZATIONIDENTITYINUSED = "FailedOperation.OrganizationIdentityInUsed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_ORGANIZATIONIDENTITYNOTEXIST = "ResourceNotFound.OrganizationIdentityNotExist" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +func (c *Client) DeleteOrganizationIdentity(request *DeleteOrganizationIdentityRequest) (response *DeleteOrganizationIdentityResponse, err error) { + return c.DeleteOrganizationIdentityWithContext(context.Background(), request) +} + +// DeleteOrganizationIdentity +// 删除组织身份 +// +// 可能返回的错误码: +// FAILEDOPERATION_ORGANIZATIONIDENTITYINUSED = "FailedOperation.OrganizationIdentityInUsed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_ORGANIZATIONIDENTITYNOTEXIST = "ResourceNotFound.OrganizationIdentityNotExist" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +func (c *Client) DeleteOrganizationIdentityWithContext(ctx context.Context, request *DeleteOrganizationIdentityRequest) (response *DeleteOrganizationIdentityResponse, err error) { + if request == nil { + request = NewDeleteOrganizationIdentityRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("DeleteOrganizationIdentity require credential") + } + + request.SetContext(ctx) + + response = NewDeleteOrganizationIdentityResponse() + err = c.Send(request, response) + return +} + func NewDeleteOrganizationMemberAuthIdentityRequest() (request *DeleteOrganizationMemberAuthIdentityRequest) { request = &DeleteOrganizationMemberAuthIdentityRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -685,8 +875,9 @@ func NewDeleteOrganizationMemberAuthIdentityRequest() (request *DeleteOrganizati func NewDeleteOrganizationMemberAuthIdentityResponse() (response *DeleteOrganizationMemberAuthIdentityResponse) { response = &DeleteOrganizationMemberAuthIdentityResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteOrganizationMemberAuthIdentity @@ -743,8 +934,9 @@ func NewDeleteOrganizationMembersRequest() (request *DeleteOrganizationMembersRe func NewDeleteOrganizationMembersResponse() (response *DeleteOrganizationMembersResponse) { response = &DeleteOrganizationMembersResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteOrganizationMembers @@ -819,8 +1011,9 @@ func NewDeleteOrganizationMembersPolicyRequest() (request *DeleteOrganizationMem func NewDeleteOrganizationMembersPolicyResponse() (response *DeleteOrganizationMembersPolicyResponse) { response = &DeleteOrganizationMembersPolicyResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteOrganizationMembersPolicy @@ -875,8 +1068,9 @@ func NewDeleteOrganizationNodesRequest() (request *DeleteOrganizationNodesReques func NewDeleteOrganizationNodesResponse() (response *DeleteOrganizationNodesResponse) { response = &DeleteOrganizationNodesResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteOrganizationNodes @@ -935,8 +1129,9 @@ func NewDescribeOrganizationRequest() (request *DescribeOrganizationRequest) { func NewDescribeOrganizationResponse() (response *DescribeOrganizationResponse) { response = &DescribeOrganizationResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganization @@ -989,8 +1184,9 @@ func NewDescribeOrganizationAuthNodeRequest() (request *DescribeOrganizationAuth func NewDescribeOrganizationAuthNodeResponse() (response *DescribeOrganizationAuthNodeResponse) { response = &DescribeOrganizationAuthNodeResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationAuthNode @@ -1041,8 +1237,9 @@ func NewDescribeOrganizationFinancialByMemberRequest() (request *DescribeOrganiz func NewDescribeOrganizationFinancialByMemberResponse() (response *DescribeOrganizationFinancialByMemberResponse) { response = &DescribeOrganizationFinancialByMemberResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationFinancialByMember @@ -1091,8 +1288,9 @@ func NewDescribeOrganizationFinancialByMonthRequest() (request *DescribeOrganiza func NewDescribeOrganizationFinancialByMonthResponse() (response *DescribeOrganizationFinancialByMonthResponse) { response = &DescribeOrganizationFinancialByMonthResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationFinancialByMonth @@ -1141,8 +1339,9 @@ func NewDescribeOrganizationFinancialByProductRequest() (request *DescribeOrgani func NewDescribeOrganizationFinancialByProductResponse() (response *DescribeOrganizationFinancialByProductResponse) { response = &DescribeOrganizationFinancialByProductResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationFinancialByProduct @@ -1191,8 +1390,9 @@ func NewDescribeOrganizationMemberAuthAccountsRequest() (request *DescribeOrgani func NewDescribeOrganizationMemberAuthAccountsResponse() (response *DescribeOrganizationMemberAuthAccountsResponse) { response = &DescribeOrganizationMemberAuthAccountsResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationMemberAuthAccounts @@ -1243,8 +1443,9 @@ func NewDescribeOrganizationMemberAuthIdentitiesRequest() (request *DescribeOrga func NewDescribeOrganizationMemberAuthIdentitiesResponse() (response *DescribeOrganizationMemberAuthIdentitiesResponse) { response = &DescribeOrganizationMemberAuthIdentitiesResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationMemberAuthIdentities @@ -1295,8 +1496,9 @@ func NewDescribeOrganizationMemberEmailBindRequest() (request *DescribeOrganizat func NewDescribeOrganizationMemberEmailBindResponse() (response *DescribeOrganizationMemberEmailBindResponse) { response = &DescribeOrganizationMemberEmailBindResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationMemberEmailBind @@ -1369,8 +1571,9 @@ func NewDescribeOrganizationMemberPoliciesRequest() (request *DescribeOrganizati func NewDescribeOrganizationMemberPoliciesResponse() (response *DescribeOrganizationMemberPoliciesResponse) { response = &DescribeOrganizationMemberPoliciesResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationMemberPolicies @@ -1423,8 +1626,9 @@ func NewDescribeOrganizationMembersRequest() (request *DescribeOrganizationMembe func NewDescribeOrganizationMembersResponse() (response *DescribeOrganizationMembersResponse) { response = &DescribeOrganizationMembersResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationMembers @@ -1479,8 +1683,9 @@ func NewDescribeOrganizationNodesRequest() (request *DescribeOrganizationNodesRe func NewDescribeOrganizationNodesResponse() (response *DescribeOrganizationNodesResponse) { response = &DescribeOrganizationNodesResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeOrganizationNodes @@ -1531,8 +1736,9 @@ func NewListOrganizationIdentityRequest() (request *ListOrganizationIdentityRequ func NewListOrganizationIdentityResponse() (response *ListOrganizationIdentityResponse) { response = &ListOrganizationIdentityResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ListOrganizationIdentity @@ -1583,8 +1789,9 @@ func NewMoveOrganizationNodeMembersRequest() (request *MoveOrganizationNodeMembe func NewMoveOrganizationNodeMembersResponse() (response *MoveOrganizationNodeMembersResponse) { response = &MoveOrganizationNodeMembersResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // MoveOrganizationNodeMembers @@ -1641,8 +1848,9 @@ func NewQuitOrganizationRequest() (request *QuitOrganizationRequest) { func NewQuitOrganizationResponse() (response *QuitOrganizationResponse) { response = &QuitOrganizationResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // QuitOrganization @@ -1707,6 +1915,65 @@ func (c *Client) QuitOrganizationWithContext(ctx context.Context, request *QuitO return } +func NewUpdateOrganizationIdentityRequest() (request *UpdateOrganizationIdentityRequest) { + request = &UpdateOrganizationIdentityRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("organization", APIVersion, "UpdateOrganizationIdentity") + + + return +} + +func NewUpdateOrganizationIdentityResponse() (response *UpdateOrganizationIdentityResponse) { + response = &UpdateOrganizationIdentityResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// UpdateOrganizationIdentity +// 更新组织身份 +// +// 可能返回的错误码: +// FAILEDOPERATION_GETPOLICYDETAIL = "FailedOperation.GetPolicyDetail" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_ORGANIZATIONIDENTITYNOTEXIST = "ResourceNotFound.OrganizationIdentityNotExist" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +// RESOURCENOTFOUND_POLICYNOTEXIST = "ResourceNotFound.PolicyNotExist" +func (c *Client) UpdateOrganizationIdentity(request *UpdateOrganizationIdentityRequest) (response *UpdateOrganizationIdentityResponse, err error) { + return c.UpdateOrganizationIdentityWithContext(context.Background(), request) +} + +// UpdateOrganizationIdentity +// 更新组织身份 +// +// 可能返回的错误码: +// FAILEDOPERATION_GETPOLICYDETAIL = "FailedOperation.GetPolicyDetail" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_ORGANIZATIONIDENTITYNOTEXIST = "ResourceNotFound.OrganizationIdentityNotExist" +// RESOURCENOTFOUND_ORGANIZATIONNOTEXIST = "ResourceNotFound.OrganizationNotExist" +// RESOURCENOTFOUND_POLICYNOTEXIST = "ResourceNotFound.PolicyNotExist" +func (c *Client) UpdateOrganizationIdentityWithContext(ctx context.Context, request *UpdateOrganizationIdentityRequest) (response *UpdateOrganizationIdentityResponse, err error) { + if request == nil { + request = NewUpdateOrganizationIdentityRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("UpdateOrganizationIdentity require credential") + } + + request.SetContext(ctx) + + response = NewUpdateOrganizationIdentityResponse() + err = c.Send(request, response) + return +} + func NewUpdateOrganizationMemberRequest() (request *UpdateOrganizationMemberRequest) { request = &UpdateOrganizationMemberRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1721,8 +1988,9 @@ func NewUpdateOrganizationMemberRequest() (request *UpdateOrganizationMemberRequ func NewUpdateOrganizationMemberResponse() (response *UpdateOrganizationMemberResponse) { response = &UpdateOrganizationMemberResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // UpdateOrganizationMember @@ -1829,8 +2097,9 @@ func NewUpdateOrganizationMemberEmailBindRequest() (request *UpdateOrganizationM func NewUpdateOrganizationMemberEmailBindResponse() (response *UpdateOrganizationMemberEmailBindResponse) { response = &UpdateOrganizationMemberEmailBindResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // UpdateOrganizationMemberEmailBind @@ -1895,8 +2164,9 @@ func NewUpdateOrganizationNodeRequest() (request *UpdateOrganizationNodeRequest) func NewUpdateOrganizationNodeResponse() (response *UpdateOrganizationNodeResponse) { response = &UpdateOrganizationNodeResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // UpdateOrganizationNode diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/errors.go index a8964012b6..9249f3496c 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/errors.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/errors.go @@ -80,6 +80,9 @@ const ( // 查询实名信息出错。 FAILEDOPERATION_GETAUTHINFO = "FailedOperation.GetAuthInfo" + // 查询策略失败。 + FAILEDOPERATION_GETPOLICYDETAIL = "FailedOperation.GetPolicyDetail" + // 邮箱绑定失败。 FAILEDOPERATION_MEMBERBINDEMAILERROR = "FailedOperation.MemberBindEmailError" @@ -122,6 +125,12 @@ const ( // 企业组织已经存在。 FAILEDOPERATION_ORGANIZATIONEXISTALREADY = "FailedOperation.OrganizationExistAlready" + // 组织身份在使用中。 + FAILEDOPERATION_ORGANIZATIONIDENTITYINUSED = "FailedOperation.OrganizationIdentityInUsed" + + // 组织身份名称被使用。 + FAILEDOPERATION_ORGANIZATIONIDENTITYNAMEUSED = "FailedOperation.OrganizationIdentityNameUsed" + // 组织身份策略不合法。 FAILEDOPERATION_ORGANIZATIONIDENTITYPOLICYERROR = "FailedOperation.OrganizationIdentityPolicyError" @@ -212,6 +221,9 @@ const ( // 配置邮箱超过当日上限。 LIMITEXCEEDED_EMAILBINDOVERLIMIT = "LimitExceeded.EmailBindOverLimit" + // 组织身份超过最大限制。 + LIMITEXCEEDED_IDENTITYEXCEEDLIMIT = "LimitExceeded.IdentityExceedLimit" + // 企业组织单元层级太多。 LIMITEXCEEDED_NODEDEPTHEXCEEDLIMIT = "LimitExceeded.NodeDepthExceedLimit" @@ -254,6 +266,9 @@ const ( // 集团服务不存在。 RESOURCENOTFOUND_ORGANIZATIONSERVICENOTEXIST = "ResourceNotFound.OrganizationServiceNotExist" + // 策略不存在。 + RESOURCENOTFOUND_POLICYNOTEXIST = "ResourceNotFound.PolicyNotExist" + // 用户不存在。 RESOURCENOTFOUND_USERNOTEXIST = "ResourceNotFound.UserNotExist" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/models.go index d40ce1b7d6..a6c50c129d 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331/models.go @@ -320,6 +320,78 @@ func (r *CancelOrganizationMemberAuthAccountResponse) FromJsonString(s string) e return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type CreateOrganizationIdentityRequestParams struct { + // 身份名称 + IdentityAliasName *string `json:"IdentityAliasName,omitnil" name:"IdentityAliasName"` + + // 身份策略 + IdentityPolicy []*IdentityPolicy `json:"IdentityPolicy,omitnil" name:"IdentityPolicy"` + + // 身份描述 + Description *string `json:"Description,omitnil" name:"Description"` +} + +type CreateOrganizationIdentityRequest struct { + *tchttp.BaseRequest + + // 身份名称 + IdentityAliasName *string `json:"IdentityAliasName,omitnil" name:"IdentityAliasName"` + + // 身份策略 + IdentityPolicy []*IdentityPolicy `json:"IdentityPolicy,omitnil" name:"IdentityPolicy"` + + // 身份描述 + Description *string `json:"Description,omitnil" name:"Description"` +} + +func (r *CreateOrganizationIdentityRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateOrganizationIdentityRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "IdentityAliasName") + delete(f, "IdentityPolicy") + delete(f, "Description") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateOrganizationIdentityRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type CreateOrganizationIdentityResponseParams struct { + // 身份ID + // 注意:此字段可能返回 null,表示取不到有效值。 + IdentityId *uint64 `json:"IdentityId,omitnil" name:"IdentityId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil" name:"RequestId"` +} + +type CreateOrganizationIdentityResponse struct { + *tchttp.BaseResponse + Response *CreateOrganizationIdentityResponseParams `json:"Response"` +} + +func (r *CreateOrganizationIdentityResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateOrganizationIdentityResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type CreateOrganizationMemberAuthIdentityRequestParams struct { // 成员uin列表。最多10个 @@ -581,6 +653,85 @@ func (r *CreateOrganizationMemberResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type CreateOrganizationMembersPolicyRequestParams struct { + // 成员Uin列表。最多10个 + MemberUins []*int64 `json:"MemberUins,omitnil" name:"MemberUins"` + + // 策略名。长度1~128个字符,支持英文字母、数字、符号+=,.@_- + PolicyName *string `json:"PolicyName,omitnil" name:"PolicyName"` + + // 成员访问身份ID。 + IdentityId *int64 `json:"IdentityId,omitnil" name:"IdentityId"` + + // 策略描述。最大长度为128个字符 + Description *string `json:"Description,omitnil" name:"Description"` +} + +type CreateOrganizationMembersPolicyRequest struct { + *tchttp.BaseRequest + + // 成员Uin列表。最多10个 + MemberUins []*int64 `json:"MemberUins,omitnil" name:"MemberUins"` + + // 策略名。长度1~128个字符,支持英文字母、数字、符号+=,.@_- + PolicyName *string `json:"PolicyName,omitnil" name:"PolicyName"` + + // 成员访问身份ID。 + IdentityId *int64 `json:"IdentityId,omitnil" name:"IdentityId"` + + // 策略描述。最大长度为128个字符 + Description *string `json:"Description,omitnil" name:"Description"` +} + +func (r *CreateOrganizationMembersPolicyRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateOrganizationMembersPolicyRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "MemberUins") + delete(f, "PolicyName") + delete(f, "IdentityId") + delete(f, "Description") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateOrganizationMembersPolicyRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type CreateOrganizationMembersPolicyResponseParams struct { + // 策略ID。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PolicyId *int64 `json:"PolicyId,omitnil" name:"PolicyId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil" name:"RequestId"` +} + +type CreateOrganizationMembersPolicyResponse struct { + *tchttp.BaseResponse + Response *CreateOrganizationMembersPolicyResponseParams `json:"Response"` +} + +func (r *CreateOrganizationMembersPolicyResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateOrganizationMembersPolicyResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type CreateOrganizationRequestParams struct { @@ -638,6 +789,60 @@ func (r *CreateOrganizationResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DeleteOrganizationIdentityRequestParams struct { + // 身份ID + IdentityId *uint64 `json:"IdentityId,omitnil" name:"IdentityId"` +} + +type DeleteOrganizationIdentityRequest struct { + *tchttp.BaseRequest + + // 身份ID + IdentityId *uint64 `json:"IdentityId,omitnil" name:"IdentityId"` +} + +func (r *DeleteOrganizationIdentityRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteOrganizationIdentityRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "IdentityId") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteOrganizationIdentityRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DeleteOrganizationIdentityResponseParams struct { + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil" name:"RequestId"` +} + +type DeleteOrganizationIdentityResponse struct { + *tchttp.BaseResponse + Response *DeleteOrganizationIdentityResponseParams `json:"Response"` +} + +func (r *DeleteOrganizationIdentityResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteOrganizationIdentityResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DeleteOrganizationMemberAuthIdentityRequestParams struct { // 成员uin。 @@ -2436,6 +2641,74 @@ func (r *QuitOrganizationResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type UpdateOrganizationIdentityRequestParams struct { + // 身份ID + IdentityId *uint64 `json:"IdentityId,omitnil" name:"IdentityId"` + + // 身份描述 + Description *string `json:"Description,omitnil" name:"Description"` + + // 身份策略 + IdentityPolicy []*IdentityPolicy `json:"IdentityPolicy,omitnil" name:"IdentityPolicy"` +} + +type UpdateOrganizationIdentityRequest struct { + *tchttp.BaseRequest + + // 身份ID + IdentityId *uint64 `json:"IdentityId,omitnil" name:"IdentityId"` + + // 身份描述 + Description *string `json:"Description,omitnil" name:"Description"` + + // 身份策略 + IdentityPolicy []*IdentityPolicy `json:"IdentityPolicy,omitnil" name:"IdentityPolicy"` +} + +func (r *UpdateOrganizationIdentityRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *UpdateOrganizationIdentityRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "IdentityId") + delete(f, "Description") + delete(f, "IdentityPolicy") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdateOrganizationIdentityRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type UpdateOrganizationIdentityResponseParams struct { + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil" name:"RequestId"` +} + +type UpdateOrganizationIdentityResponse struct { + *tchttp.BaseResponse + Response *UpdateOrganizationIdentityResponseParams `json:"Response"` +} + +func (r *UpdateOrganizationIdentityResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *UpdateOrganizationIdentityResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type UpdateOrganizationMemberEmailBindRequestParams struct { // 成员Uin diff --git a/vendor/modules.txt b/vendor/modules.txt index 87f31a996b..b232ebd1ec 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1131,8 +1131,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.711 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.765 -## explicit; go 1.14 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.770 +## explicit; go 1.11 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http @@ -1205,7 +1205,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps/v20190612 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.763 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676 diff --git a/website/docs/r/organization_org_identity.html.markdown b/website/docs/r/organization_org_identity.html.markdown new file mode 100644 index 0000000000..496a2a9165 --- /dev/null +++ b/website/docs/r/organization_org_identity.html.markdown @@ -0,0 +1,58 @@ +--- +subcategory: "Tencent Cloud Organization (TCO)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_organization_org_identity" +sidebar_current: "docs-tencentcloud-resource-organization_org_identity" +description: |- + Provides a resource to create a organization org_identity +--- + +# tencentcloud_organization_org_identity + +Provides a resource to create a organization org_identity + +## Example Usage + +```hcl +resource "tencentcloud_organization_org_identity" "org_identity" { + identity_alias_name = "example-iac-test" + identity_policy { + policy_id = 1 + policy_name = "AdministratorAccess" + policy_type = 2 + } + description = "iac-test" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `identity_alias_name` - (Required, String) Identity name.Supports English letters and numbers, the length cannot exceed 40 characters. +* `identity_policy` - (Required, List) Identity policy list. +* `description` - (Optional, String) Identity description. + +The `identity_policy` object supports the following: + +* `policy_document` - (Optional, String) Customize policy content and follow CAM policy syntax. Valid and required when PolicyType is the 1-custom policy. +* `policy_id` - (Optional, Int) CAM default policy ID. Valid and required when PolicyType is the 2-preset policy. +* `policy_name` - (Optional, String) CAM default policy name. Valid and required when PolicyType is the 2-preset policy. +* `policy_type` - (Optional, Int) Policy type. Value 1-custom policy 2-preset policy; default value 2. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. + + + +## Import + +organization org_identity can be imported using the id, e.g. + +``` +terraform import tencentcloud_organization_org_identity.org_identity org_identity_id +``` + diff --git a/website/docs/r/organization_quit_organization_operation.html.markdown b/website/docs/r/organization_quit_organization_operation.html.markdown index fff7104b55..2ad1c8a8e6 100644 --- a/website/docs/r/organization_quit_organization_operation.html.markdown +++ b/website/docs/r/organization_quit_organization_operation.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Cloud Access Management(CAM)" +subcategory: "Tencent Cloud Organization (TCO)" layout: "tencentcloud" page_title: "TencentCloud: tencentcloud_organization_quit_organization_operation" sidebar_current: "docs-tencentcloud-resource-organization_quit_organization_operation" diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index 7d190fd41f..25b62c172b 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -601,9 +601,6 @@
  • tencentcloud_cam_user_saml_config
  • -
  • - tencentcloud_organization_quit_organization_operation -
  • @@ -3651,6 +3648,9 @@
  • tencentcloud_organization_instance
  • +
  • + tencentcloud_organization_org_identity +
  • tencentcloud_organization_org_member
  • @@ -3666,6 +3666,9 @@
  • tencentcloud_organization_policy_sub_account_attachment
  • +
  • + tencentcloud_organization_quit_organization_operation +