diff --git a/.changelog/3357.txt b/.changelog/3357.txt new file mode 100644 index 0000000000..a41ebae7c3 --- /dev/null +++ b/.changelog/3357.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_monitor_policy_binding_object: add region +``` \ No newline at end of file diff --git a/go.mod b/go.mod index dfd5feb56c..aa041b97f4 100644 --- a/go.mod +++ b/go.mod @@ -67,7 +67,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.777 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb v1.0.672 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.1096 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1149 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1156 diff --git a/go.sum b/go.sum index c293e58e3a..a1cbf7647e 100644 --- a/go.sum +++ b/go.sum @@ -1031,6 +1031,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.1096 h1:cX github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.1096/go.mod h1:YhKow73Lzn/iRvvDT0/XBnXsSypr29QZCDU6c4reVRg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066 h1:NBQgNznZRuNQ7AEHPtjFRq588IFEIvClBVtHdR/Q7Wo= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066/go.mod h1:kgZ+YsYoqSplH7rlz1PwheZPZVU67tLpLXJDKLkM950= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1149 h1:E9riu3snI31isF2lmzRe8CJ3giBbmeFFCXRcajtpjF0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1149/go.mod h1:+LRDn2y0FXXf1qkivSnRNCUhJ0JDx7OA8YPjNEQtimE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853 h1:abGpWsAtEuF2QIYKm2m9/hv9OqyHwWNLsd5+67z86BE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853/go.mod h1:xIprIT+IW+3Fj05GCWmgvxJOhICqFGoW4Ef77cDD2JQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mqtt v1.0.1130 h1:2xpOVOz7a/qpDBmT6iRqu2JkaO2qy/KY/d0MhuZwPEU= diff --git a/tencentcloud/connectivity/client.go b/tencentcloud/connectivity/client.go index d2de439602..8c6df40881 100644 --- a/tencentcloud/connectivity/client.go +++ b/tencentcloud/connectivity/client.go @@ -849,6 +849,14 @@ func (me *TencentCloudClient) UseMonitorClient() *monitor.Client { return me.monitorConn } +func (me *TencentCloudClient) UseMonitorClientRegion(region string) *monitor.Client { + cpf := me.NewClientProfile(300) + monitorConn, _ := monitor.NewClient(me.Credential, region, cpf) + monitorConn.WithHttpTransport(&LogRoundTripper{}) + + return monitorConn +} + // UseEsClient returns es client for service func (me *TencentCloudClient) UseEsClient(iacExtInfo ...IacExtInfo) *es.Client { var logRoundTripper LogRoundTripper diff --git a/tencentcloud/services/monitor/extension_monitor.go b/tencentcloud/services/monitor/extension_monitor.go index 9ef2bfa893..77cb64aec6 100644 --- a/tencentcloud/services/monitor/extension_monitor.go +++ b/tencentcloud/services/monitor/extension_monitor.go @@ -90,3 +90,41 @@ var MonitorRegionMap = map[string]string{ "ap-jakarta": "jkt", "sa-saopaulo": "sao", } + +var MonitorRegionMapName = map[string]string{ + "gz": "ap-guangzhou", + "szjr": "ap-shenzhen-fsi", + "gzopen": "ap-guangzhou-open", + "szx": "ap-shenzhen", + "sh": "ap-shanghai", + "shjr": "ap-shanghai-fsi", + "nj": "ap-nanjing", + "jnec": "ap-jinan-ec", + "hzec": "ap-hangzhou-ec", + "fzec": "ap-fuzhou-ec", + "bj": "ap-beijing", + "tsn": "ap-tianjin", + "sjwec": "ap-shijiazhuang-ec", + "bjjr": "ap-beijing-fsi", + "whec": "ap-wuhan-ec", + "csec": "ap-changsha-ec", + "cd": "ap-chengdu", + "cq": "ap-chongqing", + "tpe": "ap-taipei", + "hk": "ap-hongkong", + "sg": "ap-singapore", + "th": "ap-bangkok", + "in": "ap-mumbai", + "kr": "ap-seoul", + "jp": "ap-tokyo", + "usw": "na-siliconvalley", + "use": "na-ashburn", + "ca": "na-toronto", + "de": "eu-frankfurt", + "ru": "eu-moscow", + "qy": "ap-qingyuan", + "xbec": "ap-xibei-ec", + "hfeec": "ap-hefei-ec", + "jkt": "ap-jakarta", + "sao": "sa-saopaulo", +} diff --git a/tencentcloud/services/monitor/resource_tc_monitor_policy_binding_object.go b/tencentcloud/services/monitor/resource_tc_monitor_policy_binding_object.go index 6316127096..ae274bf9da 100644 --- a/tencentcloud/services/monitor/resource_tc_monitor_policy_binding_object.go +++ b/tencentcloud/services/monitor/resource_tc_monitor_policy_binding_object.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "strconv" "time" tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" @@ -42,6 +43,9 @@ func ResourceTencentCloudMonitorPolicyBindingObject() *schema.Resource { if vmap["dimensions_json"] != nil { hashMap["dimensions_json"] = vmap["dimensions_json"] } + if vmap["region"] != nil { + hashMap["region"] = vmap["region"] + } b, _ := json.Marshal(hashMap) return helper.HashString(string(b)) }, @@ -58,6 +62,13 @@ func ResourceTencentCloudMonitorPolicyBindingObject() *schema.Resource { Computed: true, Description: "Object unique ID.", }, + "region": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + Description: "Region.", + }, }, }, }, @@ -93,13 +104,19 @@ func resourceTencentMonitorPolicyBindingObjectCreate(d *schema.ResourceData, met m := v.(map[string]interface{}) var dimension monitor.BindingPolicyObjectDimension var dimensionsJson = m["dimensions_json"].(string) - var region = MonitorRegionMap[monitorService.client.Region] + var region string - if region == "" { - return fmt.Errorf("monitor not support region `%s` bind", monitorService.client.Region) + if v, ok := m["region"]; ok && v.(string) != "" { + region = v.(string) + } else { + region = monitorService.client.Region + } + if v, ok := MonitorRegionMap[region]; ok { + dimension.Region = helper.String(v) + } else { + return fmt.Errorf("monitor not support region `%s` bind", region) } dimension.Dimensions = &dimensionsJson - dimension.Region = ®ion request.Dimensions = append(request.Dimensions, &dimension) } @@ -140,21 +157,40 @@ func resourceTencentMonitorPolicyBindingObjectRead(d *schema.ResourceData, meta return fmt.Errorf("alarm policy %s not exist", policyId) } - objects, err := monitorService.DescribeBindingAlarmPolicyObjectList(ctx, policyId) - + if info.OriginId == nil { + return fmt.Errorf("OriginId is nil") + } + originId, err := strconv.Atoi(*info.OriginId) + if err != nil { + return err + } + regionList, err := monitorService.DescribePolicyObjectCount(ctx, originId) if err != nil { return err } newDimensions := make([]interface{}, 0, 10) + for _, regionInfo := range regionList { + if regionInfo.Count != nil && *regionInfo.Count == 0 { + continue + } + region := MonitorRegionMapName[*regionInfo.Region] + objects, err := monitorService.DescribeBindingAlarmPolicyObjectList(ctx, policyId, region) + if err != nil { + return err + } + + for _, item := range objects { + dimensionsJson := item.Dimensions + uniqueId := item.UniqueId + newDimension := map[string]interface{}{ + "dimensions_json": dimensionsJson, + "unique_id": uniqueId, + "region": region, + } + newDimensions = append(newDimensions, newDimension) - for _, item := range objects { - dimensionsJson := item.Dimensions - uniqueId := item.UniqueId - newDimensions = append(newDimensions, map[string]interface{}{ - "dimensions_json": dimensionsJson, - "unique_id": uniqueId, - }) + } } return d.Set("dimensions", newDimensions) @@ -178,50 +214,39 @@ func resourceTencentMonitorPolicyBindingObjectDelete(d *schema.ResourceData, met return fmt.Errorf("alarm policy %s not exist", policyId) } - objects, err := monitorService.DescribeBindingAlarmPolicyObjectList(ctx, policyId) - + if info.OriginId == nil { + return fmt.Errorf("OriginId is nil") + } + originId, err := strconv.Atoi(*info.OriginId) if err != nil { return err } - getUniqueId := func(dimensionsJson string) (has bool, uniqueId string) { - for _, item := range objects { - if *item.Dimensions == dimensionsJson { - uniqueId = *item.UniqueId - has = true - return - } - } - return + regionList, err := monitorService.DescribePolicyObjectCount(ctx, originId) + if err != nil { + return err } - dimensions := d.Get("dimensions").(*schema.Set).List() - uniqueIds := make([]*string, 0, len(dimensions)) - for _, v := range dimensions { - m := v.(map[string]interface{}) - var dimensionsJson = m["dimensions_json"].(string) - var has, uniqueId = getUniqueId(dimensionsJson) - if has { - uniqueIds = append(uniqueIds, &uniqueId) + for _, regionInfo := range regionList { + if regionInfo.Count != nil && *regionInfo.Count == 0 { + continue } - } - var ( - request = monitor.NewUnBindingPolicyObjectRequest() - ) + request := monitor.NewUnBindingAllPolicyObjectRequest() + request.Module = helper.String("monitor") + request.GroupId = helper.Int64(0) + request.PolicyId = &policyId - request.Module = helper.String("monitor") - request.GroupId = helper.Int64(0) - request.PolicyId = &policyId - request.UniqueId = uniqueIds - - if err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { - ratelimit.Check(request.GetAction()) - if _, err = monitorService.client.UseMonitorClient().UnBindingPolicyObject(request); err != nil { - return tccommon.RetryError(err, tccommon.InternalError) + region := MonitorRegionMapName[*regionInfo.Region] + if err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + if _, e := monitorService.client.UseMonitorClientRegion(region).UnBindingAllPolicyObject(request); e != nil { + return tccommon.RetryError(e, tccommon.InternalError) + } + return nil + }); err != nil { + return err } - return nil - }); err != nil { - return err } + return nil } diff --git a/tencentcloud/services/monitor/resource_tc_monitor_policy_binding_object_test.go b/tencentcloud/services/monitor/resource_tc_monitor_policy_binding_object_test.go new file mode 100644 index 0000000000..8269050fed --- /dev/null +++ b/tencentcloud/services/monitor/resource_tc_monitor_policy_binding_object_test.go @@ -0,0 +1,86 @@ +package monitor_test + +import ( + "testing" + + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccTencentCloudMonitorPolicyBindingObjectResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { tcacctest.AccPreCheck(t) }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccMonitorPolicyBindingObjectBasic, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("tencentcloud_monitor_policy_binding_object.binding_object", "dimensions.#", "1"), + ), + }, + { + ResourceName: "tencentcloud_monitor_policy_binding_object.binding_object", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func TestAccTencentCloudMonitorPolicyBindingObjectResource_multiRegion(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { tcacctest.AccPreCheck(t) }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccMonitorPolicyBindingObjectMultiRegion, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("tencentcloud_monitor_policy_binding_object.binding_multi_region_object", "dimensions.#", "2"), + ), + }, + { + ResourceName: "tencentcloud_monitor_policy_binding_object.binding_multi_region_object", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +const testAccMonitorPolicyBindingObjectBasic string = ` +resource "tencentcloud_monitor_policy_binding_object" "binding_object" { + policy_id = "policy-dkfebnac" + dimensions { + dimensions_json = jsonencode( + { + unInstanceId = "ins-df0kqv1o" + } + ) + } +} +` + +const testAccMonitorPolicyBindingObjectMultiRegion string = ` +resource "tencentcloud_monitor_policy_binding_object" "binding_multi_region_object" { + policy_id = "policy-dkfebnac" + dimensions { + dimensions_json = jsonencode( + { + unInstanceId = "ins-2ferl9zf" + } + ) + region = "ap-shanghai" + } + dimensions { + dimensions_json = jsonencode( + { + unInstanceId = "ins-df0kqv1o" + } + ) + region = "ap-guangzhou" + } +} +` diff --git a/tencentcloud/services/monitor/service_tencentcloud_monitor.go b/tencentcloud/services/monitor/service_tencentcloud_monitor.go index 02b10c2ffe..7cb30d7e77 100644 --- a/tencentcloud/services/monitor/service_tencentcloud_monitor.go +++ b/tencentcloud/services/monitor/service_tencentcloud_monitor.go @@ -275,7 +275,7 @@ func (me *MonitorService) DescribeBindingPolicyObjectList(ctx context.Context, g return } -func (me *MonitorService) DescribeBindingAlarmPolicyObjectList(ctx context.Context, policyId string) ( +func (me *MonitorService) DescribeBindingAlarmPolicyObjectList(ctx context.Context, policyId string, region string) ( objects []*monitor.DescribeBindingPolicyObjectListInstance, errRet error) { var ( @@ -298,7 +298,7 @@ func (me *MonitorService) DescribeBindingAlarmPolicyObjectList(ctx context.Conte } if err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { ratelimit.Check(requestList.GetAction()) - if responseList, err = me.client.UseMonitorClient().DescribeBindingPolicyObjectList(requestList); err != nil { + if responseList, err = me.client.UseMonitorClientRegion(region).DescribeBindingPolicyObjectList(requestList); err != nil { return tccommon.RetryError(err, tccommon.InternalError) } objects = append(objects, responseList.Response.List...) @@ -2676,3 +2676,26 @@ func (me *MonitorService) DescribeMonitorTmpMultipleWritesById(ctx context.Conte ret = response.Response return } + +func (me *MonitorService) DescribePolicyObjectCount(ctx context.Context, groupId int) (regionList []*monitor.RegionPolicyObjectCount, errRet error) { + + request := monitor.NewDescribePolicyObjectCountRequest() + request.Module = helper.String("monitor") + request.GroupId = helper.IntInt64(groupId) + + err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + response, e := me.client.UseMonitorClient().DescribePolicyObjectCount(request) + if e != nil { + return tccommon.RetryError(e, tccommon.InternalError) + } + regionList = response.Response.RegionList + return nil + }) + if err != nil { + errRet = err + return + } + + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/client.go index 1390e656ed..0c528206ab 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/client.go @@ -515,6 +515,69 @@ func (c *Client) CreateAlertRuleWithContext(ctx context.Context, request *Create return } +func NewCreateConditionsTemplateRequest() (request *CreateConditionsTemplateRequest) { + request = &CreateConditionsTemplateRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("monitor", APIVersion, "CreateConditionsTemplate") + + + return +} + +func NewCreateConditionsTemplateResponse() (response *CreateConditionsTemplateResponse) { + response = &CreateConditionsTemplateResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// CreateConditionsTemplate +// 创建告警条件模板 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_DOHTTPTRANSFERFAILED = "FailedOperation.DoHTTPTransferFailed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// MISSINGPARAMETER = "MissingParameter" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) CreateConditionsTemplate(request *CreateConditionsTemplateRequest) (response *CreateConditionsTemplateResponse, err error) { + return c.CreateConditionsTemplateWithContext(context.Background(), request) +} + +// CreateConditionsTemplate +// 创建告警条件模板 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_DOHTTPTRANSFERFAILED = "FailedOperation.DoHTTPTransferFailed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// MISSINGPARAMETER = "MissingParameter" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) CreateConditionsTemplateWithContext(ctx context.Context, request *CreateConditionsTemplateRequest) (response *CreateConditionsTemplateResponse, err error) { + if request == nil { + request = NewCreateConditionsTemplateRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("CreateConditionsTemplate require credential") + } + + request.SetContext(ctx) + + response = NewCreateConditionsTemplateResponse() + err = c.Send(request, response) + return +} + func NewCreateExporterIntegrationRequest() (request *CreateExporterIntegrationRequest) { request = &CreateExporterIntegrationRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -5262,6 +5325,79 @@ func (c *Client) DescribePolicyGroupListWithContext(ctx context.Context, request return } +func NewDescribePolicyObjectCountRequest() (request *DescribePolicyObjectCountRequest) { + request = &DescribePolicyObjectCountRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("monitor", APIVersion, "DescribePolicyObjectCount") + + + return +} + +func NewDescribePolicyObjectCountResponse() (response *DescribePolicyObjectCountResponse) { + response = &DescribePolicyObjectCountResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribePolicyObjectCount +// 查询策略组在每个地域下面绑定的对象数统计 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_DOHTTPTRANSFERFAILED = "FailedOperation.DoHTTPTransferFailed" +// INTERNALERROR = "InternalError" +// INTERNALERROR_EXETIMEOUT = "InternalError.ExeTimeout" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETERPARAM = "InvalidParameter.InvalidParameterParam" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// LIMITEXCEEDED = "LimitExceeded" +// MISSINGPARAMETER = "MissingParameter" +// RESOURCENOTFOUND = "ResourceNotFound" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) DescribePolicyObjectCount(request *DescribePolicyObjectCountRequest) (response *DescribePolicyObjectCountResponse, err error) { + return c.DescribePolicyObjectCountWithContext(context.Background(), request) +} + +// DescribePolicyObjectCount +// 查询策略组在每个地域下面绑定的对象数统计 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_DOHTTPTRANSFERFAILED = "FailedOperation.DoHTTPTransferFailed" +// INTERNALERROR = "InternalError" +// INTERNALERROR_EXETIMEOUT = "InternalError.ExeTimeout" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETERPARAM = "InvalidParameter.InvalidParameterParam" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// LIMITEXCEEDED = "LimitExceeded" +// MISSINGPARAMETER = "MissingParameter" +// RESOURCENOTFOUND = "ResourceNotFound" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) DescribePolicyObjectCountWithContext(ctx context.Context, request *DescribePolicyObjectCountRequest) (response *DescribePolicyObjectCountResponse, err error) { + if request == nil { + request = NewDescribePolicyObjectCountRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("DescribePolicyObjectCount require credential") + } + + request.SetContext(ctx) + + response = NewDescribePolicyObjectCountResponse() + err = c.Send(request, response) + return +} + func NewDescribeProductEventListRequest() (request *DescribeProductEventListRequest) { request = &DescribeProductEventListRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -6297,6 +6433,59 @@ func (c *Client) DescribePrometheusInstancesOverviewWithContext(ctx context.Cont return } +func NewDescribePrometheusIntegrationMetricsRequest() (request *DescribePrometheusIntegrationMetricsRequest) { + request = &DescribePrometheusIntegrationMetricsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("monitor", APIVersion, "DescribePrometheusIntegrationMetrics") + + + return +} + +func NewDescribePrometheusIntegrationMetricsResponse() (response *DescribePrometheusIntegrationMetricsResponse) { + response = &DescribePrometheusIntegrationMetricsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribePrometheusIntegrationMetrics +// 获取prometheus集成指标 +// +// 可能返回的错误码: +// FAILEDOPERATION_DBQUERYFAILED = "FailedOperation.DbQueryFailed" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +func (c *Client) DescribePrometheusIntegrationMetrics(request *DescribePrometheusIntegrationMetricsRequest) (response *DescribePrometheusIntegrationMetricsResponse, err error) { + return c.DescribePrometheusIntegrationMetricsWithContext(context.Background(), request) +} + +// DescribePrometheusIntegrationMetrics +// 获取prometheus集成指标 +// +// 可能返回的错误码: +// FAILEDOPERATION_DBQUERYFAILED = "FailedOperation.DbQueryFailed" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +func (c *Client) DescribePrometheusIntegrationMetricsWithContext(ctx context.Context, request *DescribePrometheusIntegrationMetricsRequest) (response *DescribePrometheusIntegrationMetricsResponse, err error) { + if request == nil { + request = NewDescribePrometheusIntegrationMetricsRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("DescribePrometheusIntegrationMetrics require credential") + } + + request.SetContext(ctx) + + response = NewDescribePrometheusIntegrationMetricsResponse() + err = c.Send(request, response) + return +} + func NewDescribePrometheusRecordRulesRequest() (request *DescribePrometheusRecordRulesRequest) { request = &DescribePrometheusRecordRulesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -7343,6 +7532,117 @@ func (c *Client) EnableSSOCamCheckWithContext(ctx context.Context, request *Enab return } +func NewExportPrometheusReadOnlyDynamicAPIRequest() (request *ExportPrometheusReadOnlyDynamicAPIRequest) { + request = &ExportPrometheusReadOnlyDynamicAPIRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("monitor", APIVersion, "ExportPrometheusReadOnlyDynamicAPI") + + + return +} + +func NewExportPrometheusReadOnlyDynamicAPIResponse() (response *ExportPrometheusReadOnlyDynamicAPIResponse) { + response = &ExportPrometheusReadOnlyDynamicAPIResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ExportPrometheusReadOnlyDynamicAPI +// Prometheus 内部动态 api 代理,仅内部使用 +// +// 可能返回的错误码: +// AUTHFAILURE = "AuthFailure" +// AUTHFAILURE_ACCESSCAMFAIL = "AuthFailure.AccessCAMFail" +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_DATACOLUMNNOTFOUND = "FailedOperation.DataColumnNotFound" +// FAILEDOPERATION_DATAQUERYFAILED = "FailedOperation.DataQueryFailed" +// FAILEDOPERATION_DATATABLENOTFOUND = "FailedOperation.DataTableNotFound" +// FAILEDOPERATION_DBQUERYFAILED = "FailedOperation.DbQueryFailed" +// FAILEDOPERATION_DBRECORDCREATEFAILED = "FailedOperation.DbRecordCreateFailed" +// FAILEDOPERATION_DBRECORDDELETEFAILED = "FailedOperation.DbRecordDeleteFailed" +// FAILEDOPERATION_DBRECORDUPDATEFAILED = "FailedOperation.DbRecordUpdateFailed" +// FAILEDOPERATION_DBTRANSACTIONBEGINFAILED = "FailedOperation.DbTransactionBeginFailed" +// FAILEDOPERATION_DBTRANSACTIONCOMMITFAILED = "FailedOperation.DbTransactionCommitFailed" +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +// FAILEDOPERATION_INTERNALERROR = "FailedOperation.InternalError" +// FAILEDOPERATION_RESOURCENOTFOUND = "FailedOperation.ResourceNotFound" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETER_INVALIDAPPID = "InvalidParameter.InvalidAppId" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETERPARAM = "InvalidParameter.InvalidParameterParam" +// INVALIDPARAMETER_PARAMERROR = "InvalidParameter.ParamError" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// LIMITEXCEEDED = "LimitExceeded" +// MISSINGPARAMETER = "MissingParameter" +// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" +// RESOURCENOTFOUND = "ResourceNotFound" +// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCESSOLDOUT = "ResourcesSoldOut" +// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) ExportPrometheusReadOnlyDynamicAPI(request *ExportPrometheusReadOnlyDynamicAPIRequest) (response *ExportPrometheusReadOnlyDynamicAPIResponse, err error) { + return c.ExportPrometheusReadOnlyDynamicAPIWithContext(context.Background(), request) +} + +// ExportPrometheusReadOnlyDynamicAPI +// Prometheus 内部动态 api 代理,仅内部使用 +// +// 可能返回的错误码: +// AUTHFAILURE = "AuthFailure" +// AUTHFAILURE_ACCESSCAMFAIL = "AuthFailure.AccessCAMFail" +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_DATACOLUMNNOTFOUND = "FailedOperation.DataColumnNotFound" +// FAILEDOPERATION_DATAQUERYFAILED = "FailedOperation.DataQueryFailed" +// FAILEDOPERATION_DATATABLENOTFOUND = "FailedOperation.DataTableNotFound" +// FAILEDOPERATION_DBQUERYFAILED = "FailedOperation.DbQueryFailed" +// FAILEDOPERATION_DBRECORDCREATEFAILED = "FailedOperation.DbRecordCreateFailed" +// FAILEDOPERATION_DBRECORDDELETEFAILED = "FailedOperation.DbRecordDeleteFailed" +// FAILEDOPERATION_DBRECORDUPDATEFAILED = "FailedOperation.DbRecordUpdateFailed" +// FAILEDOPERATION_DBTRANSACTIONBEGINFAILED = "FailedOperation.DbTransactionBeginFailed" +// FAILEDOPERATION_DBTRANSACTIONCOMMITFAILED = "FailedOperation.DbTransactionCommitFailed" +// FAILEDOPERATION_INSTANCENOTFOUND = "FailedOperation.InstanceNotFound" +// FAILEDOPERATION_INTERNALERROR = "FailedOperation.InternalError" +// FAILEDOPERATION_RESOURCENOTFOUND = "FailedOperation.ResourceNotFound" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETER_INVALIDAPPID = "InvalidParameter.InvalidAppId" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +// INVALIDPARAMETER_INVALIDPARAMETERPARAM = "InvalidParameter.InvalidParameterParam" +// INVALIDPARAMETER_PARAMERROR = "InvalidParameter.ParamError" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// LIMITEXCEEDED = "LimitExceeded" +// MISSINGPARAMETER = "MissingParameter" +// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" +// RESOURCENOTFOUND = "ResourceNotFound" +// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCESSOLDOUT = "ResourcesSoldOut" +// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) ExportPrometheusReadOnlyDynamicAPIWithContext(ctx context.Context, request *ExportPrometheusReadOnlyDynamicAPIRequest) (response *ExportPrometheusReadOnlyDynamicAPIResponse, err error) { + if request == nil { + request = NewExportPrometheusReadOnlyDynamicAPIRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("ExportPrometheusReadOnlyDynamicAPI require credential") + } + + request.SetContext(ctx) + + response = NewExportPrometheusReadOnlyDynamicAPIResponse() + err = c.Send(request, response) + return +} + func NewGetMonitorDataRequest() (request *GetMonitorDataRequest) { request = &GetMonitorDataRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -7375,7 +7675,7 @@ func NewGetMonitorDataResponse() (response *GetMonitorDataResponse) { // // 例子:3:avg+max,5:avg+min,6:max+min,7:avg+max+min // -// 拉取数据的粒度和统计方式的对应关系尽量在接入平台进行配置,如果没有配置,因为更小粒度数据存储时间有限,拉取时间范围也是有限。 +// 拉取数据的粒度和统计方式的对应关系尽量在接入平台进行配置,如果没有配置对应统计方式,请提工单反馈。 // // // @@ -7406,7 +7706,7 @@ func (c *Client) GetMonitorData(request *GetMonitorDataRequest) (response *GetMo // // 例子:3:avg+max,5:avg+min,6:max+min,7:avg+max+min // -// 拉取数据的粒度和统计方式的对应关系尽量在接入平台进行配置,如果没有配置,因为更小粒度数据存储时间有限,拉取时间范围也是有限。 +// 拉取数据的粒度和统计方式的对应关系尽量在接入平台进行配置,如果没有配置对应统计方式,请提工单反馈。 // // // @@ -7501,6 +7801,63 @@ func (c *Client) GetPrometheusAgentManagementCommandWithContext(ctx context.Cont return } +func NewGetTopNMonitorDataRequest() (request *GetTopNMonitorDataRequest) { + request = &GetTopNMonitorDataRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("monitor", APIVersion, "GetTopNMonitorData") + + + return +} + +func NewGetTopNMonitorDataResponse() (response *GetTopNMonitorDataResponse) { + response = &GetTopNMonitorDataResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// GetTopNMonitorData +// 支持TopN查询,对于给定的监控指标和时间区间,按照指标大小按序返回不同维度组合及数据。 +// +// 可能返回的错误码: +// FAILEDOPERATION_ERRNOTOPEN = "FailedOperation.ErrNotOpen" +// FAILEDOPERATION_ERROWED = "FailedOperation.ErrOwed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) GetTopNMonitorData(request *GetTopNMonitorDataRequest) (response *GetTopNMonitorDataResponse, err error) { + return c.GetTopNMonitorDataWithContext(context.Background(), request) +} + +// GetTopNMonitorData +// 支持TopN查询,对于给定的监控指标和时间区间,按照指标大小按序返回不同维度组合及数据。 +// +// 可能返回的错误码: +// FAILEDOPERATION_ERRNOTOPEN = "FailedOperation.ErrNotOpen" +// FAILEDOPERATION_ERROWED = "FailedOperation.ErrOwed" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) GetTopNMonitorDataWithContext(ctx context.Context, request *GetTopNMonitorDataRequest) (response *GetTopNMonitorDataResponse, err error) { + if request == nil { + request = NewGetTopNMonitorDataRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("GetTopNMonitorData require credential") + } + + request.SetContext(ctx) + + response = NewGetTopNMonitorDataResponse() + err = c.Send(request, response) + return +} + func NewInstallPluginsRequest() (request *InstallPluginsRequest) { request = &InstallPluginsRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -8458,7 +8815,7 @@ func NewModifyPrometheusRecordRuleYamlResponse() (response *ModifyPrometheusReco } // ModifyPrometheusRecordRuleYaml -// 通过yaml的方式修改Prometheus聚合实例 +// 通过yaml的方式修改Prometheus预聚合规则 // // 可能返回的错误码: // FAILEDOPERATION_COMPONENTCLIENTHTTP = "FailedOperation.ComponentClientHttp" @@ -8473,7 +8830,7 @@ func (c *Client) ModifyPrometheusRecordRuleYaml(request *ModifyPrometheusRecordR } // ModifyPrometheusRecordRuleYaml -// 通过yaml的方式修改Prometheus聚合实例 +// 通过yaml的方式修改Prometheus预聚合规则 // // 可能返回的错误码: // FAILEDOPERATION_COMPONENTCLIENTHTTP = "FailedOperation.ComponentClientHttp" @@ -9343,7 +9700,7 @@ func NewUpdateAlertRuleResponse() (response *UpdateAlertRuleResponse) { // // // -// 请注意,**告警对象和告警消息是 Prometheus Rule Annotations 的特殊字段,需要通过 annotations 来传递,对应的 Key 分别为summary/description**,,请参考 [Prometheus Rule更多配置请参考](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)。 +// 请注意,**告警对象和告警消息是 Prometheus Rule Annotations 的特殊字段,需要通过 annotations 来传递,对应的 Key 分别为summary/description**,请参考 [Prometheus Rule更多配置请参考](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)。 // // 可能返回的错误码: // AUTHFAILURE = "AuthFailure" @@ -9367,7 +9724,7 @@ func (c *Client) UpdateAlertRule(request *UpdateAlertRuleRequest) (response *Upd // // // -// 请注意,**告警对象和告警消息是 Prometheus Rule Annotations 的特殊字段,需要通过 annotations 来传递,对应的 Key 分别为summary/description**,,请参考 [Prometheus Rule更多配置请参考](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)。 +// 请注意,**告警对象和告警消息是 Prometheus Rule Annotations 的特殊字段,需要通过 annotations 来传递,对应的 Key 分别为summary/description**,请参考 [Prometheus Rule更多配置请参考](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)。 // // 可能返回的错误码: // AUTHFAILURE = "AuthFailure" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/errors.go index 576f9ae53c..db963ccb33 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/errors.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/errors.go @@ -248,6 +248,9 @@ const ( // 重复提交任务。 INVALIDPARAMETER_DUPTASK = "InvalidParameter.DupTask" + // 无效的AppId。 + INVALIDPARAMETER_INVALIDAPPID = "InvalidParameter.InvalidAppId" + // 参数错误。 INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/models.go index 5786629eb5..fe8228ffb8 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724/models.go @@ -429,6 +429,21 @@ type AlarmPolicy struct { // 多标签交/并集关系 // 注意:此字段可能返回 null,表示取不到有效值。 TagOperation *string `json:"TagOperation,omitnil,omitempty" name:"TagOperation"` + + // 通知模板绑定内容模板信息 + NoticeTmplBindInfos []*NoticeContentTmplBindInfo `json:"NoticeTmplBindInfos,omitnil,omitempty" name:"NoticeTmplBindInfos"` + + // 模板通知的等级 + // 注意:此字段可能返回 null,表示取不到有效值。 + HierarchicalNotices []*AlarmHierarchicalNotice `json:"HierarchicalNotices,omitnil,omitempty" name:"HierarchicalNotices"` + + // 通知模板绑定内容模板信息,同NoticeTmplBindInfos + // 注意:此字段可能返回 null,表示取不到有效值。 + NoticeContentTmplBindInfos []*NoticeContentTmplBindInfo `json:"NoticeContentTmplBindInfos,omitnil,omitempty" name:"NoticeContentTmplBindInfos"` + + // 预设配置id + // 注意:此字段可能返回 null,表示取不到有效值。 + PredefinedConfigID *string `json:"PredefinedConfigID,omitnil,omitempty" name:"PredefinedConfigID"` } type AlarmPolicyCondition struct { @@ -1202,6 +1217,12 @@ type CreateAlarmPolicyRequestParams struct { // 事件配置的告警 EbSubject *string `json:"EbSubject,omitnil,omitempty" name:"EbSubject"` + + // 附加告警内容 + AdditionalAlarmContent *string `json:"AdditionalAlarmContent,omitnil,omitempty" name:"AdditionalAlarmContent"` + + // 通知模板绑定信息 + NoticeContentTmplBindInfos []*NoticeContentTmplBindInfo `json:"NoticeContentTmplBindInfos,omitnil,omitempty" name:"NoticeContentTmplBindInfos"` } type CreateAlarmPolicyRequest struct { @@ -1263,6 +1284,12 @@ type CreateAlarmPolicyRequest struct { // 事件配置的告警 EbSubject *string `json:"EbSubject,omitnil,omitempty" name:"EbSubject"` + + // 附加告警内容 + AdditionalAlarmContent *string `json:"AdditionalAlarmContent,omitnil,omitempty" name:"AdditionalAlarmContent"` + + // 通知模板绑定信息 + NoticeContentTmplBindInfos []*NoticeContentTmplBindInfo `json:"NoticeContentTmplBindInfos,omitnil,omitempty" name:"NoticeContentTmplBindInfos"` } func (r *CreateAlarmPolicyRequest) ToJsonString() string { @@ -1296,6 +1323,8 @@ func (r *CreateAlarmPolicyRequest) FromJsonString(s string) error { delete(f, "HierarchicalNotices") delete(f, "MigrateFlag") delete(f, "EbSubject") + delete(f, "AdditionalAlarmContent") + delete(f, "NoticeContentTmplBindInfos") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateAlarmPolicyRequest has unknown keys!", "") } @@ -1635,6 +1664,126 @@ func (r *CreateAlertRuleResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type CreateConditionsTemplateRequestParams struct { + // 固定值,monitor + Module *string `json:"Module,omitnil,omitempty" name:"Module"` + + // 视图名 + ViewName *string `json:"ViewName,omitnil,omitempty" name:"ViewName"` + + // 组名 + GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"` + + // 是否为与关系 + IsUnionRule *int64 `json:"IsUnionRule,omitnil,omitempty" name:"IsUnionRule"` + + // 备注 + Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 父ID + ParentGroupID *int64 `json:"ParentGroupID,omitnil,omitempty" name:"ParentGroupID"` + + // 是否屏蔽 + IsShielded *int64 `json:"IsShielded,omitnil,omitempty" name:"IsShielded"` + + // 复合告警表达式 + ComplexExpression *string `json:"ComplexExpression,omitnil,omitempty" name:"ComplexExpression"` + + // 指标告警条件 + Conditions []*ModifyConditionsTemplateRequestCondition `json:"Conditions,omitnil,omitempty" name:"Conditions"` + + // 事件告警条件 + EventConditions []*ModifyConditionsTemplateRequestEventCondition `json:"EventConditions,omitnil,omitempty" name:"EventConditions"` +} + +type CreateConditionsTemplateRequest struct { + *tchttp.BaseRequest + + // 固定值,monitor + Module *string `json:"Module,omitnil,omitempty" name:"Module"` + + // 视图名 + ViewName *string `json:"ViewName,omitnil,omitempty" name:"ViewName"` + + // 组名 + GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"` + + // 是否为与关系 + IsUnionRule *int64 `json:"IsUnionRule,omitnil,omitempty" name:"IsUnionRule"` + + // 备注 + Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 父ID + ParentGroupID *int64 `json:"ParentGroupID,omitnil,omitempty" name:"ParentGroupID"` + + // 是否屏蔽 + IsShielded *int64 `json:"IsShielded,omitnil,omitempty" name:"IsShielded"` + + // 复合告警表达式 + ComplexExpression *string `json:"ComplexExpression,omitnil,omitempty" name:"ComplexExpression"` + + // 指标告警条件 + Conditions []*ModifyConditionsTemplateRequestCondition `json:"Conditions,omitnil,omitempty" name:"Conditions"` + + // 事件告警条件 + EventConditions []*ModifyConditionsTemplateRequestEventCondition `json:"EventConditions,omitnil,omitempty" name:"EventConditions"` +} + +func (r *CreateConditionsTemplateRequest) 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 *CreateConditionsTemplateRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Module") + delete(f, "ViewName") + delete(f, "GroupName") + delete(f, "IsUnionRule") + delete(f, "Remark") + delete(f, "ParentGroupID") + delete(f, "IsShielded") + delete(f, "ComplexExpression") + delete(f, "Conditions") + delete(f, "EventConditions") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateConditionsTemplateRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type CreateConditionsTemplateResponseParams struct { + // 模板策略组ID + GroupID *int64 `json:"GroupID,omitnil,omitempty" name:"GroupID"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type CreateConditionsTemplateResponse struct { + *tchttp.BaseResponse + Response *CreateConditionsTemplateResponseParams `json:"Response"` +} + +func (r *CreateConditionsTemplateResponse) 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 *CreateConditionsTemplateResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type CreateExporterIntegrationRequestParams struct { // 实例 ID @@ -5246,13 +5395,7 @@ type DescribeAlarmPoliciesRequestParams struct { // [策略类型列表](https://cloud.tencent.com/document/product/248/50397)当Dimension不为空时,该项为必填项 Namespaces []*string `json:"Namespaces,omitnil,omitempty" name:"Namespaces"` - // 告警对象列表,JSON 字符串。外层数组,对应多个实例,内层为对象的维度。例如“云服务器-基础监控”可写为: - // `[ {"Dimensions": {"unInstanceId": "ins-qr8d555g"}}, {"Dimensions": {"unInstanceId": "ins-qr8d555h"}} ]` - // 具体也可以参考下方的示例 2。 - // - // 不同云产品参数示例详见 [维度信息Dimensions列表](https://cloud.tencent.com/document/product/248/50397) - // - // 注意:如果NeedCorrespondence传入1,即需要返回策略与实例对应关系,请传入不多于20个告警对象维度,否则容易请求超时 + // 告警对象列表,JSON 字符串。外层数组,对应多个实例,内层为对象的维度。例如“云服务器-基础监控”可写为:`[[{"name":"unInstanceId","value":"ins-qr888845g"}]]`具体也可以参考下方的示例 2。不同云产品参数示例详见 [维度信息Dimensions列表](https://cloud.tencent.com/document/product/248/50397)注意:如果NeedCorrespondence传入1,即需要返回策略与实例对应关系,请传入不多于20个告警对象维度,否则容易请求超时 Dimensions *string `json:"Dimensions,omitnil,omitempty" name:"Dimensions"` // 根据接收人搜索,可以使用“访问管理”的 [拉取子用户 ListUsers](https://cloud.tencent.com/document/product/598/34587) 接口获取用户列表 或 [查询子用户 GetUser](https://cloud.tencent.com/document/product/598/34590) 接口查询子用户详情,此处填入返回结果中的 `Uid` 字段 @@ -5313,6 +5456,12 @@ type DescribeAlarmPoliciesRequestParams struct { // 根据排班表搜索 ReceiverOnCallFormIDs []*string `json:"ReceiverOnCallFormIDs,omitnil,omitempty" name:"ReceiverOnCallFormIDs"` + + // 通知内容模板ID筛选 + NoticeContentTmplIDs []*string `json:"NoticeContentTmplIDs,omitnil,omitempty" name:"NoticeContentTmplIDs"` + + // 是否为预设策略,1是,0否 + IsPredefined *int64 `json:"IsPredefined,omitnil,omitempty" name:"IsPredefined"` } type DescribeAlarmPoliciesRequest struct { @@ -5337,13 +5486,7 @@ type DescribeAlarmPoliciesRequest struct { // [策略类型列表](https://cloud.tencent.com/document/product/248/50397)当Dimension不为空时,该项为必填项 Namespaces []*string `json:"Namespaces,omitnil,omitempty" name:"Namespaces"` - // 告警对象列表,JSON 字符串。外层数组,对应多个实例,内层为对象的维度。例如“云服务器-基础监控”可写为: - // `[ {"Dimensions": {"unInstanceId": "ins-qr8d555g"}}, {"Dimensions": {"unInstanceId": "ins-qr8d555h"}} ]` - // 具体也可以参考下方的示例 2。 - // - // 不同云产品参数示例详见 [维度信息Dimensions列表](https://cloud.tencent.com/document/product/248/50397) - // - // 注意:如果NeedCorrespondence传入1,即需要返回策略与实例对应关系,请传入不多于20个告警对象维度,否则容易请求超时 + // 告警对象列表,JSON 字符串。外层数组,对应多个实例,内层为对象的维度。例如“云服务器-基础监控”可写为:`[[{"name":"unInstanceId","value":"ins-qr888845g"}]]`具体也可以参考下方的示例 2。不同云产品参数示例详见 [维度信息Dimensions列表](https://cloud.tencent.com/document/product/248/50397)注意:如果NeedCorrespondence传入1,即需要返回策略与实例对应关系,请传入不多于20个告警对象维度,否则容易请求超时 Dimensions *string `json:"Dimensions,omitnil,omitempty" name:"Dimensions"` // 根据接收人搜索,可以使用“访问管理”的 [拉取子用户 ListUsers](https://cloud.tencent.com/document/product/598/34587) 接口获取用户列表 或 [查询子用户 GetUser](https://cloud.tencent.com/document/product/598/34590) 接口查询子用户详情,此处填入返回结果中的 `Uid` 字段 @@ -5404,6 +5547,12 @@ type DescribeAlarmPoliciesRequest struct { // 根据排班表搜索 ReceiverOnCallFormIDs []*string `json:"ReceiverOnCallFormIDs,omitnil,omitempty" name:"ReceiverOnCallFormIDs"` + + // 通知内容模板ID筛选 + NoticeContentTmplIDs []*string `json:"NoticeContentTmplIDs,omitnil,omitempty" name:"NoticeContentTmplIDs"` + + // 是否为预设策略,1是,0否 + IsPredefined *int64 `json:"IsPredefined,omitnil,omitempty" name:"IsPredefined"` } func (r *DescribeAlarmPoliciesRequest) ToJsonString() string { @@ -5444,6 +5593,8 @@ func (r *DescribeAlarmPoliciesRequest) FromJsonString(s string) error { delete(f, "Tags") delete(f, "PromInsId") delete(f, "ReceiverOnCallFormIDs") + delete(f, "NoticeContentTmplIDs") + delete(f, "IsPredefined") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeAlarmPoliciesRequest has unknown keys!", "") } @@ -8196,6 +8347,75 @@ func (r *DescribePolicyGroupListResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DescribePolicyObjectCountRequestParams struct { + // 固定值,为"monitor" + Module *string `json:"Module,omitnil,omitempty" name:"Module"` + + // 策略组Id + GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"` +} + +type DescribePolicyObjectCountRequest struct { + *tchttp.BaseRequest + + // 固定值,为"monitor" + Module *string `json:"Module,omitnil,omitempty" name:"Module"` + + // 策略组Id + GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"` +} + +func (r *DescribePolicyObjectCountRequest) 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 *DescribePolicyObjectCountRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Module") + delete(f, "GroupId") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribePolicyObjectCountRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribePolicyObjectCountResponseParams struct { + // 是否为多地域 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsMultiRegion *bool `json:"IsMultiRegion,omitnil,omitempty" name:"IsMultiRegion"` + + // 地域统计列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + RegionList []*RegionPolicyObjectCount `json:"RegionList,omitnil,omitempty" name:"RegionList"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribePolicyObjectCountResponse struct { + *tchttp.BaseResponse + Response *DescribePolicyObjectCountResponseParams `json:"Response"` +} + +func (r *DescribePolicyObjectCountResponse) 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 *DescribePolicyObjectCountResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DescribeProductEventListDimensions struct { // 维度名 Name *string `json:"Name,omitnil,omitempty" name:"Name"` @@ -9725,6 +9945,63 @@ func (r *DescribePrometheusInstancesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DescribePrometheusIntegrationMetricsRequestParams struct { + // 集成类型标识。取值参考DescribePrometheusIntegrations接口返回中IntegrationSet[i].Code参数 + IntegrationCode *string `json:"IntegrationCode,omitnil,omitempty" name:"IntegrationCode"` +} + +type DescribePrometheusIntegrationMetricsRequest struct { + *tchttp.BaseRequest + + // 集成类型标识。取值参考DescribePrometheusIntegrations接口返回中IntegrationSet[i].Code参数 + IntegrationCode *string `json:"IntegrationCode,omitnil,omitempty" name:"IntegrationCode"` +} + +func (r *DescribePrometheusIntegrationMetricsRequest) 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 *DescribePrometheusIntegrationMetricsRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "IntegrationCode") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribePrometheusIntegrationMetricsRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribePrometheusIntegrationMetricsResponseParams struct { + // 集成指标详情分组 + IntegrationMetricSet []*IntegrationMetricGroup `json:"IntegrationMetricSet,omitnil,omitempty" name:"IntegrationMetricSet"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribePrometheusIntegrationMetricsResponse struct { + *tchttp.BaseResponse + Response *DescribePrometheusIntegrationMetricsResponseParams `json:"Response"` +} + +func (r *DescribePrometheusIntegrationMetricsResponse) 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 *DescribePrometheusIntegrationMetricsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DescribePrometheusRecordRulesRequestParams struct { // Prometheus 实例 ID @@ -11010,6 +11287,57 @@ type EventCondition struct { MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` } +// Predefined struct for user +type ExportPrometheusReadOnlyDynamicAPIRequestParams struct { + +} + +type ExportPrometheusReadOnlyDynamicAPIRequest struct { + *tchttp.BaseRequest + +} + +func (r *ExportPrometheusReadOnlyDynamicAPIRequest) 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 *ExportPrometheusReadOnlyDynamicAPIRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ExportPrometheusReadOnlyDynamicAPIRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ExportPrometheusReadOnlyDynamicAPIResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ExportPrometheusReadOnlyDynamicAPIResponse struct { + *tchttp.BaseResponse + Response *ExportPrometheusReadOnlyDynamicAPIResponseParams `json:"Response"` +} + +func (r *ExportPrometheusReadOnlyDynamicAPIResponse) 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 *ExportPrometheusReadOnlyDynamicAPIResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type Filter struct { // 过滤方式(=, !=, in) Type *string `json:"Type,omitnil,omitempty" name:"Type"` @@ -11047,7 +11375,7 @@ type GetMonitorDataRequestParams struct { // 结束时间,如2018-09-22T20:51:23+08:00,默认为当前时间。 EndTime不能小于StartTime EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"` - // 返回多种统计方式数据。avg, max, min (1,2,4)可以自由组合 + // 返回多种统计方式数据。avg, max, min (1,2,4)可以自由组合。注意: 仅支持对API配置文档中展示的统计方式返回对应的统计数据。如所需的统计方式不满足您的查询需求,请提工单反馈。 SpecifyStatistics *int64 `json:"SpecifyStatistics,omitnil,omitempty" name:"SpecifyStatistics"` } @@ -11072,7 +11400,7 @@ type GetMonitorDataRequest struct { // 结束时间,如2018-09-22T20:51:23+08:00,默认为当前时间。 EndTime不能小于StartTime EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"` - // 返回多种统计方式数据。avg, max, min (1,2,4)可以自由组合 + // 返回多种统计方式数据。avg, max, min (1,2,4)可以自由组合。注意: 仅支持对API配置文档中展示的统计方式返回对应的统计数据。如所需的统计方式不满足您的查询需求,请提工单反馈。 SpecifyStatistics *int64 `json:"SpecifyStatistics,omitnil,omitempty" name:"SpecifyStatistics"` } @@ -11205,6 +11533,117 @@ func (r *GetPrometheusAgentManagementCommandResponse) FromJsonString(s string) e return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type GetTopNMonitorDataRequestParams struct { + // topN + N *uint64 `json:"N,omitnil,omitempty" name:"N"` + + // 起始时间 + StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 截止时间 + EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 实例对象的维度组合,格式为key-value键值对形式的集合。不同类型的实例字段完全不同,如CVM为[{"Name":"InstanceId","Value":"ins-j0hk02zo"}],Ckafka为[{"Name":"instanceId","Value":"ckafka-l49k54dd"}],COS为[{"Name":"appid","Value":"1258344699"},{"Name":"bucket","Value":"rig-1258344699"}]。各个云产品的维度请参阅各个产品监控指标文档,对应的维度列即为维度组合的key,value为key对应的值。单请求最多支持批量拉取50个实例的监控数据。 + Instances []*Instance `json:"Instances,omitnil,omitempty" name:"Instances"` + + // 指标名称,如Bwpresourcebandwidthin,仅支持单指标拉取。各个云产品的详细指标说明请参阅各个产品监控指标文档,对应的指标英文名即为MetricName + MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` + + // 命名空间,如QCE/CVM。各个云产品的详细命名空间说明请参阅各个产品监控指标文档 + Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"` + + // 监控统计周期,如60。默认为取值为60,单位为s。每个指标支持的统计周期不一定相同,各个云产品支持的统计周期请参阅各个产品监控指标文档,对应的统计周期列即为支持的统计周期。 + Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"` +} + +type GetTopNMonitorDataRequest struct { + *tchttp.BaseRequest + + // topN + N *uint64 `json:"N,omitnil,omitempty" name:"N"` + + // 起始时间 + StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"` + + // 截止时间 + EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"` + + // 实例对象的维度组合,格式为key-value键值对形式的集合。不同类型的实例字段完全不同,如CVM为[{"Name":"InstanceId","Value":"ins-j0hk02zo"}],Ckafka为[{"Name":"instanceId","Value":"ckafka-l49k54dd"}],COS为[{"Name":"appid","Value":"1258344699"},{"Name":"bucket","Value":"rig-1258344699"}]。各个云产品的维度请参阅各个产品监控指标文档,对应的维度列即为维度组合的key,value为key对应的值。单请求最多支持批量拉取50个实例的监控数据。 + Instances []*Instance `json:"Instances,omitnil,omitempty" name:"Instances"` + + // 指标名称,如Bwpresourcebandwidthin,仅支持单指标拉取。各个云产品的详细指标说明请参阅各个产品监控指标文档,对应的指标英文名即为MetricName + MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` + + // 命名空间,如QCE/CVM。各个云产品的详细命名空间说明请参阅各个产品监控指标文档 + Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"` + + // 监控统计周期,如60。默认为取值为60,单位为s。每个指标支持的统计周期不一定相同,各个云产品支持的统计周期请参阅各个产品监控指标文档,对应的统计周期列即为支持的统计周期。 + Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"` +} + +func (r *GetTopNMonitorDataRequest) 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 *GetTopNMonitorDataRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "N") + delete(f, "StartTime") + delete(f, "EndTime") + delete(f, "Instances") + delete(f, "MetricName") + delete(f, "Namespace") + delete(f, "Period") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "GetTopNMonitorDataRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type GetTopNMonitorDataResponseParams struct { + // 指标名 + MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` + + // 统计周期 + Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"` + + // topN + N *uint64 `json:"N,omitnil,omitempty" name:"N"` + + // 排序的监控数据 + OrderedDataPoints []*SingleOrderedDataPoint `json:"OrderedDataPoints,omitnil,omitempty" name:"OrderedDataPoints"` + + // 返回信息 + Msg *string `json:"Msg,omitnil,omitempty" name:"Msg"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type GetTopNMonitorDataResponse struct { + *tchttp.BaseResponse + Response *GetTopNMonitorDataResponseParams `json:"Response"` +} + +func (r *GetTopNMonitorDataResponse) 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 *GetTopNMonitorDataResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type GrafanaAccountInfo struct { // 用户账号ID UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"` @@ -11328,7 +11767,7 @@ type GrafanaIntegrationConfig struct { // 集成描述 Description *string `json:"Description,omitnil,omitempty" name:"Description"` - // Grafana 跳转地址 + // Grafana 跳转地址(目前未使用,默认为空) // 注意:此字段可能返回 null,表示取不到有效值。 GrafanaURL *string `json:"GrafanaURL,omitnil,omitempty" name:"GrafanaURL"` } @@ -11485,6 +11924,34 @@ type IntegrationConfiguration struct { GrafanaDashboardURL *string `json:"GrafanaDashboardURL,omitnil,omitempty" name:"GrafanaDashboardURL"` } +type IntegrationMetric struct { + // 指标名 + MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` + + // 指标名称 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 统计类型 + MetricType *string `json:"MetricType,omitnil,omitempty" name:"MetricType"` + + // 单位 + Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"` + + // 指标详细描述 + Description *string `json:"Description,omitnil,omitempty" name:"Description"` +} + +type IntegrationMetricGroup struct { + // 分组标识 + Group *string `json:"Group,omitnil,omitempty" name:"Group"` + + // 指标详情 + Metrics []*IntegrationMetric `json:"Metrics,omitnil,omitempty" name:"Metrics"` + + // 分组名称 + GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"` +} + type Label struct { // map表中的Name Name *string `json:"Name,omitnil,omitempty" name:"Name"` @@ -12003,6 +12470,9 @@ type ModifyAlarmPolicyNoticeRequestParams struct { // 告警分级通知规则配置 HierarchicalNotices []*AlarmHierarchicalNotice `json:"HierarchicalNotices,omitnil,omitempty" name:"HierarchicalNotices"` + + // 通知内容模板绑定信息 + NoticeContentTmplBindInfos []*NoticeContentTmplBindInfo `json:"NoticeContentTmplBindInfos,omitnil,omitempty" name:"NoticeContentTmplBindInfos"` } type ModifyAlarmPolicyNoticeRequest struct { @@ -12022,6 +12492,9 @@ type ModifyAlarmPolicyNoticeRequest struct { // 告警分级通知规则配置 HierarchicalNotices []*AlarmHierarchicalNotice `json:"HierarchicalNotices,omitnil,omitempty" name:"HierarchicalNotices"` + + // 通知内容模板绑定信息 + NoticeContentTmplBindInfos []*NoticeContentTmplBindInfo `json:"NoticeContentTmplBindInfos,omitnil,omitempty" name:"NoticeContentTmplBindInfos"` } func (r *ModifyAlarmPolicyNoticeRequest) ToJsonString() string { @@ -12041,6 +12514,7 @@ func (r *ModifyAlarmPolicyNoticeRequest) FromJsonString(s string) error { delete(f, "NoticeIds") delete(f, "PolicyIds") delete(f, "HierarchicalNotices") + delete(f, "NoticeContentTmplBindInfos") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyAlarmPolicyNoticeRequest has unknown keys!", "") } @@ -12273,6 +12747,46 @@ func (r *ModifyAlarmReceiversResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ModifyConditionsTemplateRequestCondition struct { + // 统计周期 + CalcPeriod *string `json:"CalcPeriod,omitnil,omitempty" name:"CalcPeriod"` + + // 统计方式 + CalcType *string `json:"CalcType,omitnil,omitempty" name:"CalcType"` + + // 持续周期 + ContinuePeriod *string `json:"ContinuePeriod,omitnil,omitempty" name:"ContinuePeriod"` + + // 指标ID + MetricID *int64 `json:"MetricID,omitnil,omitempty" name:"MetricID"` + + // 统计值 + CalcValue *string `json:"CalcValue,omitnil,omitempty" name:"CalcValue"` + + // 告警通知周期 + AlarmNotifyPeriod *string `json:"AlarmNotifyPeriod,omitnil,omitempty" name:"AlarmNotifyPeriod"` + + // 告警通知方式 + AlarmNotifyType *int64 `json:"AlarmNotifyType,omitnil,omitempty" name:"AlarmNotifyType"` + + // 规则ID + RuleID *int64 `json:"RuleID,omitnil,omitempty" name:"RuleID"` +} + +type ModifyConditionsTemplateRequestEventCondition struct { + // 告警通知周期 + AlarmNotifyPeriod *string `json:"AlarmNotifyPeriod,omitnil,omitempty" name:"AlarmNotifyPeriod"` + + // 告警通知方式 + AlarmNotifyType *string `json:"AlarmNotifyType,omitnil,omitempty" name:"AlarmNotifyType"` + + // 事件ID + EventID *string `json:"EventID,omitnil,omitempty" name:"EventID"` + + // 规则ID + RuleID *int64 `json:"RuleID,omitnil,omitempty" name:"RuleID"` +} + // Predefined struct for user type ModifyGrafanaInstanceRequestParams struct { // Grafana 实例 ID,例如:grafana-abcdefgh @@ -13053,6 +13567,14 @@ type NoticeBindPolicys struct { PolicyIds []*string `json:"PolicyIds,omitnil,omitempty" name:"PolicyIds"` } +type NoticeContentTmplBindInfo struct { + // 通知内容模板ID + ContentTmplID *string `json:"ContentTmplID,omitnil,omitempty" name:"ContentTmplID"` + + // 通知模板ID + NoticeID *string `json:"NoticeID,omitnil,omitempty" name:"NoticeID"` +} + type Operator struct { // 运算符标识 Id *string `json:"Id,omitnil,omitempty" name:"Id"` @@ -13858,10 +14380,10 @@ type PrometheusRecordRuleYamlItem struct { // 最近更新时间 UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"` - // Yaml内容 + // 如果该聚合规则来至模板,则TemplateId为模板id TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"` - // 如果该聚合规则来至模板,则TemplateId为模板id + // Yaml内容 // 注意:此字段可能返回 null,表示取不到有效值。 Content *string `json:"Content,omitnil,omitempty" name:"Content"` @@ -13989,7 +14511,14 @@ type PrometheusTag struct { } type PrometheusTarget struct { + // 抓取目标的URL + Url *string `json:"Url,omitnil,omitempty" name:"Url"` + // target当前状态,当前支持 + // up = 健康 + // down = 不健康 + // unknown = 未知 + State *string `json:"State,omitnil,omitempty" name:"State"` } type PrometheusTemp struct { @@ -14211,6 +14740,14 @@ type RecordingRuleSet struct { RuleName *string `json:"RuleName,omitnil,omitempty" name:"RuleName"` } +type RegionPolicyObjectCount struct { + // 地域 + Region *string `json:"Region,omitnil,omitempty" name:"Region"` + + // 绑定的实例数量 + Count *int64 `json:"Count,omitnil,omitempty" name:"Count"` +} + type RemoteWrite struct { // 多写url URL *string `json:"URL,omitnil,omitempty" name:"URL"` @@ -14225,10 +14762,14 @@ type RemoteWrite struct { // 最大block // 注意:此字段可能返回 null,表示取不到有效值。 + // + // Deprecated: MaxBlockSize is deprecated. MaxBlockSize *string `json:"MaxBlockSize,omitnil,omitempty" name:"MaxBlockSize"` // Label // 注意:此字段可能返回 null,表示取不到有效值。 + // + // Deprecated: Label is deprecated. Label *string `json:"Label,omitnil,omitempty" name:"Label"` // HTTP 额外添加的头 @@ -14448,6 +14989,24 @@ func (r *SetDefaultAlarmPolicyResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type SingleOrderedDataPoint struct { + // 实例对象维度组合 + // 注意:此字段可能返回 null,表示取不到有效值。 + Dimensions []*Dimension `json:"Dimensions,omitnil,omitempty" name:"Dimensions"` + + // 监控数据值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Value *float64 `json:"Value,omitnil,omitempty" name:"Value"` + + // 监控数据时间戳 + // 注意:此字段可能返回 null,表示取不到有效值。 + Timestamp *uint64 `json:"Timestamp,omitnil,omitempty" name:"Timestamp"` + + // 排序序号 + // 注意:此字段可能返回 null,表示取不到有效值。 + Order *uint64 `json:"Order,omitnil,omitempty" name:"Order"` +} + // Predefined struct for user type SyncPrometheusTempRequestParams struct { // 实例id @@ -14716,6 +15275,10 @@ type URLNotice struct { // 通知周期 1-7表示周一到周日 // 注意:此字段可能返回 null,表示取不到有效值。 Weekday []*int64 `json:"Weekday,omitnil,omitempty" name:"Weekday"` + + // 组名 + // 注意:此字段可能返回 null,表示取不到有效值。 + GroupMembers *string `json:"GroupMembers,omitnil,omitempty" name:"GroupMembers"` } // Predefined struct for user @@ -15115,7 +15678,7 @@ func (r *UninstallGrafanaPluginsResponse) FromJsonString(s string) error { // Predefined struct for user type UpdateAlertRuleRequestParams struct { - // Prometheus 高警规则 ID + // Prometheus 告警规则 ID RuleId *string `json:"RuleId,omitnil,omitempty" name:"RuleId"` // Prometheus 实例 ID @@ -15140,22 +15703,22 @@ type UpdateAlertRuleRequestParams struct { // 告警规则接收组列表(当前规则绑定的接收组列表可通过 DescribeAlertRules 接口获取;用户已有的接收组列表可通过 DescribeAlarmNotices 接口获取) Receivers []*string `json:"Receivers,omitnil,omitempty" name:"Receivers"` - // 报警规则标签列表 + // 告警规则标签列表 Labels []*PrometheusRuleKV `json:"Labels,omitnil,omitempty" name:"Labels"` - // 报警规则注释列表。 + // 告警规则注释列表。 // // 告警对象和告警消息是 Prometheus Rule Annotations 的特殊字段,需要通过 annotations 来传递,对应的 Key 分别为summary/description。 Annotations []*PrometheusRuleKV `json:"Annotations,omitnil,omitempty" name:"Annotations"` - // 报警策略模板分类(自定义,可不填) + // 告警策略模板分类(自定义,可不填) Type *string `json:"Type,omitnil,omitempty" name:"Type"` } type UpdateAlertRuleRequest struct { *tchttp.BaseRequest - // Prometheus 高警规则 ID + // Prometheus 告警规则 ID RuleId *string `json:"RuleId,omitnil,omitempty" name:"RuleId"` // Prometheus 实例 ID @@ -15180,15 +15743,15 @@ type UpdateAlertRuleRequest struct { // 告警规则接收组列表(当前规则绑定的接收组列表可通过 DescribeAlertRules 接口获取;用户已有的接收组列表可通过 DescribeAlarmNotices 接口获取) Receivers []*string `json:"Receivers,omitnil,omitempty" name:"Receivers"` - // 报警规则标签列表 + // 告警规则标签列表 Labels []*PrometheusRuleKV `json:"Labels,omitnil,omitempty" name:"Labels"` - // 报警规则注释列表。 + // 告警规则注释列表。 // // 告警对象和告警消息是 Prometheus Rule Annotations 的特殊字段,需要通过 annotations 来传递,对应的 Key 分别为summary/description。 Annotations []*PrometheusRuleKV `json:"Annotations,omitnil,omitempty" name:"Annotations"` - // 报警策略模板分类(自定义,可不填) + // 告警策略模板分类(自定义,可不填) Type *string `json:"Type,omitnil,omitempty" name:"Type"` } diff --git a/vendor/modules.txt b/vendor/modules.txt index 9e81c1f3cf..dbbc53d09f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1246,7 +1246,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb/v20170312 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.1096 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb/v20190725 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1149 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853 diff --git a/website/docs/r/monitor_policy_binding_object.html.markdown b/website/docs/r/monitor_policy_binding_object.html.markdown index 311ce92ca8..b341bcc9e4 100644 --- a/website/docs/r/monitor_policy_binding_object.html.markdown +++ b/website/docs/r/monitor_policy_binding_object.html.markdown @@ -73,6 +73,7 @@ The following arguments are supported: The `dimensions` object supports the following: * `dimensions_json` - (Required, String, ForceNew) Represents a collection of dimensions of an object instance, json format.eg:'{"unInstanceId":"ins-ot3cq4bi"}'. +* `region` - (Optional, String, ForceNew) Region. ## Attributes Reference