diff --git a/.changelog/3046.txt b/.changelog/3046.txt new file mode 100644 index 0000000000..46f31b54c5 --- /dev/null +++ b/.changelog/3046.txt @@ -0,0 +1,7 @@ +```release-note:new-data-source +tencentcloud_role_configuration_provisionings +``` + +```release-note:new-resource +tencentcloud_provision_role_configuration_operation +``` diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index d80d7db1a2..b669f8f273 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -1120,6 +1120,7 @@ func Provider() *schema.Provider { "tencentcloud_organization_org_share_unit_resources": tco.DataSourceTencentCloudOrganizationOrgShareUnitResources(), "tencentcloud_organization_org_share_units": tco.DataSourceTencentCloudOrganizationOrgShareUnits(), "tencentcloud_organization_org_share_unit_members": tco.DataSourceTencentCloudOrganizationOrgShareUnitMembers(), + "tencentcloud_role_configuration_provisionings": tco.DataSourceTencentCloudRoleConfigurationProvisionings(), "tencentcloud_pts_scenario_with_jobs": pts.DataSourceTencentCloudPtsScenarioWithJobs(), "tencentcloud_cam_list_attached_user_policy": cam.DataSourceTencentCloudCamListAttachedUserPolicy(), "tencentcloud_cam_secret_last_used_time": cam.DataSourceTencentCloudCamSecretLastUsedTime(), @@ -1873,6 +1874,7 @@ func Provider() *schema.Provider { "tencentcloud_identity_center_scim_credential_status": tco.ResourceTencentCloudIdentityCenterScimCredentialStatus(), "tencentcloud_identity_center_scim_credential": tco.ResourceTencentCloudIdentityCenterScimCredential(), "tencentcloud_identity_center_scim_synchronization_status": tco.ResourceTencentCloudIdentityCenterScimSynchronizationStatus(), + "tencentcloud_provision_role_configuration_operation": tco.ResourceTencentCloudProvisionRoleConfigurationOperation(), "tencentcloud_dbbrain_sql_filter": dbbrain.ResourceTencentCloudDbbrainSqlFilter(), "tencentcloud_dbbrain_security_audit_log_export_task": dbbrain.ResourceTencentCloudDbbrainSecurityAuditLogExportTask(), "tencentcloud_dbbrain_db_diag_report_task": dbbrain.ResourceTencentCloudDbbrainDbDiagReportTask(), diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md index 59c8d9db2a..2a3c3d9aeb 100644 --- a/tencentcloud/provider.md +++ b/tencentcloud/provider.md @@ -1710,6 +1710,7 @@ Tencent Cloud Organization (TCO) tencentcloud_organization_org_share_unit_resources tencentcloud_organization_org_share_units tencentcloud_organization_org_share_unit_members + tencentcloud_role_configuration_provisionings Resource tencentcloud_organization_instance tencentcloud_organization_org_node @@ -1744,6 +1745,7 @@ Tencent Cloud Organization (TCO) tencentcloud_organization_org_share_unit_resource tencentcloud_accept_join_share_unit_invitation_operation tencentcloud_reject_join_share_unit_invitation_operation + tencentcloud_provision_role_configuration_operation TDSQL-C for PostgreSQL(TDCPG) Data Source diff --git a/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings.go b/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings.go new file mode 100644 index 0000000000..bdc41dba85 --- /dev/null +++ b/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings.go @@ -0,0 +1,217 @@ +package tco + +import ( + "context" + + "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" + + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func DataSourceTencentCloudRoleConfigurationProvisionings() *schema.Resource { + return &schema.Resource{ + Read: dataSourceTencentCloudRoleConfigurationProvisioningsRead, + Schema: map[string]*schema.Schema{ + "zone_id": { + Type: schema.TypeString, + Required: true, + Description: "Space ID.", + }, + + "role_configuration_id": { + Type: schema.TypeString, + Optional: true, + Description: "Permission configuration ID.", + }, + + "target_type": { + Type: schema.TypeString, + Optional: true, + Description: "Type of the synchronized target account of the Tencent Cloud Organization. ManagerUin: admin account; MemberUin: member account.", + }, + + "target_uin": { + Type: schema.TypeInt, + Optional: true, + Description: "UIN of the synchronized target account of the Tencent Cloud Organization.", + }, + + "deployment_status": { + Type: schema.TypeString, + Optional: true, + Description: "Deployed: Deployment succeeded; DeployedRequired: Redeployment required; DeployFailed: Deployment failed.", + }, + + "filter": { + Type: schema.TypeString, + Optional: true, + Description: "Search by configuration name is supported.", + }, + + "role_configuration_provisionings": { + Type: schema.TypeList, + Computed: true, + Description: "Department member account list.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "deployment_status": { + Type: schema.TypeString, + Optional: true, + Description: "Deployed: Deployment succeeded; DeployedRequired: Redeployment required; DeployFailed: Deployment failed.", + }, + "role_configuration_id": { + Type: schema.TypeString, + Optional: true, + Description: "Permission configuration ID.", + }, + "role_configuration_name": { + Type: schema.TypeString, + Optional: true, + Description: "Permission configuration name.", + }, + "target_uin": { + Type: schema.TypeInt, + Optional: true, + Description: "UIN of the target account of the Tencent Cloud Organization.", + }, + "target_name": { + Type: schema.TypeString, + Optional: true, + Description: "Name of the target account of the Tencent Cloud Organization.", + }, + "create_time": { + Type: schema.TypeString, + Optional: true, + Description: "Creation time.", + }, + "update_time": { + Type: schema.TypeString, + Optional: true, + Description: "Modification time.", + }, + "target_type": { + Type: schema.TypeString, + Optional: true, + Description: "Type of the synchronized target account of the Tencent Cloud Organization. ManagerUin: admin account; MemberUin: member account.", + }, + }, + }, + }, + + "result_output_file": { + Type: schema.TypeString, + Optional: true, + Description: "Used to save results.", + }, + }, + } +} + +func dataSourceTencentCloudRoleConfigurationProvisioningsRead(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("data_source.tencentcloud_role_configuration_provisionings.read")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(nil) + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + service := OrganizationService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + + paramMap := make(map[string]interface{}) + if v, ok := d.GetOk("zone_id"); ok { + paramMap["ZoneId"] = helper.String(v.(string)) + } + + if v, ok := d.GetOk("role_configuration_id"); ok { + paramMap["RoleConfigurationId"] = helper.String(v.(string)) + } + + if v, ok := d.GetOk("target_type"); ok { + paramMap["TargetType"] = helper.String(v.(string)) + } + + if v, ok := d.GetOkExists("target_uin"); ok { + paramMap["TargetUin"] = helper.IntInt64(v.(int)) + } + + if v, ok := d.GetOk("deployment_status"); ok { + paramMap["DeploymentStatus"] = helper.String(v.(string)) + } + + if v, ok := d.GetOk("filter"); ok { + paramMap["Filter"] = helper.String(v.(string)) + } + + var roleConfigurationProvisionings []*organization.RoleConfigurationProvisionings + err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + result, e := service.DescribeRoleConfigurationProvisioningsByFilter(ctx, paramMap) + if e != nil { + return tccommon.RetryError(e) + } + roleConfigurationProvisionings = result + return nil + }) + if err != nil { + return err + } + + var ids []string + roleConfigurationProvisioningsList := make([]map[string]interface{}, 0, len(roleConfigurationProvisionings)) + if roleConfigurationProvisionings != nil { + for _, roleConfigurationProvisionings := range roleConfigurationProvisionings { + roleConfigurationProvisioningsMap := map[string]interface{}{} + + var roleConfigurationId string + if roleConfigurationProvisionings.DeploymentStatus != nil { + roleConfigurationProvisioningsMap["deployment_status"] = roleConfigurationProvisionings.DeploymentStatus + } + + if roleConfigurationProvisionings.RoleConfigurationId != nil { + roleConfigurationProvisioningsMap["role_configuration_id"] = roleConfigurationProvisionings.RoleConfigurationId + roleConfigurationId = *roleConfigurationProvisionings.RoleConfigurationId + } + + if roleConfigurationProvisionings.RoleConfigurationName != nil { + roleConfigurationProvisioningsMap["role_configuration_name"] = roleConfigurationProvisionings.RoleConfigurationName + } + + if roleConfigurationProvisionings.TargetUin != nil { + roleConfigurationProvisioningsMap["target_uin"] = roleConfigurationProvisionings.TargetUin + } + + if roleConfigurationProvisionings.TargetName != nil { + roleConfigurationProvisioningsMap["target_name"] = roleConfigurationProvisionings.TargetName + } + + if roleConfigurationProvisionings.CreateTime != nil { + roleConfigurationProvisioningsMap["create_time"] = roleConfigurationProvisionings.CreateTime + } + + if roleConfigurationProvisionings.UpdateTime != nil { + roleConfigurationProvisioningsMap["update_time"] = roleConfigurationProvisionings.UpdateTime + } + + if roleConfigurationProvisionings.TargetType != nil { + roleConfigurationProvisioningsMap["target_type"] = roleConfigurationProvisionings.TargetType + } + + ids = append(ids, roleConfigurationId) + roleConfigurationProvisioningsList = append(roleConfigurationProvisioningsList, roleConfigurationProvisioningsMap) + } + + _ = d.Set("role_configuration_provisionings", roleConfigurationProvisioningsList) + } + + d.SetId(helper.DataResourceIdsHash(ids)) + + output, ok := d.GetOk("result_output_file") + if ok && output.(string) != "" { + if e := tccommon.WriteToFile(output.(string), d); e != nil { + return e + } + } + + return nil +} diff --git a/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings.md b/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings.md new file mode 100644 index 0000000000..a113ceea99 --- /dev/null +++ b/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings.md @@ -0,0 +1,10 @@ +Use this data source to query detailed information of organization role_configuration_provisionings + +Example Usage + +```hcl +data "tencentcloud_role_configuration_provisionings" "role_configuration_provisionings" { + zone_id = "xxxxxx" + role_configuration_id = "xxxxxx" +} +``` diff --git a/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings_test.go b/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings_test.go new file mode 100644 index 0000000000..24f0dd852b --- /dev/null +++ b/tencentcloud/services/tco/data_source_tc_role_configuration_provisionings_test.go @@ -0,0 +1,36 @@ +package tco_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" +) + +func TestAccTencentCloudRoleConfigurationProvisioningsDataSource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccRoleConfigurationProvisioningsDataSource, + Check: resource.ComposeTestCheckFunc( + tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_role_configuration_provisionings.role_configuration_provisionings"), + resource.TestCheckResourceAttr("data.tencentcloud_role_configuration_provisionings.role_configuration_provisionings", "role_configuration_provisionings.#", "1"), + ), + }, + }, + }) +} + +const testAccRoleConfigurationProvisioningsDataSource = testAccProvisionRoleConfigurationOperation + ` +data "tencentcloud_role_configuration_provisionings" "role_configuration_provisionings" { + zone_id = "z-s64jh54hbcra" + role_configuration_id = tencentcloud_identity_center_role_configuration.identity_center_role_configuration.role_configuration_id + depends_on = [tencentcloud_provision_role_configuration_operation.provision_role_configuration_operation] +} +` diff --git a/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation.go b/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation.go new file mode 100644 index 0000000000..5add0f23b3 --- /dev/null +++ b/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation.go @@ -0,0 +1,168 @@ +package tco + +import ( + "context" + "fmt" + "log" + "strings" + "time" + + "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" + + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func ResourceTencentCloudProvisionRoleConfigurationOperation() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudProvisionRoleConfigurationOperationCreate, + Read: resourceTencentCloudProvisionRoleConfigurationOperationRead, + Delete: resourceTencentCloudProvisionRoleConfigurationOperationDelete, + Schema: map[string]*schema.Schema{ + "zone_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Space ID.", + }, + + "role_configuration_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Permission configuration ID.", + }, + + "target_type": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Type of the synchronized target account of the Tencent Cloud Organization. ManagerUin: admin account; MemberUin: member account.", + }, + + "target_uin": { + Type: schema.TypeInt, + Required: true, + ForceNew: true, + Description: "UIN of the target account of the Tencent Cloud Organization.", + }, + }, + } +} + +func resourceTencentCloudProvisionRoleConfigurationOperationCreate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_provision_role_configuration_operation.create")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(tccommon.ContextNil) + + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + var ( + zoneId string + roleConfigurationId string + ) + var ( + request = organization.NewProvisionRoleConfigurationRequest() + response = organization.NewProvisionRoleConfigurationResponse() + ) + + if v, ok := d.GetOk("zone_id"); ok { + zoneId = v.(string) + } + if v, ok := d.GetOk("role_configuration_id"); ok { + roleConfigurationId = v.(string) + } + + request.ZoneId = helper.String(zoneId) + + request.RoleConfigurationId = helper.String(roleConfigurationId) + + if v, ok := d.GetOk("target_type"); ok { + request.TargetType = helper.String(v.(string)) + } + + if v, ok := d.GetOkExists("target_uin"); ok { + request.TargetUin = helper.IntInt64(v.(int)) + } + + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseOrganizationClient().ProvisionRoleConfigurationWithContext(ctx, request) + if e != nil { + return tccommon.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 provision role configuration operation failed, reason:%+v", logId, err) + return err + } + + if response.Response.Task == nil || response.Response.Task.TaskId == nil { + return fmt.Errorf("can not find taskId") + } + if _, err := (&resource.StateChangeConf{ + Delay: 10 * time.Second, + MinTimeout: 3 * time.Second, + Pending: []string{}, + Refresh: resourceProvisionRoleConfigurationOperationCreateStateRefreshFunc_0_0(ctx, zoneId, *response.Response.Task.TaskId), + Target: []string{"Success"}, + Timeout: 600 * time.Second, + }).WaitForStateContext(ctx); err != nil { + return err + } + d.SetId(strings.Join([]string{zoneId, roleConfigurationId}, tccommon.FILED_SP)) + + _ = response + + return resourceTencentCloudProvisionRoleConfigurationOperationRead(d, meta) +} + +func resourceTencentCloudProvisionRoleConfigurationOperationRead(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_provision_role_configuration_operation.read")() + defer tccommon.InconsistentCheck(d, meta)() + + return nil +} + +func resourceTencentCloudProvisionRoleConfigurationOperationDelete(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_provision_role_configuration_operation.delete")() + defer tccommon.InconsistentCheck(d, meta)() + + return nil +} + +func resourceProvisionRoleConfigurationOperationCreateStateRefreshFunc_0_0(ctx context.Context, zoneId string, taskId string) resource.StateRefreshFunc { + var req *organization.GetTaskStatusRequest + return func() (interface{}, string, error) { + meta := tccommon.ProviderMetaFromContext(ctx) + if meta == nil { + return nil, "", fmt.Errorf("resource data can not be nil") + } + if req == nil { + d := tccommon.ResourceDataFromContext(ctx) + if d == nil { + return nil, "", fmt.Errorf("resource data can not be nil") + } + _ = d + req = organization.NewGetTaskStatusRequest() + req.ZoneId = helper.String(zoneId) + req.TaskId = helper.String(taskId) + + } + resp, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseOrganizationClient().GetTaskStatusWithContext(ctx, req) + if err != nil { + return nil, "", err + } + if resp == nil || resp.Response == nil { + return nil, "", nil + } + state := fmt.Sprintf("%v", *resp.Response.TaskStatus.Status) + return resp.Response, state, nil + } +} diff --git a/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation.md b/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation.md new file mode 100644 index 0000000000..4d99b53ada --- /dev/null +++ b/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation.md @@ -0,0 +1,12 @@ +Provides a resource to create a organization provision_role_configuration_operation + +Example Usage + +```hcl +resource "tencentcloud_provision_role_configuration_operation" "provision_role_configuration_operation" { + zone_id = "xxxxxx" + role_configuration_id = "xxxxxx" + target_type = "MemberUin" + target_uin = "xxxxxx" +} +``` diff --git a/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation_test.go b/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation_test.go new file mode 100644 index 0000000000..1abb5c3410 --- /dev/null +++ b/tencentcloud/services/tco/resource_tc_provision_role_configuration_operation_test.go @@ -0,0 +1,67 @@ +package tco_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" +) + +func TestAccTencentCloudProvisionRoleConfigurationOperationResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccProvisionRoleConfigurationOperation, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_provision_role_configuration_operation.provision_role_configuration_operation", "id"), + ), + }, + }, + }) +} + +const testAccProvisionRoleConfigurationOperation = ` +resource "tencentcloud_identity_center_user" "identity_center_user" { + zone_id = "z-s64jh54hbcra" + user_name = "provision-role-configuration-user" + description = "test" +} + +resource "tencentcloud_identity_center_role_configuration" "identity_center_role_configuration" { + zone_id = "z-s64jh54hbcra" + role_configuration_name = "provision-role-configuration" + description = "test" +} + +data "tencentcloud_organization_members" "members" {} + +resource "tencentcloud_identity_center_role_assignment" "identity_center_role_assignment" { + zone_id = "z-s64jh54hbcra" + principal_id = tencentcloud_identity_center_user.identity_center_user.user_id + principal_type = "User" + target_uin = data.tencentcloud_organization_members.members.items.0.member_uin + target_type = "MemberUin" + role_configuration_id = tencentcloud_identity_center_role_configuration.identity_center_role_configuration.role_configuration_id +} + +resource "tencentcloud_identity_center_role_configuration_permission_policy_attachment" "identity_center_role_configuration_permission_policy_attachment" { + zone_id = "z-s64jh54hbcra" + role_configuration_id = tencentcloud_identity_center_role_configuration.identity_center_role_configuration.role_configuration_id + role_policy_id = 186457 + role_policy_name = "QcloudVPCReadOnlyAccess" + depends_on = [tencentcloud_identity_center_role_assignment.identity_center_role_assignment] +} +resource "tencentcloud_provision_role_configuration_operation" "provision_role_configuration_operation" { + zone_id = "z-s64jh54hbcra" + role_configuration_id = tencentcloud_identity_center_role_configuration.identity_center_role_configuration.role_configuration_id + target_type = "MemberUin" + target_uin = "100038074533" + depends_on = [tencentcloud_identity_center_role_configuration_permission_policy_attachment.identity_center_role_configuration_permission_policy_attachment] +} +` diff --git a/tencentcloud/services/tco/service_tencentcloud_organization.go b/tencentcloud/services/tco/service_tencentcloud_organization.go index e7de41d9ff..489f7b52a7 100644 --- a/tencentcloud/services/tco/service_tencentcloud_organization.go +++ b/tencentcloud/services/tco/service_tencentcloud_organization.go @@ -2194,3 +2194,59 @@ func (me *OrganizationService) DescribeOrganizationOrgShareUnitMembersByFilter(c return } + +func (me *OrganizationService) DescribeRoleConfigurationProvisioningsByFilter(ctx context.Context, param map[string]interface{}) (roleConfigurationProvisionings []*organization.RoleConfigurationProvisionings, errRet error) { + var ( + logId = tccommon.GetLogId(ctx) + request = organization.NewListRoleConfigurationProvisioningsRequest() + ) + + 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()) + } + }() + + for k, v := range param { + if k == "ZoneId" { + request.ZoneId = v.(*string) + } + if k == "RoleConfigurationId" { + request.RoleConfigurationId = v.(*string) + } + if k == "TargetType" { + request.TargetType = v.(*string) + } + if k == "TargetUin" { + request.TargetUin = v.(*int64) + } + if k == "DeploymentStatus" { + request.DeploymentStatus = v.(*string) + } + if k == "Filter" { + request.Filter = v.(*string) + } + } + + request.MaxResults = helper.IntInt64(100) + for { + ratelimit.Check(request.GetAction()) + + response, err := me.client.UseOrganizationClient().ListRoleConfigurationProvisionings(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()) + + roleConfigurationProvisionings = append(roleConfigurationProvisionings, response.Response.RoleConfigurationProvisionings...) + + if response.Response.IsTruncated != nil && *response.Response.IsTruncated { + request.NextToken = response.Response.NextToken + } else { + break + } + } + + return +} diff --git a/website/docs/d/role_configuration_provisionings.html.markdown b/website/docs/d/role_configuration_provisionings.html.markdown new file mode 100644 index 0000000000..eb9295f521 --- /dev/null +++ b/website/docs/d/role_configuration_provisionings.html.markdown @@ -0,0 +1,41 @@ +--- +subcategory: "Tencent Cloud Organization (TCO)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_role_configuration_provisionings" +sidebar_current: "docs-tencentcloud-datasource-role_configuration_provisionings" +description: |- + Use this data source to query detailed information of organization role_configuration_provisionings +--- + +# tencentcloud_role_configuration_provisionings + +Use this data source to query detailed information of organization role_configuration_provisionings + +## Example Usage + +```hcl +data "tencentcloud_role_configuration_provisionings" "role_configuration_provisionings" { + zone_id = "xxxxxx" + role_configuration_id = "xxxxxx" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `zone_id` - (Required, String) Space ID. +* `deployment_status` - (Optional, String) Deployed: Deployment succeeded; DeployedRequired: Redeployment required; DeployFailed: Deployment failed. +* `filter` - (Optional, String) Search by configuration name is supported. +* `result_output_file` - (Optional, String) Used to save results. +* `role_configuration_id` - (Optional, String) Permission configuration ID. +* `target_type` - (Optional, String) Type of the synchronized target account of the Tencent Cloud Organization. ManagerUin: admin account; MemberUin: member account. +* `target_uin` - (Optional, Int) UIN of the synchronized target account of the Tencent Cloud Organization. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `role_configuration_provisionings` - Department member account list. + + diff --git a/website/docs/r/provision_role_configuration_operation.html.markdown b/website/docs/r/provision_role_configuration_operation.html.markdown new file mode 100644 index 0000000000..9e815d045d --- /dev/null +++ b/website/docs/r/provision_role_configuration_operation.html.markdown @@ -0,0 +1,41 @@ +--- +subcategory: "Tencent Cloud Organization (TCO)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_provision_role_configuration_operation" +sidebar_current: "docs-tencentcloud-resource-provision_role_configuration_operation" +description: |- + Provides a resource to create a organization provision_role_configuration_operation +--- + +# tencentcloud_provision_role_configuration_operation + +Provides a resource to create a organization provision_role_configuration_operation + +## Example Usage + +```hcl +resource "tencentcloud_provision_role_configuration_operation" "provision_role_configuration_operation" { + zone_id = "xxxxxx" + role_configuration_id = "xxxxxx" + target_type = "MemberUin" + target_uin = "xxxxxx" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `role_configuration_id` - (Required, String, ForceNew) Permission configuration ID. +* `target_type` - (Required, String, ForceNew) Type of the synchronized target account of the Tencent Cloud Organization. ManagerUin: admin account; MemberUin: member account. +* `target_uin` - (Required, Int, ForceNew) UIN of the target account of the Tencent Cloud Organization. +* `zone_id` - (Required, String, ForceNew) Space ID. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. + + + diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index 857a87c066..b8f597b1a0 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -4498,6 +4498,9 @@