diff --git a/CHANGELOG.md b/CHANGELOG.md index 4db6230a4e..93f68167ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ -## 1.51.2 (Unreleased) +## 1.52.0 (Unreleased) + +FEATURES: + +* **New Resource**: `tencentcloud_kubernetes_node_pool` to support node management. + +DEPRECATED: + +* Resource: `tencentcloud_kubernetes_as_scaling_group` replaced by `tencentcloud_kubernetes_node_pool`. + + ## 1.51.1 (December 22, 2020) ENHANCEMENTS: diff --git a/go.mod b/go.mod index d9d78fad76..b47027283f 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/mattn/go-colorable v0.1.6 // indirect github.com/mitchellh/go-homedir v1.1.0 github.com/pkg/errors v0.9.1 - github.com/tencentcloud/tencentcloud-sdk-go v1.0.67 + github.com/tencentcloud/tencentcloud-sdk-go v1.0.76 github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1 github.com/zclconf/go-cty v1.4.2 // indirect golang.org/x/sys v0.0.0-20200523222454-059865788121 // indirect diff --git a/go.sum b/go.sum index 8df7eb76e7..abcbc7c5e4 100644 --- a/go.sum +++ b/go.sum @@ -441,8 +441,8 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2 h1:Xr9gkxfOP0KQWXKNqmwe8vEeSUiUj4Rlee9CMVX2ZUQ= github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= -github.com/tencentcloud/tencentcloud-sdk-go v1.0.67 h1:fKSwJ7hrvHTxr33EcmrbKcavYJ/U2zNIH8Lvsj2FNTE= -github.com/tencentcloud/tencentcloud-sdk-go v1.0.67/go.mod h1:asUz5BPXxgoPGaRgZaVm1iGcUAuHyYUo1nXqKa83cvI= +github.com/tencentcloud/tencentcloud-sdk-go v1.0.76 h1:fVggxeCzlYcIliDjPKC4yGpbfQibWY6HmT9dbS7BKf8= +github.com/tencentcloud/tencentcloud-sdk-go v1.0.76/go.mod h1:asUz5BPXxgoPGaRgZaVm1iGcUAuHyYUo1nXqKa83cvI= github.com/tetafro/godot v0.3.7 h1:+mecr7RKrUKB5UQ1gwqEMn13sDKTyDR8KNIquB9mm+8= github.com/tetafro/godot v0.3.7/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0= github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e h1:RumXZ56IrCj4CL+g1b9OL/oH0QnsF976bC8xQFYUD5Q= diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index 6dd9788f5f..17143f6e28 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -307,6 +307,7 @@ Tencent Kubernetes Engine(TKE) tencentcloud_kubernetes_scale_worker tencentcloud_kubernetes_as_scaling_group tencentcloud_kubernetes_cluster_attachment + tencentcloud_kubernetes_node_pool MongoDB Data Source @@ -816,6 +817,7 @@ func Provider() terraform.ResourceProvider { "tencentcloud_kubernetes_as_scaling_group": ResourceTencentCloudKubernetesAsScalingGroup(), "tencentcloud_kubernetes_scale_worker": resourceTencentCloudTkeScaleWorker(), "tencentcloud_kubernetes_cluster_attachment": resourceTencentCloudTkeClusterAttachment(), + "tencentcloud_kubernetes_node_pool": ResourceTencentCloudKubernetesNodePool(), "tencentcloud_mysql_backup_policy": resourceTencentCloudMysqlBackupPolicy(), "tencentcloud_mysql_account": resourceTencentCloudMysqlAccount(), "tencentcloud_mysql_account_privilege": resourceTencentCloudMysqlAccountPrivilege(), diff --git a/tencentcloud/resource_tc_kubernetes_as_scaling_group.go b/tencentcloud/resource_tc_kubernetes_as_scaling_group.go index de41aa961c..bdc0c9becc 100644 --- a/tencentcloud/resource_tc_kubernetes_as_scaling_group.go +++ b/tencentcloud/resource_tc_kubernetes_as_scaling_group.go @@ -1,6 +1,6 @@ /* Provide a resource to create an auto scaling group for kubernetes cluster. - +~> **NOTE:** It has been deprecated and replaced by `tencentcloud_cluster_node_pool`. ~> **NOTE:** To use the custom Kubernetes component startup parameter function (parameter `extra_args`), you need to submit a ticket for application. Example Usage diff --git a/tencentcloud/resource_tc_kubernetes_cluster.go b/tencentcloud/resource_tc_kubernetes_cluster.go index 733d5ad872..8031babb0d 100644 --- a/tencentcloud/resource_tc_kubernetes_cluster.go +++ b/tencentcloud/resource_tc_kubernetes_cluster.go @@ -2,6 +2,7 @@ Provide a resource to create a kubernetes cluster. ~> **NOTE:** To use the custom Kubernetes component startup parameter function (parameter `extra_args`), you need to submit a ticket for application. +~> **NOTE:** We recommend the usage of one cluster without worker config + node pool to manage cluster and nodes. It's a more flexible way than manage worker config with tencentcloud_kubernetes_cluster, tencentcloud_kubernetes_scale_worker or exist node management of `tencentcloud_kubernetes_attachment`. Cause some unchangeable parameters of `worker_config` may cause the whole cluster resource `force new`. Example Usage @@ -500,7 +501,7 @@ func resourceTencentCloudTkeCluster() *schema.Resource { Optional: true, Default: TKE_DEPLOY_TYPE_MANAGED, ValidateFunc: validateAllowedStringValue(TKE_DEPLOY_TYPES), - Description: "Deployment type of the cluster, the available values include: 'MANAGED_CLUSTER' and 'INDEPENDENT_CLUSTER', Default is 'MANAGED_CLUSTER'.", + Description: "Deployment type of the cluster, the available values include: 'MANAGED_CLUSTER' and 'INDEPENDENT_CLUSTER'. Default is 'MANAGED_CLUSTER'.", }, "cluster_version": { Type: schema.TypeString, diff --git a/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go b/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go index ac19af3e00..7799ae63e7 100644 --- a/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go +++ b/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go @@ -214,6 +214,10 @@ resource "tencentcloud_kubernetes_cluster_attachment" "test_attach" { "test1" = "test1", "test2" = "test2", } + + extra_args = [ + "root-dir=/var/lib/kubelet" + ] } ` } diff --git a/tencentcloud/resource_tc_kubernetes_node_pool.go b/tencentcloud/resource_tc_kubernetes_node_pool.go new file mode 100644 index 0000000000..f36708223b --- /dev/null +++ b/tencentcloud/resource_tc_kubernetes_node_pool.go @@ -0,0 +1,810 @@ +/* +Provide a resource to create an auto scaling group for kubernetes cluster. + +~> **NOTE:** We recommend the usage of one cluster without worker config + node pool to manage cluster and nodes. Its a more flexible way than manage worker config with tencentcloud_kubernetes_cluster, tencentcloud_kubernetes_scale_worker or exist node management of `tencentcloud_kubernetes_attachment`. Cause some unchangeable parameters of `worker_config` may cause the whole cluster resource `force new`. + +Example Usage + +```hcl + +variable "availability_zone" { + default = "ap-guangzhou-3" +} + +variable "cluster_cidr" { + default = "172.31.0.0/16" +} + +data "tencentcloud_vpc_subnets" "vpc" { + is_default = true + availability_zone = var.availability_zone +} + +variable "default_instance_type" { + default = "S1.SMALL1" +} + +//this is the cluster with empty worker config +resource "tencentcloud_kubernetes_cluster" "managed_cluster" { + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + cluster_cidr = var.cluster_cidr + cluster_max_pod_num = 32 + cluster_name = "tf-tke-unit-test" + cluster_desc = "test cluster desc" + cluster_max_service_num = 32 + cluster_version = "1.18.4" + cluster_deploy_type = "MANAGED_CLUSTER" +} + +//this is one example of managing node using node pool +resource "tencentcloud_kubernetes_node_pool" "mynodepool" { + name = "mynodepool" + cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id + max_size = 6 + min_size = 1 + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + retry_policy = "INCREMENTAL_INTERVALS" + desired_capacity = 4 + enable_auto_scale = true + + auto_scaling_config { + instance_type = var.default_instance_type + system_disk_type = "CLOUD_PREMIUM" + system_disk_size = "50" + security_group_ids = ["sg-24vswocp"] + + data_disk { + disk_type = "CLOUD_PREMIUM" + disk_size = 50 + } + + internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" + password = "test123#" + enhanced_security_service = false + enhanced_monitor_service = false + + } + + labels = { + "test1" = "test1", + "test2" = "test2", + } + + taints { + key = "test_taint" + value = "taint_value" + effect = "PreferNoSchedule" + } + + node_config { + extra_args = [ + "root-dir=/var/lib/kubelet" + ] + } +} +``` +*/ +package tencentcloud + +import ( + "context" + "fmt" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" + as "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as/v20180419" + sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" + tke "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func composedKubernetesAsScalingConfigPara() map[string]*schema.Schema { + needSchema := map[string]*schema.Schema{ + "instance_type": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Specified types of CVM instance.", + }, + "system_disk_type": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Default: SYSTEM_DISK_TYPE_CLOUD_PREMIUM, + ValidateFunc: validateAllowedStringValue(SYSTEM_DISK_ALLOW_TYPE), + Description: "Type of a CVM disk. Valid value: `CLOUD_PREMIUM` and `CLOUD_SSD`. Default is `CLOUD_PREMIUM`.", + }, + "system_disk_size": { + Type: schema.TypeInt, + Optional: true, + ForceNew: true, + Default: 50, + ValidateFunc: validateIntegerInRange(50, 500), + Description: "Volume of system disk in GB. Default is `50`.", + }, + "data_disk": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + MaxItems: 11, + Description: "Configurations of data disk.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "disk_type": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Default: SYSTEM_DISK_TYPE_CLOUD_PREMIUM, + ValidateFunc: validateAllowedStringValue(SYSTEM_DISK_ALLOW_TYPE), + Description: "Types of disk. Valid value: `CLOUD_PREMIUM` and `CLOUD_SSD`.", + }, + "disk_size": { + Type: schema.TypeInt, + Optional: true, + ForceNew: true, + Default: 0, + Description: "Volume of disk in GB. Default is `0`.", + }, + "snapshot_id": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Description: "Data disk snapshot ID.", + }, + }, + }, + }, + "internet_charge_type": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Default: INTERNET_CHARGE_TYPE_TRAFFIC_POSTPAID_BY_HOUR, + ValidateFunc: validateAllowedStringValue(INTERNET_CHARGE_ALLOW_TYPE), + Description: "Charge types for network traffic. Valid value: `BANDWIDTH_PREPAID`, `TRAFFIC_POSTPAID_BY_HOUR`, `TRAFFIC_POSTPAID_BY_HOUR` and `BANDWIDTH_PACKAGE`.", + }, + "password": { + Type: schema.TypeString, + Optional: true, + Sensitive: true, + ForceNew: true, + ValidateFunc: validateAsConfigPassword, + ConflictsWith: []string{"auto_scaling_config.0.key_ids"}, + Description: "Password to access.", + }, + "key_ids": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{Type: schema.TypeString}, + ConflictsWith: []string{"auto_scaling_config.0.password"}, + Description: "ID list of keys.", + }, + "security_group_ids": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Security groups to which a CVM instance belongs.", + }, + "enhanced_security_service": { + Type: schema.TypeBool, + Optional: true, + Default: true, + ForceNew: true, + Description: "To specify whether to enable cloud security service. Default is TRUE.", + }, + "enhanced_monitor_service": { + Type: schema.TypeBool, + Optional: true, + Default: true, + ForceNew: true, + Description: "To specify whether to enable cloud monitor service. Default is TRUE.", + }, + } + + return needSchema +} + +func ResourceTencentCloudKubernetesNodePool() *schema.Resource { + return &schema.Resource{ + Create: resourceKubernetesNodePoolCreate, + Read: resourceKubernetesNodePoolRead, + Delete: resourceKubernetesNodePoolDelete, + Update: resourceKubernetesNodePoolUpdate, + Schema: map[string]*schema.Schema{ + "cluster_id": { + Type: schema.TypeString, + ForceNew: true, + Required: true, + Description: "ID of the cluster.", + }, + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Name of the node pool. The name does not exceed 25 characters, and only supports Chinese, English, numbers, underscores, separators (`-`) and decimal points.", + }, + "max_size": { + Type: schema.TypeInt, + Required: true, + ValidateFunc: validateIntegerInRange(0, 2000), + Description: "Maximum number of node.", + }, + "min_size": { + Type: schema.TypeInt, + Required: true, + ValidateFunc: validateIntegerInRange(0, 2000), + Description: "Minimum number of node.", + }, + "desired_capacity": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + ValidateFunc: validateIntegerInRange(0, 2000), + Description: "Desired capacity ot the node. If `enable_auto_scale` is set `true`, this will be a computed parameter.", + }, + "enable_auto_scale": { + Type: schema.TypeBool, + Optional: true, + Default: true, + Description: "Indicate whether to enable auto scaling or not.", + }, + "retry_policy": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Description: "Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`.", + Default: SCALING_GROUP_RETRY_POLICY_IMMEDIATE_RETRY, + ValidateFunc: validateAllowedStringValue([]string{SCALING_GROUP_RETRY_POLICY_IMMEDIATE_RETRY, + SCALING_GROUP_RETRY_POLICY_INCREMENTAL_INTERVALS}), + }, + "vpc_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "ID of VPC network.", + }, + "subnet_ids": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "ID list of subnet, and for VPC it is required.", + }, + "node_config": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: TkeInstanceAdvancedSetting(), + }, + Description: "Node config.", + }, + "auto_scaling_config": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: composedKubernetesAsScalingConfigPara(), + }, + Description: "Auto scaling config parameters.", + }, + "labels": { + Type: schema.TypeMap, + Optional: true, + Description: "Labels of kubernetes node pool created nodes. The label key name does not exceed 63 characters, only supports English, numbers,'/','-', and does not allow beginning with ('/').", + }, + "taints": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the taint. The taint key name does not exceed 63 characters, only supports English, numbers,'/','-', and does not allow beginning with ('/').", + }, + "value": { + Type: schema.TypeString, + Required: true, + Description: "Value of the taint.", + }, + "effect": { + Type: schema.TypeString, + Required: true, + Description: "Effect of the taint. Valid values are: `NoSchedule`, `PreferNoSchedule`, `NoExecute`.", + }, + }, + }, + Description: "Taints of kubernetes node pool created nodes.", + }, + "delete_keep_instance": { + Type: schema.TypeBool, + Optional: true, + Default: true, + Description: "Indicate to keep the CVM instance when delete the node pool. Default is `true`.", + }, + "node_os": { + Type: schema.TypeString, + Optional: true, + Default: "tlinux2.4x86_64", + Description: "Operating system of the cluster, the available values include: `tlinux2.4x86_64`, `ubuntu18.04.1x86_64`, `ubuntu16.04.1 LTSx86_64`, `centos7.6.0_x64` and `centos7.2x86_64`. Default is 'tlinux2.4x86_64'. This parameter will only affect new nodes, not including the existing nodes.", + }, + "node_os_type": { + Type: schema.TypeString, + Optional: true, + Default: "GENERAL", + Description: "The image version of the node. Valida values are `DOCKER_CUSTOMIZE` and `GENERAL`. Default is `GENERAL`. This parameter will only affect new nodes, not including the existing nodes.", + }, + //computed + "status": { + Type: schema.TypeString, + Computed: true, + Description: "Status of the node pool.", + }, + "node_count": { + Type: schema.TypeInt, + Computed: true, + Description: "The total node count.", + }, + "launch_config_id": { + Type: schema.TypeString, + Computed: true, + Description: "The launch config ID.", + }, + "auto_scaling_group_id": { + Type: schema.TypeString, + Computed: true, + Description: "The auto scaling group ID.", + }, + }, + //compare to console, miss cam_role and running_version and lock_initial_node and security_proof + } +} + +//this function composes every single parameter to a as scale parameter with json string format +func composeParameterToAsScalingGroupParaSerial(d *schema.ResourceData) (string, error) { + var ( + result string + errRet error + ) + + request := as.NewCreateAutoScalingGroupRequest() + + //this is an empty string + request.MaxSize = helper.IntUint64(d.Get("max_size").(int)) + request.MinSize = helper.IntUint64(d.Get("min_size").(int)) + + if *request.MinSize > *request.MaxSize { + return "", fmt.Errorf("constraints `min_size <= desired_capacity <= max_size` must be established,") + } + + request.VpcId = helper.String(d.Get("vpc_id").(string)) + + if v, ok := d.GetOk("desired_capacity"); ok { + request.DesiredCapacity = helper.IntUint64(v.(int)) + if *request.DesiredCapacity > *request.MaxSize || + *request.DesiredCapacity < *request.MinSize { + return "", fmt.Errorf("constraints `min_size <= desired_capacity <= max_size` must be established,") + } + + } + + if v, ok := d.GetOk("retry_policy"); ok { + request.RetryPolicy = helper.String(v.(string)) + } + + if v, ok := d.GetOk("subnet_ids"); ok { + subnetIds := v.([]interface{}) + request.SubnetIds = make([]*string, 0, len(subnetIds)) + for i := range subnetIds { + subnetId := subnetIds[i].(string) + request.SubnetIds = append(request.SubnetIds, &subnetId) + } + } + + result = request.ToJsonString() + + return result, errRet +} + +//this function is similar to kubernetesAsScalingConfigParaSerial, but less parameter +func comosedKubernetesAsScalingConfigParaSerial(dMap map[string]interface{}, meta interface{}) (string, error) { + var ( + result string + errRet error + ) + + request := as.NewCreateLaunchConfigurationRequest() + + instanceType := dMap["instance_type"].(string) + request.InstanceType = &instanceType + + request.SystemDisk = &as.SystemDisk{} + if v, ok := dMap["system_disk_type"]; ok { + request.SystemDisk.DiskType = helper.String(v.(string)) + } + + if v, ok := dMap["system_disk_size"]; ok { + request.SystemDisk.DiskSize = helper.IntUint64(v.(int)) + } + + if v, ok := dMap["data_disk"]; ok { + dataDisks := v.([]interface{}) + request.DataDisks = make([]*as.DataDisk, 0, len(dataDisks)) + for _, d := range dataDisks { + value := d.(map[string]interface{}) + diskType := value["disk_type"].(string) + diskSize := uint64(value["disk_size"].(int)) + snapshotId := value["snapshot_id"].(string) + dataDisk := as.DataDisk{ + DiskType: &diskType, + DiskSize: &diskSize, + } + if snapshotId != "" { + dataDisk.SnapshotId = &snapshotId + } + request.DataDisks = append(request.DataDisks, &dataDisk) + } + } + + request.InternetAccessible = &as.InternetAccessible{} + if v, ok := dMap["internet_charge_type"]; ok { + request.InternetAccessible.InternetChargeType = helper.String(v.(string)) + } + + request.LoginSettings = &as.LoginSettings{} + + if v, ok := dMap["password"]; ok { + request.LoginSettings.Password = helper.String(v.(string)) + } + if v, ok := dMap["key_ids"]; ok { + keyIds := v.([]interface{}) + request.LoginSettings.KeyIds = make([]*string, 0, len(keyIds)) + for i := range keyIds { + keyId := keyIds[i].(string) + request.LoginSettings.KeyIds = append(request.LoginSettings.KeyIds, &keyId) + } + } + + if request.LoginSettings.Password != nil && *request.LoginSettings.Password == "" { + request.LoginSettings.Password = nil + } + + if request.LoginSettings.Password == nil && len(request.LoginSettings.KeyIds) == 0 { + errRet = fmt.Errorf("Parameters `key_ids` and `password` should be set one") + return result, errRet + } + + if request.LoginSettings.Password != nil && len(request.LoginSettings.KeyIds) != 0 { + errRet = fmt.Errorf("Parameters `key_ids` and `password` can only be supported one") + return result, errRet + } + + if v, ok := dMap["security_group_ids"]; ok { + securityGroups := v.([]interface{}) + request.SecurityGroupIds = make([]*string, 0, len(securityGroups)) + for i := range securityGroups { + securityGroup := securityGroups[i].(string) + request.SecurityGroupIds = append(request.SecurityGroupIds, &securityGroup) + } + } + + request.EnhancedService = &as.EnhancedService{} + + if v, ok := dMap["enhanced_security_service"]; ok { + securityService := v.(bool) + request.EnhancedService.SecurityService = &as.RunSecurityServiceEnabled{ + Enabled: &securityService, + } + } + if v, ok := dMap["enhanced_monitor_service"]; ok { + monitorService := v.(bool) + request.EnhancedService.MonitorService = &as.RunMonitorServiceEnabled{ + Enabled: &monitorService, + } + } + + chargeType := INSTANCE_CHARGE_TYPE_POSTPAID + request.InstanceChargeType = &chargeType + + result = request.ToJsonString() + return result, errRet +} + +func resourceKubernetesNodePoolRead(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_kubernetes_node_pool.read")() + + var ( + logId = getLogId(contextNil) + ctx = context.WithValue(context.TODO(), logIdKey, logId) + service = TkeService{client: meta.(*TencentCloudClient).apiV3Conn} + items = strings.Split(d.Id(), FILED_SP) + ) + if len(items) != 2 { + return fmt.Errorf("resource_tc_kubernetes_node_pool id is broken") + } + clusterId := items[0] + nodePoolId := items[1] + + _, has, err := service.DescribeCluster(ctx, clusterId) + if err != nil { + err = resource.Retry(readRetryTimeout, func() *resource.RetryError { + _, has, err = service.DescribeCluster(ctx, clusterId) + if err != nil { + return retryError(err) + } + return nil + }) + } + + if err != nil { + return nil + } + + if !has { + d.SetId("") + return nil + } + + //Describe Node Pool + nodePool, has, err := service.DescribeNodePool(ctx, clusterId, nodePoolId) + if err != nil { + err = resource.Retry(readRetryTimeout, func() *resource.RetryError { + _, has, err = service.DescribeNodePool(ctx, clusterId, nodePoolId) + if err != nil { + return retryError(err) + } + return nil + }) + } + + if err != nil { + return nil + } + + if !has { + d.SetId("") + return nil + } + + //set not force new parameters + d.Set("max_size", nodePool.MaxNodesNum) + d.Set("min_size", nodePool.MinNodesNum) + d.Set("desired_capacity", nodePool.DesiredNodesNum) + d.Set("name", nodePool.Name) + d.Set("status", nodePool.LifeState) + d.Set("node_count", nodePool.NodeCountSummary) + d.Set("auto_scaling_group_id", nodePool.AutoscalingGroupId) + d.Set("launch_config_id", nodePool.LaunchConfigurationId) + d.Set("enable_auto_scale", *nodePool.AutoscalingGroupStatus == "enabled") + d.Set("node_os", *nodePool.NodePoolOs) + d.Set("node_system_type", *nodePool.OsCustomizeType) + + //set composed struct + lables := make(map[string]interface{}, len(nodePool.Labels)) + for _, v := range nodePool.Labels { + lables[*v.Name] = *v.Value + } + d.Set("labels", lables) + + taints := make([]map[string]interface{}, len(nodePool.Taints)) + for i, v := range nodePool.Taints { + taint := map[string]interface{}{ + "key": *v.Key, + "value": *v.Value, + "effect": *v.Effect, + } + taints[i] = taint + } + d.Set("taints", taints) + + return nil +} + +func resourceKubernetesNodePoolCreate(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_kubernetes_node_pool.create")() + var ( + logId = getLogId(contextNil) + ctx = context.WithValue(context.TODO(), logIdKey, logId) + clusterId = d.Get("cluster_id").(string) + nodeConfig = d.Get("node_config").([]interface{}) + enableAutoScale = d.Get("enable_auto_scale").(bool) + configParas = d.Get("auto_scaling_config").([]interface{}) + name = d.Get("name").(string) + iAdvanced tke.InstanceAdvancedSettings + ) + if len(configParas) != 1 { + return fmt.Errorf("need only one auto_scaling_config") + } + + if len(nodeConfig) != 1 { + return fmt.Errorf("need only one node_config") + } + + groupParaStr, err := composeParameterToAsScalingGroupParaSerial(d) + if err != nil { + return err + } + + configParaStr, err := comosedKubernetesAsScalingConfigParaSerial(configParas[0].(map[string]interface{}), meta) + if err != nil { + return err + } + + labels := GetTkeLabels(d, "labels") + taints := GetTkeTaints(d, "taints") + + //compose InstanceAdvancedSettings + if workConfig, ok := d.GetOk("node_config"); ok { + workConfigList := workConfig.([]interface{}) + if len(workConfigList) == 1 { + workConfigPara := workConfigList[0].(map[string]interface{}) + setting := tkeGetInstanceAdvancedPara(workConfigPara, meta) + iAdvanced = setting + } + } + + if temp, ok := d.GetOk("extra_args"); ok { + extraArgs := helper.InterfacesStrings(temp.([]interface{})) + for _, extraArg := range extraArgs { + iAdvanced.ExtraArgs.Kubelet = append(iAdvanced.ExtraArgs.Kubelet, &extraArg) + } + } + + service := TkeService{client: meta.(*TencentCloudClient).apiV3Conn} + + nodePoolId, err := service.CreateClusterNodePool(ctx, clusterId, name, groupParaStr, configParaStr, enableAutoScale, labels, taints, iAdvanced) + if err != nil { + return err + } + + d.SetId(clusterId + FILED_SP + nodePoolId) + + // wait for status ok + err = resource.Retry(5*readRetryTimeout, func() *resource.RetryError { + nodePool, _, errRet := service.DescribeNodePool(ctx, clusterId, nodePoolId) + if errRet != nil { + return retryError(errRet, InternalError) + } + if nodePool != nil && *nodePool.LifeState == "normal" { + return nil + } + return resource.RetryableError(fmt.Errorf("node pool status is %s, retry...", *nodePool.LifeState)) + }) + if err != nil { + return err + } + + //modify os and image + err = resourceKubernetesNodePoolUpdate(d, meta) + if err != nil { + return err + } + + return nil +} + +func resourceKubernetesNodePoolUpdate(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_kubernetes_node_pool.update")() + + var ( + logId = getLogId(contextNil) + ctx = context.WithValue(context.TODO(), logIdKey, logId) + service = TkeService{client: meta.(*TencentCloudClient).apiV3Conn} + items = strings.Split(d.Id(), FILED_SP) + ) + if len(items) != 2 { + return fmt.Errorf("resource_tc_kubernetes_node_pool id is broken") + } + clusterId := items[0] + nodePoolId := items[1] + + d.Partial(true) + + if d.HasChange("min_size") || d.HasChange("max_size") || d.HasChange("name") || d.HasChange("labels") || d.HasChange("taints") || d.HasChange("enable_auto_scale") || d.HasChange("node_os_type") || d.HasChange("node_os") { + maxSize := int64(d.Get("max_size").(int)) + minSize := int64(d.Get("min_size").(int)) + enableAutoScale := d.Get("enable_auto_scale").(bool) + name := d.Get("name").(string) + nodeOs := d.Get("node_os").(string) + nodeOsType := d.Get("node_os_type").(string) + labels := GetTkeLabels(d, "labels") + taints := GetTkeTaints(d, "taints") + err := resource.Retry(writeRetryTimeout, func() *resource.RetryError { + errRet := service.ModifyClusterNodePool(ctx, clusterId, nodePoolId, name, enableAutoScale, minSize, maxSize, nodeOs, nodeOsType, labels, taints) + if errRet != nil { + return retryError(errRet) + } + return nil + }) + if err != nil { + return err + } + d.SetPartial("min_size") + d.SetPartial("max_size") + d.SetPartial("name") + d.SetPartial("enable_auto_scale") + d.SetPartial("node_os") + d.SetPartial("node_os_type") + d.SetPartial("labels") + d.SetPartial("taints") + } + + if d.HasChange("desired_capacity") { + desiredCapacity := int64(d.Get("desired_capacity").(int)) + err := resource.Retry(writeRetryTimeout, func() *resource.RetryError { + errRet := service.ModifyClusterNodePoolDesiredCapacity(ctx, clusterId, nodePoolId, desiredCapacity) + if errRet != nil { + return retryError(errRet) + } + return nil + }) + if err != nil { + return err + } + d.SetPartial("desired_capacity") + } + d.Partial(false) + + return resourceKubernetesNodePoolRead(d, meta) +} + +func resourceKubernetesNodePoolDelete(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_kubernetes_node_pool.delete")() + + var ( + logId = getLogId(contextNil) + ctx = context.WithValue(context.TODO(), logIdKey, logId) + service = TkeService{client: meta.(*TencentCloudClient).apiV3Conn} + items = strings.Split(d.Id(), FILED_SP) + deleteKeepInstance = d.Get("delete_keep_instance").(bool) + ) + if len(items) != 2 { + return fmt.Errorf("resource_tc_kubernetes_node_pool id is broken") + } + clusterId := items[0] + nodePoolId := items[1] + + //delete as group + hasDelete := false + err := resource.Retry(writeRetryTimeout, func() *resource.RetryError { + err := service.DeleteClusterNodePool(ctx, clusterId, nodePoolId, deleteKeepInstance) + + if sdkErr, ok := err.(*sdkErrors.TencentCloudSDKError); ok { + if sdkErr.Code == "InternalError.Param" && strings.Contains(sdkErr.Message, "Not Found") { + hasDelete = true + return nil + } + } + if err != nil { + return retryError(err, InternalError) + } + return nil + }) + + if err != nil { + return err + } + + if hasDelete { + return nil + } + + // wait for delete ok + err = resource.Retry(5*readRetryTimeout, func() *resource.RetryError { + nodePool, has, errRet := service.DescribeNodePool(ctx, clusterId, nodePoolId) + if errRet != nil { + return retryError(errRet, InternalError) + } + if has { + resource.RetryableError(fmt.Errorf("node pool %s still alive, status %s", nodePoolId, *nodePool.LifeState)) + } + return nil + }) + + return err +} diff --git a/tencentcloud/resource_tc_kubernetes_node_pool_test.go b/tencentcloud/resource_tc_kubernetes_node_pool_test.go new file mode 100644 index 0000000000..0707a2dd61 --- /dev/null +++ b/tencentcloud/resource_tc_kubernetes_node_pool_test.go @@ -0,0 +1,272 @@ +package tencentcloud + +import ( + "context" + "fmt" + "strings" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/terraform" +) + +var testTkeClusterNodePoolName = "tencentcloud_kubernetes_node_pool" +var testTkeClusterNodePoolResourceKey = testTkeClusterNodePoolName + ".np_test" + +func TestAccTencentCloudTkeNodePoolResource(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckTkeNodePoolDestroy, + Steps: []resource.TestStep{ + { + Config: testAccTkeNodePoolCluster, + Check: resource.ComposeTestCheckFunc( + testAccCheckTkeNodePoolExists, + resource.TestCheckResourceAttrSet(testTkeClusterNodePoolResourceKey, "cluster_id"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "node_config.#", "1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "auto_scaling_config.#", "1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "taints.#", "1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "labels.test1", "test1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "labels.test2", "test2"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "max_size", "6"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "min_size", "1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "desired_capacity", "1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "name", "mynodepool"), + ), + }, + { + Config: testAccTkeNodePoolClusterUpdate, + Check: resource.ComposeTestCheckFunc( + testAccCheckTkeNodePoolExists, + resource.TestCheckResourceAttrSet(testTkeClusterNodePoolResourceKey, "cluster_id"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "node_config.#", "1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "auto_scaling_config.#", "1"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "max_size", "5"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "min_size", "2"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "labels.test3", "test3"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "desired_capacity", "2"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "name", "mynodepoolupdate"), + resource.TestCheckResourceAttr(testTkeClusterNodePoolResourceKey, "node_os", "ubuntu18.04.1x86_64"), + ), + }, + }, + }) +} + +func testAccCheckTkeNodePoolDestroy(s *terraform.State) error { + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + + service := TkeService{ + client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn, + } + + rs, ok := s.RootModule().Resources[testTkeClusterNodePoolResourceKey] + if !ok { + return fmt.Errorf("tke node pool %s is not found", testTkeClusterNodePoolResourceKey) + } + if rs.Primary.ID == "" { + return fmt.Errorf("tke node pool id is not set") + } + items := strings.Split(rs.Primary.ID, FILED_SP) + if len(items) != 2 { + return fmt.Errorf("resource_tc_kubernetes_node_pool id %s is broken", rs.Primary.ID) + } + clusterId := items[0] + nodePoolId := items[1] + + _, has, err := service.DescribeNodePool(ctx, clusterId, nodePoolId) + if err != nil { + return err + } + if !has { + return nil + } else { + return fmt.Errorf("tke node pool %s still exist", nodePoolId) + } + +} + +func testAccCheckTkeNodePoolExists(s *terraform.State) error { + + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + + service := TkeService{ + client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn, + } + + rs, ok := s.RootModule().Resources[testTkeClusterNodePoolResourceKey] + if !ok { + return fmt.Errorf("tke node pool %s is not found", testTkeClusterNodePoolResourceKey) + } + if rs.Primary.ID == "" { + return fmt.Errorf("tke node pool id is not set") + } + + items := strings.Split(rs.Primary.ID, FILED_SP) + if len(items) != 2 { + return fmt.Errorf("resource_tc_kubernetes_node_pool id %s is broken", rs.Primary.ID) + } + clusterId := items[0] + nodePoolId := items[1] + + _, has, err := service.DescribeNodePool(ctx, clusterId, nodePoolId) + if err != nil { + return err + } + if has { + return nil + } else { + return fmt.Errorf("tke node pool %s query fail.", nodePoolId) + } + +} + +const testAccTkeNodePoolClusterBasic = ` +variable "availability_zone" { + default = "ap-guangzhou-3" +} + +variable "cluster_cidr" { + default = "172.31.0.0/16" +} + +data "tencentcloud_vpc_subnets" "vpc" { + is_default = true + availability_zone = var.availability_zone +} + +variable "default_instance_type" { + default = "S1.SMALL1" +} + +resource "tencentcloud_kubernetes_cluster" "managed_cluster" { + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + cluster_cidr = var.cluster_cidr + cluster_max_pod_num = 32 + cluster_name = "tf-tke-unit-test" + cluster_desc = "test cluster desc" + cluster_max_service_num = 32 + cluster_version = "1.18.4" + + worker_config { + count = 1 + availability_zone = var.availability_zone + instance_type = var.default_instance_type + system_disk_type = "CLOUD_SSD" + system_disk_size = 60 + internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" + internet_max_bandwidth_out = 100 + public_ip_assigned = true + subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id + + data_disk { + disk_type = "CLOUD_PREMIUM" + disk_size = 50 + } + + enhanced_security_service = false + enhanced_monitor_service = false + user_data = "dGVzdA==" + password = "ZZXXccvv1212" + } + + cluster_deploy_type = "MANAGED_CLUSTER" +}` + +const testAccTkeNodePoolCluster string = testAccTkeNodePoolClusterBasic + ` +resource "tencentcloud_kubernetes_node_pool" "np_test" { + name = "mynodepool" + cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id + max_size = 6 + min_size = 1 + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + retry_policy = "INCREMENTAL_INTERVALS" + desired_capacity = 1 + enable_auto_scale = true + + auto_scaling_config { + instance_type = var.default_instance_type + system_disk_type = "CLOUD_PREMIUM" + system_disk_size = "50" + security_group_ids = ["sg-24vswocp"] + + data_disk { + disk_type = "CLOUD_PREMIUM" + disk_size = 50 + } + + internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" + password = "test123#" + enhanced_security_service = false + enhanced_monitor_service = false + + } + + labels = { + "test1" = "test1", + "test2" = "test2", + } + + taints { + key = "test_taint" + value = "taint_value" + effect = "PreferNoSchedule" + } + + node_config { + extra_args = [ + "root-dir=/var/lib/kubelet" + ] + } +} + +` + +const testAccTkeNodePoolClusterUpdate string = testAccTkeNodePoolClusterBasic + ` +resource "tencentcloud_kubernetes_node_pool" "np_test" { + name = "mynodepoolupdate" + cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id + max_size = 5 + min_size = 2 + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + retry_policy = "INCREMENTAL_INTERVALS" + desired_capacity = 2 + enable_auto_scale = false + node_os = "ubuntu18.04.1x86_64" + delete_keep_instance = true + + auto_scaling_config { + instance_type = var.default_instance_type + system_disk_type = "CLOUD_PREMIUM" + system_disk_size = "50" + security_group_ids = ["sg-24vswocp"] + + data_disk { + disk_type = "CLOUD_PREMIUM" + disk_size = 50 + } + + internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" + password = "test123#" + enhanced_security_service = false + enhanced_monitor_service = false + + } + + labels = { + "test3" = "test3", + "test2" = "test2", + } + + node_config { + extra_args = [ + "root-dir=/var/lib/kubelet" + ] + } +} +` diff --git a/tencentcloud/service_tencentcloud_tke.go b/tencentcloud/service_tencentcloud_tke.go index ec57dca637..ef5d687741 100644 --- a/tencentcloud/service_tencentcloud_tke.go +++ b/tencentcloud/service_tencentcloud_tke.go @@ -861,6 +861,17 @@ func GetTkeLabels(d *schema.ResourceData, k string) []*tke.Label { return labels } +func GetTkeTaints(d *schema.ResourceData, k string) []*tke.Taint { + taints := make([]*tke.Taint, 0) + if raw, ok := d.GetOk(k); ok { + for _, v := range raw.([]interface{}) { + vv := v.(map[string]interface{}) + taints = append(taints, &tke.Taint{Key: helper.String(vv["key"].(string)), Value: helper.String(vv["value"].(string)), Effect: helper.String(vv["effect"].(string))}) + } + } + return taints +} + func (me *TkeService) ModifyClusterAsGroupAttribute(ctx context.Context, id, asGroupId string, maxSize, minSize int64) (errRet error) { logId := getLogId(ctx) @@ -887,3 +898,168 @@ func (me *TkeService) ModifyClusterAsGroupAttribute(ctx context.Context, id, asG } return } + +func (me *TkeService) CreateClusterNodePool(ctx context.Context, clusterId, name, groupPara, configPara string, enableAutoScale bool, labels []*tke.Label, taints []*tke.Taint, iAdvanced tke.InstanceAdvancedSettings) (asGroupId string, errRet error) { + logId := getLogId(ctx) + request := tke.NewCreateClusterNodePoolRequest() + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, reason[%s]\n", logId, request.GetAction(), errRet.Error()) + } + }() + request.ClusterId = &clusterId + request.Name = &name + request.AutoScalingGroupPara = &groupPara + request.LaunchConfigurePara = &configPara + request.InstanceAdvancedSettings = &iAdvanced + request.EnableAutoscale = &enableAutoScale + + if len(labels) > 0 { + request.Labels = labels + } + + if len(taints) > 0 { + request.Taints = taints + } + + ratelimit.Check(request.GetAction()) + response, err := me.client.UseTkeClient().CreateClusterNodePool(request) + if err != nil { + errRet = err + return + } + + if response == nil || response.Response == nil || response.Response.NodePoolId == nil { + errRet = fmt.Errorf("CreateClusterNodePool return nil response") + return + } + + asGroupId = *response.Response.NodePoolId + return +} + +func (me *TkeService) ModifyClusterNodePool(ctx context.Context, clusterId, nodePoolId string, name string, enableAutoScale bool, minSize int64, maxSize int64, nodeOs string, nodeOsType string, labels []*tke.Label, taints []*tke.Taint) (errRet error) { + logId := getLogId(ctx) + request := tke.NewModifyClusterNodePoolRequest() + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, reason[%s]\n", logId, request.GetAction(), errRet.Error()) + } + }() + request.ClusterId = &clusterId + request.NodePoolId = &nodePoolId + request.Taints = taints + request.Labels = labels + request.EnableAutoscale = &enableAutoScale + request.MaxNodesNum = &maxSize + request.MinNodesNum = &minSize + request.Name = &name + request.OsName = &nodeOs + request.OsCustomizeType = &nodeOsType + + if len(labels) > 0 { + request.Labels = labels + } + + ratelimit.Check(request.GetAction()) + _, err := me.client.UseTkeClient().ModifyClusterNodePool(request) + if err != nil { + errRet = err + return + } + return +} + +func (me *TkeService) ModifyClusterNodePoolDesiredCapacity(ctx context.Context, clusterId, nodePoolId string, desiredCapacity int64) (errRet error) { + logId := getLogId(ctx) + request := tke.NewModifyNodePoolDesiredCapacityAboutAsgRequest() + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, reason[%s]\n", logId, request.GetAction(), errRet.Error()) + } + }() + request.ClusterId = &clusterId + request.NodePoolId = &nodePoolId + request.DesiredCapacity = &desiredCapacity + + ratelimit.Check(request.GetAction()) + _, err := me.client.UseTkeClient().ModifyNodePoolDesiredCapacityAboutAsg(request) + if err != nil { + errRet = err + return + } + return +} + +func (me *TkeService) DeleteClusterNodePool(ctx context.Context, id, nodePoolId string, deleteKeepInstance bool) (errRet error) { + + logId := getLogId(ctx) + request := tke.NewDeleteClusterNodePoolRequest() + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, reason[%s]\n", logId, request.GetAction(), errRet.Error()) + } + }() + request.ClusterId = &id + request.NodePoolIds = []*string{&nodePoolId} + request.KeepInstance = &deleteKeepInstance + + ratelimit.Check(request.GetAction()) + _, err := me.client.UseTkeClient().DeleteClusterNodePool(request) + if err != nil { + errRet = err + } + return +} + +func (me *TkeService) DescribeNodePool(ctx context.Context, clusterId string, nodePoolId string) ( + nodePool *tke.NodePool, + has bool, + errRet error, +) { + + logId := getLogId(ctx) + //the error code of cluster not exist is InternalError + //check cluster exist first + _, clusterHas, err := me.DescribeCluster(ctx, clusterId) + if err != nil { + errRet = err + return + } + if !clusterHas { + return + } + + request := tke.NewDescribeClusterNodePoolDetailRequest() + + 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()) + } + }() + + request.ClusterId = helper.String(clusterId) + request.NodePoolId = helper.String(nodePoolId) + + ratelimit.Check(request.GetAction()) + response, err := me.client.UseTkeClient().DescribeClusterNodePoolDetail(request) + + if err != nil { + errRet = err + return + } + + if response.Response.NodePool == nil { + return + } + + has = true + nodePool = response.Response.NodePool + + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway/v20180808/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway/v20180808/models.go index 16725136b1..26aa7c055e 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway/v20180808/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway/v20180808/models.go @@ -603,6 +603,9 @@ type BindSubDomainRequest struct { // 自定义域名路径映射,最多输入三个Environment,并且只能分别取值“test”、 ”prepub“、”release“。 PathMappingSet []*PathMapping `json:"PathMappingSet,omitempty" name:"PathMappingSet" list` + + // 是否将HTTP请求强制跳转 HTTPS,默认为false。参数为 true时,API网关会将所有使用该自定义域名的 HTTP 协议的请求重定向至 HTTPS 协议进行转发。 + IsForcedHttps *bool `json:"IsForcedHttps,omitempty" name:"IsForcedHttps"` } func (r *BindSubDomainRequest) ToJsonString() string { @@ -618,6 +621,10 @@ type BindSubDomainResponse struct { *tchttp.BaseResponse Response *struct { + // 绑定操作是否成功。 + // 注意:此字段可能返回 null,表示取不到有效值。 + Result *bool `json:"Result,omitempty" name:"Result"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` @@ -3326,6 +3333,9 @@ type ModifySubDomainRequest struct { // 网络类型 ('INNER' 或 'OUTER') NetType *string `json:"NetType,omitempty" name:"NetType"` + + // 是否将HTTP请求强制跳转 HTTPS,默认为false。参数为 true时,API网关会将所有使用该自定义域名的 HTTP 协议的请求重定向至 HTTPS 协议进行转发。 + IsForcedHttps *bool `json:"IsForcedHttps,omitempty" name:"IsForcedHttps"` } func (r *ModifySubDomainRequest) ToJsonString() string { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go index a08f987485..acaa045c23 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go @@ -561,6 +561,31 @@ func (c *Client) GetSnapOverview(request *GetSnapOverviewRequest) (response *Get return } +func NewInquirePriceModifyDiskExtraPerformanceRequest() (request *InquirePriceModifyDiskExtraPerformanceRequest) { + request = &InquirePriceModifyDiskExtraPerformanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("cbs", APIVersion, "InquirePriceModifyDiskExtraPerformance") + return +} + +func NewInquirePriceModifyDiskExtraPerformanceResponse() (response *InquirePriceModifyDiskExtraPerformanceResponse) { + response = &InquirePriceModifyDiskExtraPerformanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(InquirePriceModifyDiskExtraPerformance)用于调整云硬盘额外性能询价。 +func (c *Client) InquirePriceModifyDiskExtraPerformance(request *InquirePriceModifyDiskExtraPerformanceRequest) (response *InquirePriceModifyDiskExtraPerformanceResponse, err error) { + if request == nil { + request = NewInquirePriceModifyDiskExtraPerformanceRequest() + } + response = NewInquirePriceModifyDiskExtraPerformanceResponse() + err = c.Send(request, response) + return +} + func NewInquiryPriceCreateDisksRequest() (request *InquiryPriceCreateDisksRequest) { request = &InquiryPriceCreateDisksRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -699,6 +724,33 @@ func (c *Client) ModifyDiskAttributes(request *ModifyDiskAttributesRequest) (res return } +func NewModifyDiskExtraPerformanceRequest() (request *ModifyDiskExtraPerformanceRequest) { + request = &ModifyDiskExtraPerformanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("cbs", APIVersion, "ModifyDiskExtraPerformance") + return +} + +func NewModifyDiskExtraPerformanceResponse() (response *ModifyDiskExtraPerformanceResponse) { + response = &ModifyDiskExtraPerformanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyDiskExtraPerformance)用于调整云硬盘额外的性能。 +// +// * 目前仅支持极速型SSD云硬盘(CLOUD_TSSD)和高性能SSD云硬盘(CLOUD_HSSD)。 +func (c *Client) ModifyDiskExtraPerformance(request *ModifyDiskExtraPerformanceRequest) (response *ModifyDiskExtraPerformanceResponse, err error) { + if request == nil { + request = NewModifyDiskExtraPerformanceRequest() + } + response = NewModifyDiskExtraPerformanceResponse() + err = c.Send(request, response) + return +} + func NewModifyDisksChargeTypeRequest() (request *ModifyDisksChargeTypeRequest) { request = &ModifyDisksChargeTypeRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go index 1919ec8366..145f2ef9e4 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go @@ -237,7 +237,7 @@ func (r *CreateAutoSnapshotPolicyResponse) FromJsonString(s string) error { type CreateDisksRequest struct { *tchttp.BaseRequest - // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘。 + // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。 DiskType *string `json:"DiskType,omitempty" name:"DiskType"` // 云硬盘计费类型。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
  • CDCPAID:独享集群付费
    各类型价格请参考云硬盘[价格总览](/document/product/362/2413)。 @@ -272,6 +272,9 @@ type CreateDisksRequest struct { // 可选参数,默认为False。传入True时,云盘将创建为共享型云盘。 Shareable *bool `json:"Shareable,omitempty" name:"Shareable"` + + // 可选参数。使用此参数可给云硬盘购买额外的性能。
    当前仅支持极速型云盘(CLOUD_TSSD)和增强型SSD云硬盘(CLOUD_HSSD) + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` } func (r *CreateDisksRequest) ToJsonString() string { @@ -1131,10 +1134,50 @@ type Image struct { ImageName *string `json:"ImageName,omitempty" name:"ImageName"` } +type InquirePriceModifyDiskExtraPerformanceRequest struct { + *tchttp.BaseRequest + + // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + + // 额外购买的云硬盘性能值,单位MB/s。 + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` +} + +func (r *InquirePriceModifyDiskExtraPerformanceRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *InquirePriceModifyDiskExtraPerformanceRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type InquirePriceModifyDiskExtraPerformanceResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 描述了调整云盘额外性能时对应的价格。 + DiskPrice *Price `json:"DiskPrice,omitempty" name:"DiskPrice"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *InquirePriceModifyDiskExtraPerformanceResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *InquirePriceModifyDiskExtraPerformanceResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type InquiryPriceCreateDisksRequest struct { *tchttp.BaseRequest - // 云硬盘类型。取值范围:
  • 普通云硬盘:CLOUD_BASIC
  • 高性能云硬盘:CLOUD_PREMIUM
  • SSD云硬盘:CLOUD_SSD。 + // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。 DiskType *string `json:"DiskType,omitempty" name:"DiskType"` // 云硬盘大小,单位为GB。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 @@ -1151,6 +1194,9 @@ type InquiryPriceCreateDisksRequest struct { // 云盘所属项目ID。 ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 额外购买的云硬盘性能值,单位MB/s。
    目前仅支持增强型SSD云硬盘(CLOUD_HSSD)和极速型SSD云硬盘(CLOUD_TSSD) + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` } func (r *InquiryPriceCreateDisksRequest) ToJsonString() string { @@ -1370,6 +1416,43 @@ func (r *ModifyDiskAttributesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ModifyDiskExtraPerformanceRequest struct { + *tchttp.BaseRequest + + // 需要创建快照的云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + + // 额外购买的云硬盘性能值,单位MB/s。 + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` +} + +func (r *ModifyDiskExtraPerformanceRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyDiskExtraPerformanceRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyDiskExtraPerformanceResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ModifyDiskExtraPerformanceResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyDiskExtraPerformanceResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type ModifyDisksChargeTypeRequest struct { *tchttp.BaseRequest @@ -1587,6 +1670,22 @@ type Price struct { // 后付费云盘折扣单价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 UnitPriceDiscount *float64 `json:"UnitPriceDiscount,omitempty" name:"UnitPriceDiscount"` + + // 高精度预付费云盘预支费用的原价, 单位:元 。 + // 注意:此字段可能返回 null,表示取不到有效值。 + OriginalPriceHigh *string `json:"OriginalPriceHigh,omitempty" name:"OriginalPriceHigh"` + + // 高精度预付费云盘预支费用的折扣价, 单位:元 + // 注意:此字段可能返回 null,表示取不到有效值。 + DiscountPriceHigh *string `json:"DiscountPriceHigh,omitempty" name:"DiscountPriceHigh"` + + // 高精度后付费云盘原单价, 单位:元 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnitPriceHigh *string `json:"UnitPriceHigh,omitempty" name:"UnitPriceHigh"` + + // 高精度后付费云盘折扣单价, 单位:元 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnitPriceDiscountHigh *string `json:"UnitPriceDiscountHigh,omitempty" name:"UnitPriceDiscountHigh"` } type RenewDiskRequest struct { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320/models.go index cac6b2d9da..937633604a 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320/models.go @@ -2837,7 +2837,7 @@ type DescribeDBPriceRequest struct { // 数据复制方式,默认为 0,支持值包括:0 - 表示异步复制,1 - 表示半同步复制,2 - 表示强同步复制。 ProtectMode *int64 `json:"ProtectMode,omitempty" name:"ProtectMode"` - // 部署策略,取值范围:HA-高可用版两节点,FE-金融版三节点;默认值根据数据复制方式决定,数据复制方式为强同步复制时默认值为FE,数据复制方式非强同步时默认值为HA。 + // 部署策略,取值范围:HA-高可用版 DeviceType *string `json:"DeviceType,omitempty" name:"DeviceType"` } @@ -4376,7 +4376,7 @@ type InquiryPriceUpgradeInstancesRequest struct { // 数据复制方式,支持值包括:0 - 异步复制,1 - 半同步复制,2 - 强同步复制,升级主实例时可指定该参数,升级只读实例或者灾备实例时指定该参数无意义。 ProtectMode *uint64 `json:"ProtectMode,omitempty" name:"ProtectMode"` - // 部署策略,取值范围:HA-高可用版两节点,FE-金融版三节点;默认值根据数据复制方式决定,数据复制方式为强同步复制时默认值为FE,数据复制方式非强同步时默认值为HA。 + // 部署策略,取值范围:HA-高可用版 DeviceType *string `json:"DeviceType,omitempty" name:"DeviceType"` } @@ -4482,7 +4482,7 @@ type InstanceInfo struct { // 注意:此字段可能返回 null,表示取不到有效值。 MasterInfo *MasterInfo `json:"MasterInfo,omitempty" name:"MasterInfo"` - // 实例类型,可能的返回值:“HA”-高可用版;“FE”-金融版;“BASIC”-基础版 + // 实例类型 DeviceType *string `json:"DeviceType,omitempty" name:"DeviceType"` // 内核版本 diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/client.go index b27be4545e..086157eef4 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/client.go @@ -818,6 +818,31 @@ func (c *Client) DescribeReportData(request *DescribeReportDataRequest) (respons return } +func NewDescribeScdnConfigRequest() (request *DescribeScdnConfigRequest) { + request = &DescribeScdnConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("cdn", APIVersion, "DescribeScdnConfig") + return +} + +func NewDescribeScdnConfigResponse() (response *DescribeScdnConfigResponse) { + response = &DescribeScdnConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// DescribeScdnConfig 用于查询指定 SCDN 加速域名的安全相关配置 +func (c *Client) DescribeScdnConfig(request *DescribeScdnConfigRequest) (response *DescribeScdnConfigResponse, err error) { + if request == nil { + request = NewDescribeScdnConfigRequest() + } + response = NewDescribeScdnConfigResponse() + err = c.Send(request, response) + return +} + func NewDescribeScdnTopDataRequest() (request *DescribeScdnTopDataRequest) { request = &DescribeScdnTopDataRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1119,6 +1144,31 @@ func (c *Client) ListDiagnoseReport(request *ListDiagnoseReportRequest) (respons return } +func NewListScdnDomainsRequest() (request *ListScdnDomainsRequest) { + request = &ListScdnDomainsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("cdn", APIVersion, "ListScdnDomains") + return +} + +func NewListScdnDomainsResponse() (response *ListScdnDomainsResponse) { + response = &ListScdnDomainsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// ListScdnDomains 用于查询 SCDN 安全加速域名列表,及域名基本配置信息 +func (c *Client) ListScdnDomains(request *ListScdnDomainsRequest) (response *ListScdnDomainsResponse, err error) { + if request == nil { + request = NewListScdnDomainsRequest() + } + response = NewListScdnDomainsResponse() + err = c.Send(request, response) + return +} + func NewListScdnLogTasksRequest() (request *ListScdnLogTasksRequest) { request = &ListScdnLogTasksRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1330,6 +1380,31 @@ func (c *Client) StartCdnDomain(request *StartCdnDomainRequest) (response *Start return } +func NewStartScdnDomainRequest() (request *StartScdnDomainRequest) { + request = &StartScdnDomainRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("cdn", APIVersion, "StartScdnDomain") + return +} + +func NewStartScdnDomainResponse() (response *StartScdnDomainResponse) { + response = &StartScdnDomainResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// StartScdnDomain 用于开启域名的安全防护配置 +func (c *Client) StartScdnDomain(request *StartScdnDomainRequest) (response *StartScdnDomainResponse, err error) { + if request == nil { + request = NewStartScdnDomainRequest() + } + response = NewStartScdnDomainResponse() + err = c.Send(request, response) + return +} + func NewStopCdnDomainRequest() (request *StopCdnDomainRequest) { request = &StopCdnDomainRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1356,6 +1431,31 @@ func (c *Client) StopCdnDomain(request *StopCdnDomainRequest) (response *StopCdn return } +func NewStopScdnDomainRequest() (request *StopScdnDomainRequest) { + request = &StopScdnDomainRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("cdn", APIVersion, "StopScdnDomain") + return +} + +func NewStopScdnDomainResponse() (response *StopScdnDomainResponse) { + response = &StopScdnDomainResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// StopScdnDomain 用于关闭域名的安全防护配置 +func (c *Client) StopScdnDomain(request *StopScdnDomainRequest) (response *StopScdnDomainResponse, err error) { + if request == nil { + request = NewStopScdnDomainRequest() + } + response = NewStopScdnDomainResponse() + err = c.Send(request, response) + return +} + func NewUpdateDomainConfigRequest() (request *UpdateDomainConfigRequest) { request = &UpdateDomainConfigRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/models.go index aafc6cd6d3..464fe0c7d9 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606/models.go @@ -158,6 +158,9 @@ type AddCdnDomainRequest struct { // 标签配置 Tag []*Tag `json:"Tag,omitempty" name:"Tag" list` + + // Ipv6 访问配置 + Ipv6Access *Ipv6Access `json:"Ipv6Access,omitempty" name:"Ipv6Access"` } func (r *AddCdnDomainRequest) ToJsonString() string { @@ -213,6 +216,19 @@ type AdvanceCacheRule struct { CacheTime *int64 `json:"CacheTime,omitempty" name:"CacheTime"` } +type AdvanceConfig struct { + + // 高级配置名称。 + // 注意:此字段可能返回 null,表示取不到有效值。 + Name *string `json:"Name,omitempty" name:"Name"` + + // 是否支持高级配置, + // on:支持 + // off:不支持 + // 注意:此字段可能返回 null,表示取不到有效值。 + Value *string `json:"Value,omitempty" name:"Value"` +} + type AdvancedAuthentication struct { // 防盗链配置开关,on或off,开启时必须且只能配置一种模式,其余模式为null。 @@ -1214,6 +1230,12 @@ type CreateScdnLogTaskRequest struct { // 指定域名查询, 与 Domain 参数同时有值时使用 Domains 参数,不填默认查询全部域名,指定域名查询时最多支持同时选择 5 个域名查询 Domains []*string `json:"Domains,omitempty" name:"Domains" list` + + // 指定攻击类型查询, 与 AttackType 参数同时有值时使用 AttackTypes 参数,不填默认查询全部攻击类型 + AttackTypes []*string `json:"AttackTypes,omitempty" name:"AttackTypes" list` + + // 查询条件 + Conditions []*ScdnEventLogConditions `json:"Conditions,omitempty" name:"Conditions" list` } func (r *CreateScdnLogTaskRequest) ToJsonString() string { @@ -2645,6 +2667,59 @@ func (r *DescribeReportDataResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type DescribeScdnConfigRequest struct { + *tchttp.BaseRequest + + // 域名 + Domain *string `json:"Domain,omitempty" name:"Domain"` +} + +func (r *DescribeScdnConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeScdnConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeScdnConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 自定义防护策略配置 + Acl *ScdnAclConfig `json:"Acl,omitempty" name:"Acl"` + + // Web 攻击防护(WAF)配置 + Waf *ScdnWafConfig `json:"Waf,omitempty" name:"Waf"` + + // CC 防护配置 + CC *ScdnConfig `json:"CC,omitempty" name:"CC"` + + // DDOS 防护配置 + Ddos *ScdnDdosConfig `json:"Ddos,omitempty" name:"Ddos"` + + // BOT 防护配置 + Bot *ScdnBotConfig `json:"Bot,omitempty" name:"Bot"` + + // 当前状态,取值online | offline + // 注意:此字段可能返回 null,表示取不到有效值。 + Status *string `json:"Status,omitempty" name:"Status"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeScdnConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeScdnConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DescribeScdnTopDataRequest struct { *tchttp.BaseRequest @@ -3053,6 +3128,14 @@ type DetailDomain struct { // 回源鉴权高级配置,白名单功能 // 注意:此字段可能返回 null,表示取不到有效值。 OriginAuthentication *OriginAuthentication `json:"OriginAuthentication,omitempty" name:"OriginAuthentication"` + + // Ipv6访问配置 + // 注意:此字段可能返回 null,表示取不到有效值。 + Ipv6Access *Ipv6Access `json:"Ipv6Access,omitempty" name:"Ipv6Access"` + + // 高级配置集合。 + // 注意:此字段可能返回 null,表示取不到有效值。 + AdvanceSet []*AdvanceConfig `json:"AdvanceSet,omitempty" name:"AdvanceSet" list` } type DiagnoseData struct { @@ -3499,6 +3582,10 @@ type ForceRedirect struct { // 支持 301、302 // 注意:此字段可能返回 null,表示取不到有效值。 RedirectStatusCode *int64 `json:"RedirectStatusCode,omitempty" name:"RedirectStatusCode"` + + // 强制跳转时是否返回增加的头部。 + // 注意:此字段可能返回 null,表示取不到有效值。 + CarryHeaders *string `json:"CarryHeaders,omitempty" name:"CarryHeaders"` } type GetDisableRecordsRequest struct { @@ -3810,6 +3897,13 @@ type Ipv6 struct { Switch *string `json:"Switch,omitempty" name:"Switch"` } +type Ipv6Access struct { + + // 域名是否开启ipv6访问功能,on或off。 + // 注意:此字段可能返回 null,表示取不到有效值。 + Switch *string `json:"Switch,omitempty" name:"Switch"` +} + type KeyRule struct { // CacheType 对应类型下的匹配内容: @@ -3990,6 +4084,54 @@ func (r *ListDiagnoseReportResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ListScdnDomainsRequest struct { + *tchttp.BaseRequest + + // 分页起始地址 + Offset *int64 `json:"Offset,omitempty" name:"Offset"` + + // 列表分页记录条数,最大1000 + Limit *int64 `json:"Limit,omitempty" name:"Limit"` + + // 域名信息 + Domain *string `json:"Domain,omitempty" name:"Domain"` +} + +func (r *ListScdnDomainsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ListScdnDomainsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ListScdnDomainsResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 域名列表信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + DomainList []*ScdnDomain `json:"DomainList,omitempty" name:"DomainList" list` + + // 域名的总条数。 + // 注意:此字段可能返回 null,表示取不到有效值。 + TotalCount *int64 `json:"TotalCount,omitempty" name:"TotalCount"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ListScdnDomainsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ListScdnDomainsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type ListScdnLogTasksRequest struct { *tchttp.BaseRequest } @@ -4402,7 +4544,7 @@ type Origin struct { // 注意:此字段可能返回 null,表示取不到有效值。 BasePath *string `json:"BasePath,omitempty" name:"BasePath"` - // 分路径回源配置规则 + // 回源路径重写规则配置 // 注意:此字段可能返回 null,表示取不到有效值。 PathRules []*PathRule `json:"PathRules,omitempty" name:"PathRules" list` } @@ -4761,6 +4903,13 @@ type PushUrlsCacheRequest struct { // 填写"middle"或不填充时预热至中间层节点 Layer *string `json:"Layer,omitempty" name:"Layer"` + + // 是否递归解析m3u8文件中的ts分片预热 + // 注意事项: + // 1. 该功能要求m3u8索引文件能直接请求获取 + // 2. 当前只支持递归解析一级索引和子索引中的ts分片,递归深度不超过3层 + // 3. 解析获取的ts分片会正常累加每日预热用量,当用量超出配额时,会静默处理,不再执行预热 + ParseM3U8 *bool `json:"ParseM3U8,omitempty" name:"ParseM3U8"` } func (r *PushUrlsCacheRequest) ToJsonString() string { @@ -5158,6 +5307,36 @@ type ScdnDdosConfig struct { Switch *string `json:"Switch,omitempty" name:"Switch"` } +type ScdnDomain struct { + + // 域名 + Domain *string `json:"Domain,omitempty" name:"Domain"` + + // 当前状态,取值online | offline | process + Status *string `json:"Status,omitempty" name:"Status"` + + // Waf 状态默认为‘/’,取值 close | intercept | observe + Waf *string `json:"Waf,omitempty" name:"Waf"` + + // Acl 状态默认为‘/’,取值 close | open + Acl *string `json:"Acl,omitempty" name:"Acl"` + + // CC 状态默认为‘/’,取值 close | open + CC *string `json:"CC,omitempty" name:"CC"` + + // Ddos 状态默认为‘/’,取值 close | open + Ddos *string `json:"Ddos,omitempty" name:"Ddos"` + + // 项目ID + ProjectId *string `json:"ProjectId,omitempty" name:"ProjectId"` + + // Acl 规则数 + AclRuleNumbers *uint64 `json:"AclRuleNumbers,omitempty" name:"AclRuleNumbers"` + + // Bot 状态默认为‘/’,取值 close | open + Bot *string `json:"Bot,omitempty" name:"Bot"` +} + type ScdnErrorPage struct { // 状态码 @@ -5167,6 +5346,18 @@ type ScdnErrorPage struct { RedirectUrl *string `json:"RedirectUrl,omitempty" name:"RedirectUrl"` } +type ScdnEventLogConditions struct { + + // 匹配关键字,ip, attack_location + Key *string `json:"Key,omitempty" name:"Key"` + + // 逻辑操作符,取值 exclude, include + Operator *string `json:"Operator,omitempty" name:"Operator"` + + // 匹配值,允许使用通配符(*)查询,匹配零个、单个、多个字符,例如 1.2.* + Value *string `json:"Value,omitempty" name:"Value"` +} + type ScdnLogTaskDetail struct { // scdn域名 @@ -5227,6 +5418,10 @@ type ScdnLogTaskDetail struct { // observe = '观察模式' // intercept = '防御模式' DefenceMode *string `json:"DefenceMode,omitempty" name:"DefenceMode"` + + // 查询条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + Conditions []*ScdnEventLogConditions `json:"Conditions,omitempty" name:"Conditions" list` } type ScdnTopData struct { @@ -5257,6 +5452,10 @@ type ScdnTopUrlData struct { // 时间 Time *string `json:"Time,omitempty" name:"Time"` + + // 域名 + // 注意:此字段可能返回 null,表示取不到有效值。 + Domain *string `json:"Domain,omitempty" name:"Domain"` } type ScdnTypeData struct { @@ -5540,6 +5739,43 @@ func (r *StartCdnDomainResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type StartScdnDomainRequest struct { + *tchttp.BaseRequest + + // 域名 + Domain *string `json:"Domain,omitempty" name:"Domain"` +} + +func (r *StartScdnDomainRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *StartScdnDomainRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type StartScdnDomainResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 开启结果,Success表示成功 + Result *string `json:"Result,omitempty" name:"Result"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *StartScdnDomainResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *StartScdnDomainResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type StatusCodeCache struct { // 状态码缓存过期配置开关 @@ -5598,6 +5834,43 @@ func (r *StopCdnDomainResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type StopScdnDomainRequest struct { + *tchttp.BaseRequest + + // 域名 + Domain *string `json:"Domain,omitempty" name:"Domain"` +} + +func (r *StopScdnDomainRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *StopScdnDomainRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type StopScdnDomainResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 关闭结果,Success表示成功 + Result *string `json:"Result,omitempty" name:"Result"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *StopScdnDomainResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *StopScdnDomainResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type SummarizedData struct { // 汇总方式,存在以下几种: @@ -5832,6 +6105,9 @@ type UpdateDomainConfigRequest struct { // 回源鉴权高级版配置,白名单功能 OriginAuthentication *OriginAuthentication `json:"OriginAuthentication,omitempty" name:"OriginAuthentication"` + + // Ipv6 访问配置 + Ipv6Access *Ipv6Access `json:"Ipv6Access,omitempty" name:"Ipv6Access"` } func (r *UpdateDomainConfigRequest) ToJsonString() string { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go index 60d9c264e9..d78c05d4a2 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go @@ -194,7 +194,7 @@ func CompleteCommonParams(request Request, region string) { params["Action"] = request.GetAction() params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) params["Nonce"] = strconv.Itoa(rand.Int()) - params["RequestClient"] = "SDK_GO_1.0.67" + params["RequestClient"] = "SDK_GO_1.0.76" } func ConstructParams(req Request) (err error) { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go index 088267c06c..9652105c96 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go @@ -339,7 +339,7 @@ type DataDisk struct { // 数据盘大小,单位:GB。最小调整步长为10G,不同数据盘类型取值范围不同,具体限制详见:[存储概述](https://cloud.tencent.com/document/product/213/4952)。默认值为0,表示不购买数据盘。更多限制详见产品文档。 DiskSize *int64 `json:"DiskSize,omitempty" name:"DiskSize"` - // 数据盘类型。数据盘类型限制详见[存储概述](https://cloud.tencent.com/document/product/213/4952)。取值范围:
  • LOCAL_BASIC:本地硬盘
  • LOCAL_SSD:本地SSD硬盘
  • CLOUD_BASIC:普通云硬盘
  • CLOUD_PREMIUM:高性能云硬盘
  • CLOUD_SSD:SSD云硬盘
  • CLOUD_HSSD:增强型SSD云硬盘

    默认取值:LOCAL_BASIC。

    该参数对`ResizeInstanceDisk`接口无效。 + // 数据盘类型。数据盘类型限制详见[存储概述](https://cloud.tencent.com/document/product/213/4952)。取值范围:
  • LOCAL_BASIC:本地硬盘
  • LOCAL_SSD:本地SSD硬盘
  • LOCAL_NVME:本地NVME硬盘,与InstanceType强相关,不支持指定
  • LOCAL_PRO:本地HDD硬盘,与InstanceType强相关,不支持指定
  • CLOUD_BASIC:普通云硬盘
  • CLOUD_PREMIUM:高性能云硬盘
  • CLOUD_SSD:SSD云硬盘
  • CLOUD_HSSD:增强型SSD云硬盘

    默认取值:LOCAL_BASIC。

    该参数对`ResizeInstanceDisk`接口无效。 DiskType *string `json:"DiskType,omitempty" name:"DiskType"` // 数据盘ID。LOCAL_BASIC 和 LOCAL_SSD 类型没有ID,暂时不支持该参数。 diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb/v20190107/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb/v20190107/models.go index 7f867940d0..e6519920b6 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb/v20190107/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb/v20190107/models.go @@ -208,18 +208,15 @@ type CreateClustersRequest struct { //
  • MYSQL可选值:5.7
  • DbVersion *string `json:"DbVersion,omitempty" name:"DbVersion"` - // Cpu核数 + // 所属项目ID + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 普通实例Cpu核数 Cpu *int64 `json:"Cpu,omitempty" name:"Cpu"` - // 内存 + // 普通实例内存 Memory *int64 `json:"Memory,omitempty" name:"Memory"` - // 存储上限,单位GB - StorageLimit *int64 `json:"StorageLimit,omitempty" name:"StorageLimit"` - - // 所属项目ID - ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` - // 存储 Storage *int64 `json:"Storage,omitempty" name:"Storage"` @@ -256,6 +253,9 @@ type CreateClustersRequest struct { // 时间点回档,指定时间允许范围 ExpectTimeThresh *uint64 `json:"ExpectTimeThresh,omitempty" name:"ExpectTimeThresh"` + // 普通实例存储上限,单位GB + StorageLimit *int64 `json:"StorageLimit,omitempty" name:"StorageLimit"` + // 实例数量 InstanceCount *int64 `json:"InstanceCount,omitempty" name:"InstanceCount"` @@ -279,6 +279,30 @@ type CreateClustersRequest struct { // 集群创建需要绑定的tag数组信息 ResourceTags []*Tag `json:"ResourceTags,omitempty" name:"ResourceTags" list` + + // Db类型 + // 当DbType为MYSQL时可选(默认NORMAL): + //
  • NORMAL
  • + //
  • SERVERLESS
  • + DbMode *string `json:"DbMode,omitempty" name:"DbMode"` + + // 当DbMode为SEVERLESS时必填 + // cpu最小值,可选范围参考DescribeServerlessInstanceSpecs接口返回 + MinCpu *float64 `json:"MinCpu,omitempty" name:"MinCpu"` + + // 当DbMode为SEVERLESS时必填: + // cpu最大值,可选范围参考DescribeServerlessInstanceSpecs接口返回 + MaxCpu *float64 `json:"MaxCpu,omitempty" name:"MaxCpu"` + + // 当DbMode为SEVERLESS时,指定集群是否自动暂停,可选范围 + //
  • yes
  • + //
  • no
  • + // 默认值:yes + AutoPause *string `json:"AutoPause,omitempty" name:"AutoPause"` + + // 当DbMode为SEVERLESS时,指定集群自动暂停的延迟,单位秒,可选范围[600,691200] + // 默认值:600 + AutoPauseDelay *int64 `json:"AutoPauseDelay,omitempty" name:"AutoPauseDelay"` } func (r *CreateClustersRequest) ToJsonString() string { @@ -302,11 +326,11 @@ type CreateClustersResponse struct { // 注意:此字段可能返回 null,表示取不到有效值。 DealNames []*string `json:"DealNames,omitempty" name:"DealNames" list` - // 资源ID列表 + // 资源ID列表(异步发货可能无法返回该字段, 强烈建议使用dealNames字段查询接口DescribeResourcesByDealName获取异步发货的资源ID) // 注意:此字段可能返回 null,表示取不到有效值。 ResourceIds []*string `json:"ResourceIds,omitempty" name:"ResourceIds" list` - // 集群ID列表 + // 集群ID列表(异步发货可能不返回该字段, 强烈建议使用dealNames查询接口DescribeResourcesByDealName获取异步发货的集群ID) // 注意:此字段可能返回 null,表示取不到有效值。 ClusterIds []*string `json:"ClusterIds,omitempty" name:"ClusterIds" list` @@ -407,6 +431,14 @@ type CynosdbCluster struct { // 集群绑定的tag数组 ResourceTags []*Tag `json:"ResourceTags,omitempty" name:"ResourceTags" list` + + // Db类型(NORMAL, SERVERLESS) + DbMode *string `json:"DbMode,omitempty" name:"DbMode"` + + // 当Db类型为SERVERLESS时,serverless集群状态,可选值: + // resume + // pause + ServerlessStatus *string `json:"ServerlessStatus,omitempty" name:"ServerlessStatus"` } type CynosdbClusterDetail struct { @@ -593,6 +625,17 @@ type CynosdbInstance struct { // 续费标志 RenewFlag *int64 `json:"RenewFlag,omitempty" name:"RenewFlag"` + + // serverless实例cpu下限 + MinCpu *float64 `json:"MinCpu,omitempty" name:"MinCpu"` + + // serverless实例cpu上限 + MaxCpu *float64 `json:"MaxCpu,omitempty" name:"MaxCpu"` + + // serverless实例状态, 可选值: + // resume + // pause + ServerlessStatus *string `json:"ServerlessStatus,omitempty" name:"ServerlessStatus"` } type CynosdbInstanceDetail struct { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/client.go index 3145b652e1..78fe296544 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/client.go @@ -68,6 +68,31 @@ func (c *Client) AcceptDirectConnectTunnel(request *AcceptDirectConnectTunnelReq return } +func NewApplyInternetAddressRequest() (request *ApplyInternetAddressRequest) { + request = &ApplyInternetAddressRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("dc", APIVersion, "ApplyInternetAddress") + return +} + +func NewApplyInternetAddressResponse() (response *ApplyInternetAddressResponse) { + response = &ApplyInternetAddressResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 申请互联网CIDR地址 +func (c *Client) ApplyInternetAddress(request *ApplyInternetAddressRequest) (response *ApplyInternetAddressResponse, err error) { + if request == nil { + request = NewApplyInternetAddressRequest() + } + response = NewApplyInternetAddressResponse() + err = c.Send(request, response) + return +} + func NewCreateDirectConnectRequest() (request *CreateDirectConnectRequest) { request = &CreateDirectConnectRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -272,6 +297,81 @@ func (c *Client) DescribeDirectConnects(request *DescribeDirectConnectsRequest) return } +func NewDescribeInternetAddressRequest() (request *DescribeInternetAddressRequest) { + request = &DescribeInternetAddressRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("dc", APIVersion, "DescribeInternetAddress") + return +} + +func NewDescribeInternetAddressResponse() (response *DescribeInternetAddressResponse) { + response = &DescribeInternetAddressResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取用户互联网公网地址信息 +func (c *Client) DescribeInternetAddress(request *DescribeInternetAddressRequest) (response *DescribeInternetAddressResponse, err error) { + if request == nil { + request = NewDescribeInternetAddressRequest() + } + response = NewDescribeInternetAddressResponse() + err = c.Send(request, response) + return +} + +func NewDescribeInternetAddressQuotaRequest() (request *DescribeInternetAddressQuotaRequest) { + request = &DescribeInternetAddressQuotaRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("dc", APIVersion, "DescribeInternetAddressQuota") + return +} + +func NewDescribeInternetAddressQuotaResponse() (response *DescribeInternetAddressQuotaResponse) { + response = &DescribeInternetAddressQuotaResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取用户互联网公网地址配额 +func (c *Client) DescribeInternetAddressQuota(request *DescribeInternetAddressQuotaRequest) (response *DescribeInternetAddressQuotaResponse, err error) { + if request == nil { + request = NewDescribeInternetAddressQuotaRequest() + } + response = NewDescribeInternetAddressQuotaResponse() + err = c.Send(request, response) + return +} + +func NewDescribeInternetAddressStatisticsRequest() (request *DescribeInternetAddressStatisticsRequest) { + request = &DescribeInternetAddressStatisticsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("dc", APIVersion, "DescribeInternetAddressStatistics") + return +} + +func NewDescribeInternetAddressStatisticsResponse() (response *DescribeInternetAddressStatisticsResponse) { + response = &DescribeInternetAddressStatisticsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取用户互联网公网地址分配统计信息 +func (c *Client) DescribeInternetAddressStatistics(request *DescribeInternetAddressStatisticsRequest) (response *DescribeInternetAddressStatisticsResponse, err error) { + if request == nil { + request = NewDescribeInternetAddressStatisticsRequest() + } + response = NewDescribeInternetAddressStatisticsResponse() + err = c.Send(request, response) + return +} + func NewDescribePublicDirectConnectTunnelRoutesRequest() (request *DescribePublicDirectConnectTunnelRoutesRequest) { request = &DescribePublicDirectConnectTunnelRoutesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -297,6 +397,56 @@ func (c *Client) DescribePublicDirectConnectTunnelRoutes(request *DescribePublic return } +func NewDisableInternetAddressRequest() (request *DisableInternetAddressRequest) { + request = &DisableInternetAddressRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("dc", APIVersion, "DisableInternetAddress") + return +} + +func NewDisableInternetAddressResponse() (response *DisableInternetAddressResponse) { + response = &DisableInternetAddressResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 停用用户申请的公网互联网地址 +func (c *Client) DisableInternetAddress(request *DisableInternetAddressRequest) (response *DisableInternetAddressResponse, err error) { + if request == nil { + request = NewDisableInternetAddressRequest() + } + response = NewDisableInternetAddressResponse() + err = c.Send(request, response) + return +} + +func NewEnableInternetAddressRequest() (request *EnableInternetAddressRequest) { + request = &EnableInternetAddressRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("dc", APIVersion, "EnableInternetAddress") + return +} + +func NewEnableInternetAddressResponse() (response *EnableInternetAddressResponse) { + response = &EnableInternetAddressResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 启用已停用的互联网公网地址 +func (c *Client) EnableInternetAddress(request *EnableInternetAddressRequest) (response *EnableInternetAddressResponse, err error) { + if request == nil { + request = NewEnableInternetAddressRequest() + } + response = NewEnableInternetAddressResponse() + err = c.Send(request, response) + return +} + func NewModifyDirectConnectAttributeRequest() (request *ModifyDirectConnectAttributeRequest) { request = &ModifyDirectConnectAttributeRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -396,3 +546,28 @@ func (c *Client) RejectDirectConnectTunnel(request *RejectDirectConnectTunnelReq err = c.Send(request, response) return } + +func NewReleaseInternetAddressRequest() (request *ReleaseInternetAddressRequest) { + request = &ReleaseInternetAddressRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("dc", APIVersion, "ReleaseInternetAddress") + return +} + +func NewReleaseInternetAddressResponse() (response *ReleaseInternetAddressResponse) { + response = &ReleaseInternetAddressResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 释放已申请的互联网地址 +func (c *Client) ReleaseInternetAddress(request *ReleaseInternetAddressRequest) (response *ReleaseInternetAddressResponse, err error) { + if request == nil { + request = NewReleaseInternetAddressRequest() + } + response = NewReleaseInternetAddressResponse() + err = c.Send(request, response) + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/models.go index 9866b39df8..163d2400b5 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc/v20180410/models.go @@ -79,6 +79,54 @@ type AccessPoint struct { AvailablePortType []*string `json:"AvailablePortType,omitempty" name:"AvailablePortType" list` } +type ApplyInternetAddressRequest struct { + *tchttp.BaseRequest + + // CIDR地址掩码长度 + MaskLen *int64 `json:"MaskLen,omitempty" name:"MaskLen"` + + // 0:BGP类型地址 + // 1:中国电信 + // 2:中国移动 + // 3:中国联通 + AddrType *int64 `json:"AddrType,omitempty" name:"AddrType"` + + // 0:IPv4 + // 1:IPv6 + AddrProto *int64 `json:"AddrProto,omitempty" name:"AddrProto"` +} + +func (r *ApplyInternetAddressRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ApplyInternetAddressRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ApplyInternetAddressResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 互联网公网地址ID + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ApplyInternetAddressResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ApplyInternetAddressResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type BFDInfo struct { // 健康检查次数 @@ -248,6 +296,9 @@ type CreateDirectConnectTunnelRequest struct { // TencentBackupAddress,腾讯侧备用互联 IP TencentBackupAddress *string `json:"TencentBackupAddress,omitempty" name:"TencentBackupAddress"` + + // 高速上云服务ID + CloudAttachId *string `json:"CloudAttachId,omitempty" name:"CloudAttachId"` } func (r *CreateDirectConnectTunnelRequest) ToJsonString() string { @@ -539,6 +590,147 @@ func (r *DescribeDirectConnectsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type DescribeInternetAddressQuotaRequest struct { + *tchttp.BaseRequest +} + +func (r *DescribeInternetAddressQuotaRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeInternetAddressQuotaRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeInternetAddressQuotaResponse struct { + *tchttp.BaseResponse + Response *struct { + + // IPv6互联网公网允许的最小前缀长度 + // 注意:此字段可能返回 null,表示取不到有效值。 + Ipv6PrefixLen *int64 `json:"Ipv6PrefixLen,omitempty" name:"Ipv6PrefixLen"` + + // BGP类型IPv4互联网地址配额 + // 注意:此字段可能返回 null,表示取不到有效值。 + Ipv4BgpQuota *int64 `json:"Ipv4BgpQuota,omitempty" name:"Ipv4BgpQuota"` + + // 非BGP类型IPv4互联网地址配额 + // 注意:此字段可能返回 null,表示取不到有效值。 + Ipv4OtherQuota *int64 `json:"Ipv4OtherQuota,omitempty" name:"Ipv4OtherQuota"` + + // BGP类型IPv4互联网地址已使用数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + Ipv4BgpNum *int64 `json:"Ipv4BgpNum,omitempty" name:"Ipv4BgpNum"` + + // 非BGP类型互联网地址已使用数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + Ipv4OtherNum *int64 `json:"Ipv4OtherNum,omitempty" name:"Ipv4OtherNum"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeInternetAddressQuotaResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeInternetAddressQuotaResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeInternetAddressRequest struct { + *tchttp.BaseRequest + + // 偏移量,默认为0 + Offset *int64 `json:"Offset,omitempty" name:"Offset"` + + // 返回数量,默认为20,最大值100 + Limit *int64 `json:"Limit,omitempty" name:"Limit"` + + // 过滤条件: + //
  • AddrType, 地址类型。0:BGP 1; 1: 电信, 2:移动, 3:联通
  • + //
  • AddrProto地址类型。0:IPv4 1:IPv6
  • + //
  • Status 地址状态。 0:使用中, 1:已停用, 2:已退还
  • + //
  • Subnet 互联网公网地址,数组
  • + // 互联网公网地址ID,数组 + Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` +} + +func (r *DescribeInternetAddressRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeInternetAddressRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeInternetAddressResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 互联网公网地址数量 + TotalCount *int64 `json:"TotalCount,omitempty" name:"TotalCount"` + + // 互联网公网地址列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + Subnets []*InternetAddressDetail `json:"Subnets,omitempty" name:"Subnets" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeInternetAddressResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeInternetAddressResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeInternetAddressStatisticsRequest struct { + *tchttp.BaseRequest +} + +func (r *DescribeInternetAddressStatisticsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeInternetAddressStatisticsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeInternetAddressStatisticsResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 互联网公网地址统计信息数量 + TotalCount *int64 `json:"TotalCount,omitempty" name:"TotalCount"` + + // 互联网公网地址统计信息列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + InternetAddressStatistics []*InternetAddressStatistics `json:"InternetAddressStatistics,omitempty" name:"InternetAddressStatistics" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeInternetAddressStatisticsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeInternetAddressStatisticsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DescribePublicDirectConnectTunnelRoutesRequest struct { *tchttp.BaseRequest @@ -809,6 +1001,10 @@ type DirectConnectTunnel struct { // 专用通道关联的物理专线是否签署了用户协议 // 注意:此字段可能返回 null,表示取不到有效值。 SignLaw *bool `json:"SignLaw,omitempty" name:"SignLaw"` + + // 高速上云服务ID + // 注意:此字段可能返回 null,表示取不到有效值。 + CloudAttachId *string `json:"CloudAttachId,omitempty" name:"CloudAttachId"` } type DirectConnectTunnelExtra struct { @@ -921,6 +1117,26 @@ type DirectConnectTunnelExtra struct { // BGP状态 BgpStatus *BGPStatus `json:"BgpStatus,omitempty" name:"BgpStatus"` + + // 是否开启IPv6 + // 注意:此字段可能返回 null,表示取不到有效值。 + IPv6Enable *int64 `json:"IPv6Enable,omitempty" name:"IPv6Enable"` + + // 腾讯侧互联IPv6地址 + // 注意:此字段可能返回 null,表示取不到有效值。 + TencentIPv6Address *string `json:"TencentIPv6Address,omitempty" name:"TencentIPv6Address"` + + // 腾讯侧备用互联IPv6地址 + // 注意:此字段可能返回 null,表示取不到有效值。 + TencentBackupIPv6Address *string `json:"TencentBackupIPv6Address,omitempty" name:"TencentBackupIPv6Address"` + + // BGPv6状态 + // 注意:此字段可能返回 null,表示取不到有效值。 + BgpIPv6Status *BGPStatus `json:"BgpIPv6Status,omitempty" name:"BgpIPv6Status"` + + // 用户侧互联IPv6地址 + // 注意:此字段可能返回 null,表示取不到有效值。 + CustomerIPv6Address *string `json:"CustomerIPv6Address,omitempty" name:"CustomerIPv6Address"` } type DirectConnectTunnelRoute struct { @@ -944,6 +1160,74 @@ type DirectConnectTunnelRoute struct { NextHop *string `json:"NextHop,omitempty" name:"NextHop"` } +type DisableInternetAddressRequest struct { + *tchttp.BaseRequest + + // 公网互联网地址ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` +} + +func (r *DisableInternetAddressRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DisableInternetAddressRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DisableInternetAddressResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DisableInternetAddressResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DisableInternetAddressResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type EnableInternetAddressRequest struct { + *tchttp.BaseRequest + + // 互联网公网地址ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` +} + +func (r *EnableInternetAddressRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *EnableInternetAddressRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type EnableInternetAddressResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *EnableInternetAddressResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *EnableInternetAddressResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type Filter struct { // 需要过滤的字段。 @@ -953,6 +1237,72 @@ type Filter struct { Values []*string `json:"Values,omitempty" name:"Values" list` } +type InternetAddressDetail struct { + + // 互联网地址ID + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 互联网网络地址 + // 注意:此字段可能返回 null,表示取不到有效值。 + Subnet *string `json:"Subnet,omitempty" name:"Subnet"` + + // 网络地址掩码长度 + // 注意:此字段可能返回 null,表示取不到有效值。 + MaskLen *int64 `json:"MaskLen,omitempty" name:"MaskLen"` + + // 0:BGP + // 1:电信 + // 2:移动 + // 3:联通 + // 注意:此字段可能返回 null,表示取不到有效值。 + AddrType *int64 `json:"AddrType,omitempty" name:"AddrType"` + + // 0:使用中 + // 1:已停用 + // 2:已退还 + Status *int64 `json:"Status,omitempty" name:"Status"` + + // 申请时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + ApplyTime *string `json:"ApplyTime,omitempty" name:"ApplyTime"` + + // 停用时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + StopTime *string `json:"StopTime,omitempty" name:"StopTime"` + + // 退还时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + ReleaseTime *string `json:"ReleaseTime,omitempty" name:"ReleaseTime"` + + // 地域信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Region *string `json:"Region,omitempty" name:"Region"` + + // 用户ID + // 注意:此字段可能返回 null,表示取不到有效值。 + AppId *int64 `json:"AppId,omitempty" name:"AppId"` + + // 0:IPv4 1:IPv6 + // 注意:此字段可能返回 null,表示取不到有效值。 + AddrProto *int64 `json:"AddrProto,omitempty" name:"AddrProto"` + + // 释放状态的IP地址保留的天数 + // 注意:此字段可能返回 null,表示取不到有效值。 + ReserveTime *int64 `json:"ReserveTime,omitempty" name:"ReserveTime"` +} + +type InternetAddressStatistics struct { + + // 地域 + // 注意:此字段可能返回 null,表示取不到有效值。 + Region *string `json:"Region,omitempty" name:"Region"` + + // 互联网公网地址数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + SubnetNum *int64 `json:"SubnetNum,omitempty" name:"SubnetNum"` +} + type ModifyDirectConnectAttributeRequest struct { *tchttp.BaseRequest @@ -1116,6 +1466,10 @@ type ModifyDirectConnectTunnelExtraRequest struct { // NQA配置信息 NqaInfo *NQAInfo `json:"NqaInfo,omitempty" name:"NqaInfo"` + + // 0:停用IPv6 + // 1: 启用IPv6 + IPv6Enable *int64 `json:"IPv6Enable,omitempty" name:"IPv6Enable"` } func (r *ModifyDirectConnectTunnelExtraRequest) ToJsonString() string { @@ -1191,6 +1545,40 @@ func (r *RejectDirectConnectTunnelResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ReleaseInternetAddressRequest struct { + *tchttp.BaseRequest + + // 公网互联网地址ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` +} + +func (r *ReleaseInternetAddressRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ReleaseInternetAddressRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ReleaseInternetAddressResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ReleaseInternetAddressResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ReleaseInternetAddressResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type RouteFilterPrefix struct { // 用户侧网段地址 diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/client.go index 5961c386e6..4099048bfd 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/client.go @@ -168,6 +168,31 @@ func (c *Client) DescribeInstances(request *DescribeInstancesRequest) (response return } +func NewGetRequestTargetNodeTypesRequest() (request *GetRequestTargetNodeTypesRequest) { + request = &GetRequestTargetNodeTypesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("es", APIVersion, "GetRequestTargetNodeTypes") + return +} + +func NewGetRequestTargetNodeTypesResponse() (response *GetRequestTargetNodeTypesResponse) { + response = &GetRequestTargetNodeTypesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取接收客户端请求的节点类型 +func (c *Client) GetRequestTargetNodeTypes(request *GetRequestTargetNodeTypesRequest) (response *GetRequestTargetNodeTypesResponse, err error) { + if request == nil { + request = NewGetRequestTargetNodeTypesRequest() + } + response = NewGetRequestTargetNodeTypesResponse() + err = c.Send(request, response) + return +} + func NewRestartInstanceRequest() (request *RestartInstanceRequest) { request = &RestartInstanceRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -300,6 +325,31 @@ func (c *Client) UpdatePlugins(request *UpdatePluginsRequest) (response *UpdateP return } +func NewUpdateRequestTargetNodeTypesRequest() (request *UpdateRequestTargetNodeTypesRequest) { + request = &UpdateRequestTargetNodeTypesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("es", APIVersion, "UpdateRequestTargetNodeTypes") + return +} + +func NewUpdateRequestTargetNodeTypesResponse() (response *UpdateRequestTargetNodeTypesResponse) { + response = &UpdateRequestTargetNodeTypesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 更新接收客户端请求的节点类型 +func (c *Client) UpdateRequestTargetNodeTypes(request *UpdateRequestTargetNodeTypesRequest) (response *UpdateRequestTargetNodeTypesResponse, err error) { + if request == nil { + request = NewUpdateRequestTargetNodeTypesRequest() + } + response = NewUpdateRequestTargetNodeTypesResponse() + err = c.Send(request, response) + return +} + func NewUpgradeInstanceRequest() (request *UpgradeInstanceRequest) { request = &UpgradeInstanceRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/models.go index fe4bb46c9e..17e4c33bc1 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416/models.go @@ -420,6 +420,43 @@ type EsPublicAcl struct { WhiteIpList []*string `json:"WhiteIpList,omitempty" name:"WhiteIpList" list` } +type GetRequestTargetNodeTypesRequest struct { + *tchttp.BaseRequest + + // 实例ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` +} + +func (r *GetRequestTargetNodeTypesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *GetRequestTargetNodeTypesRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type GetRequestTargetNodeTypesResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 接收请求的目标节点类型列表 + TargetNodeTypes []*string `json:"TargetNodeTypes,omitempty" name:"TargetNodeTypes" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *GetRequestTargetNodeTypesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *GetRequestTargetNodeTypesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type InstanceInfo struct { // 实例ID @@ -597,6 +634,10 @@ type InstanceInfo struct { // 场景化模板类型:0、不开启;1、通用场景;2、日志场景;3、搜索场景 // 注意:此字段可能返回 null,表示取不到有效值。 SceneType *int64 `json:"SceneType,omitempty" name:"SceneType"` + + // Kibana配置项 + // 注意:此字段可能返回 null,表示取不到有效值。 + KibanaConfig *string `json:"KibanaConfig,omitempty" name:"KibanaConfig"` } type InstanceLog struct { @@ -1037,6 +1078,43 @@ func (r *UpdatePluginsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type UpdateRequestTargetNodeTypesRequest struct { + *tchttp.BaseRequest + + // 实例ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 接收请求的目标节点类型列表 + TargetNodeTypes []*string `json:"TargetNodeTypes,omitempty" name:"TargetNodeTypes" list` +} + +func (r *UpdateRequestTargetNodeTypesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *UpdateRequestTargetNodeTypesRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type UpdateRequestTargetNodeTypesResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *UpdateRequestTargetNodeTypesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *UpdateRequestTargetNodeTypesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type UpgradeInstanceRequest struct { *tchttp.BaseRequest 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 e5909ecc5a..7f83dceaae 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 @@ -68,6 +68,56 @@ func (c *Client) BindingPolicyObject(request *BindingPolicyObjectRequest) (respo return } +func NewCreateAlarmNoticeRequest() (request *CreateAlarmNoticeRequest) { + request = &CreateAlarmNoticeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "CreateAlarmNotice") + return +} + +func NewCreateAlarmNoticeResponse() (response *CreateAlarmNoticeResponse) { + response = &CreateAlarmNoticeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 创建通知模板 +func (c *Client) CreateAlarmNotice(request *CreateAlarmNoticeRequest) (response *CreateAlarmNoticeResponse, err error) { + if request == nil { + request = NewCreateAlarmNoticeRequest() + } + response = NewCreateAlarmNoticeResponse() + err = c.Send(request, response) + return +} + +func NewCreateAlarmPolicyRequest() (request *CreateAlarmPolicyRequest) { + request = &CreateAlarmPolicyRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "CreateAlarmPolicy") + return +} + +func NewCreateAlarmPolicyResponse() (response *CreateAlarmPolicyResponse) { + response = &CreateAlarmPolicyResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 创建告警策略 +func (c *Client) CreateAlarmPolicy(request *CreateAlarmPolicyRequest) (response *CreateAlarmPolicyResponse, err error) { + if request == nil { + request = NewCreateAlarmPolicyRequest() + } + response = NewCreateAlarmPolicyResponse() + err = c.Send(request, response) + return +} + func NewCreatePolicyGroupRequest() (request *CreatePolicyGroupRequest) { request = &CreatePolicyGroupRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -120,6 +170,56 @@ func (c *Client) CreateServiceDiscovery(request *CreateServiceDiscoveryRequest) return } +func NewDeleteAlarmNoticesRequest() (request *DeleteAlarmNoticesRequest) { + request = &DeleteAlarmNoticesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DeleteAlarmNotices") + return +} + +func NewDeleteAlarmNoticesResponse() (response *DeleteAlarmNoticesResponse) { + response = &DeleteAlarmNoticesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 云监控告警删除告警通知模板 +func (c *Client) DeleteAlarmNotices(request *DeleteAlarmNoticesRequest) (response *DeleteAlarmNoticesResponse, err error) { + if request == nil { + request = NewDeleteAlarmNoticesRequest() + } + response = NewDeleteAlarmNoticesResponse() + err = c.Send(request, response) + return +} + +func NewDeleteAlarmPolicyRequest() (request *DeleteAlarmPolicyRequest) { + request = &DeleteAlarmPolicyRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DeleteAlarmPolicy") + return +} + +func NewDeleteAlarmPolicyResponse() (response *DeleteAlarmPolicyResponse) { + response = &DeleteAlarmPolicyResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 删除告警策略 +func (c *Client) DeleteAlarmPolicy(request *DeleteAlarmPolicyRequest) (response *DeleteAlarmPolicyResponse, err error) { + if request == nil { + request = NewDeleteAlarmPolicyRequest() + } + response = NewDeleteAlarmPolicyResponse() + err = c.Send(request, response) + return +} + func NewDeletePolicyGroupRequest() (request *DeletePolicyGroupRequest) { request = &DeletePolicyGroupRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -197,6 +297,31 @@ func (c *Client) DescribeAccidentEventList(request *DescribeAccidentEventListReq return } +func NewDescribeAlarmEventsRequest() (request *DescribeAlarmEventsRequest) { + request = &DescribeAlarmEventsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DescribeAlarmEvents") + return +} + +func NewDescribeAlarmEventsResponse() (response *DescribeAlarmEventsResponse) { + response = &DescribeAlarmEventsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 查询告警事件列表 +func (c *Client) DescribeAlarmEvents(request *DescribeAlarmEventsRequest) (response *DescribeAlarmEventsResponse, err error) { + if request == nil { + request = NewDescribeAlarmEventsRequest() + } + response = NewDescribeAlarmEventsResponse() + err = c.Send(request, response) + return +} + func NewDescribeAlarmHistoriesRequest() (request *DescribeAlarmHistoriesRequest) { request = &DescribeAlarmHistoriesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -212,7 +337,7 @@ func NewDescribeAlarmHistoriesResponse() (response *DescribeAlarmHistoriesRespon return } -// 告警2.0-告警历史列表 +// 查询告警历史 func (c *Client) DescribeAlarmHistories(request *DescribeAlarmHistoriesRequest) (response *DescribeAlarmHistoriesResponse, err error) { if request == nil { request = NewDescribeAlarmHistoriesRequest() @@ -222,6 +347,156 @@ func (c *Client) DescribeAlarmHistories(request *DescribeAlarmHistoriesRequest) return } +func NewDescribeAlarmMetricsRequest() (request *DescribeAlarmMetricsRequest) { + request = &DescribeAlarmMetricsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DescribeAlarmMetrics") + return +} + +func NewDescribeAlarmMetricsResponse() (response *DescribeAlarmMetricsResponse) { + response = &DescribeAlarmMetricsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 查询告警指标列表 +func (c *Client) DescribeAlarmMetrics(request *DescribeAlarmMetricsRequest) (response *DescribeAlarmMetricsResponse, err error) { + if request == nil { + request = NewDescribeAlarmMetricsRequest() + } + response = NewDescribeAlarmMetricsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeAlarmNoticeRequest() (request *DescribeAlarmNoticeRequest) { + request = &DescribeAlarmNoticeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DescribeAlarmNotice") + return +} + +func NewDescribeAlarmNoticeResponse() (response *DescribeAlarmNoticeResponse) { + response = &DescribeAlarmNoticeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 查询单个通知模板的详情 +func (c *Client) DescribeAlarmNotice(request *DescribeAlarmNoticeRequest) (response *DescribeAlarmNoticeResponse, err error) { + if request == nil { + request = NewDescribeAlarmNoticeRequest() + } + response = NewDescribeAlarmNoticeResponse() + err = c.Send(request, response) + return +} + +func NewDescribeAlarmNoticeCallbacksRequest() (request *DescribeAlarmNoticeCallbacksRequest) { + request = &DescribeAlarmNoticeCallbacksRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DescribeAlarmNoticeCallbacks") + return +} + +func NewDescribeAlarmNoticeCallbacksResponse() (response *DescribeAlarmNoticeCallbacksResponse) { + response = &DescribeAlarmNoticeCallbacksResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 云监控告警获取告警通知模板所有回调URL +func (c *Client) DescribeAlarmNoticeCallbacks(request *DescribeAlarmNoticeCallbacksRequest) (response *DescribeAlarmNoticeCallbacksResponse, err error) { + if request == nil { + request = NewDescribeAlarmNoticeCallbacksRequest() + } + response = NewDescribeAlarmNoticeCallbacksResponse() + err = c.Send(request, response) + return +} + +func NewDescribeAlarmNoticesRequest() (request *DescribeAlarmNoticesRequest) { + request = &DescribeAlarmNoticesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DescribeAlarmNotices") + return +} + +func NewDescribeAlarmNoticesResponse() (response *DescribeAlarmNoticesResponse) { + response = &DescribeAlarmNoticesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 查询通知模板列表 +func (c *Client) DescribeAlarmNotices(request *DescribeAlarmNoticesRequest) (response *DescribeAlarmNoticesResponse, err error) { + if request == nil { + request = NewDescribeAlarmNoticesRequest() + } + response = NewDescribeAlarmNoticesResponse() + err = c.Send(request, response) + return +} + +func NewDescribeAlarmPoliciesRequest() (request *DescribeAlarmPoliciesRequest) { + request = &DescribeAlarmPoliciesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DescribeAlarmPolicies") + return +} + +func NewDescribeAlarmPoliciesResponse() (response *DescribeAlarmPoliciesResponse) { + response = &DescribeAlarmPoliciesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 查询告警策略列表 +func (c *Client) DescribeAlarmPolicies(request *DescribeAlarmPoliciesRequest) (response *DescribeAlarmPoliciesResponse, err error) { + if request == nil { + request = NewDescribeAlarmPoliciesRequest() + } + response = NewDescribeAlarmPoliciesResponse() + err = c.Send(request, response) + return +} + +func NewDescribeAlarmPolicyRequest() (request *DescribeAlarmPolicyRequest) { + request = &DescribeAlarmPolicyRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "DescribeAlarmPolicy") + return +} + +func NewDescribeAlarmPolicyResponse() (response *DescribeAlarmPolicyResponse) { + response = &DescribeAlarmPolicyResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取单个告警策略详情 +func (c *Client) DescribeAlarmPolicy(request *DescribeAlarmPolicyRequest) (response *DescribeAlarmPolicyResponse, err error) { + if request == nil { + request = NewDescribeAlarmPolicyRequest() + } + response = NewDescribeAlarmPolicyResponse() + err = c.Send(request, response) + return +} + func NewDescribeAllNamespacesRequest() (request *DescribeAllNamespacesRequest) { request = &DescribeAllNamespacesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -237,7 +512,7 @@ func NewDescribeAllNamespacesResponse() (response *DescribeAllNamespacesResponse return } -// 拉取所有名字空间 +// 查询所有名字空间 func (c *Client) DescribeAllNamespaces(request *DescribeAllNamespacesRequest) (response *DescribeAllNamespacesResponse, err error) { if request == nil { request = NewDescribeAllNamespacesRequest() @@ -526,6 +801,156 @@ func (c *Client) GetMonitorData(request *GetMonitorDataRequest) (response *GetMo return } +func NewModifyAlarmNoticeRequest() (request *ModifyAlarmNoticeRequest) { + request = &ModifyAlarmNoticeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "ModifyAlarmNotice") + return +} + +func NewModifyAlarmNoticeResponse() (response *ModifyAlarmNoticeResponse) { + response = &ModifyAlarmNoticeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 云监控告警编辑告警通知模板 +func (c *Client) ModifyAlarmNotice(request *ModifyAlarmNoticeRequest) (response *ModifyAlarmNoticeResponse, err error) { + if request == nil { + request = NewModifyAlarmNoticeRequest() + } + response = NewModifyAlarmNoticeResponse() + err = c.Send(request, response) + return +} + +func NewModifyAlarmPolicyConditionRequest() (request *ModifyAlarmPolicyConditionRequest) { + request = &ModifyAlarmPolicyConditionRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "ModifyAlarmPolicyCondition") + return +} + +func NewModifyAlarmPolicyConditionResponse() (response *ModifyAlarmPolicyConditionResponse) { + response = &ModifyAlarmPolicyConditionResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 编辑告警策略触发条件 +func (c *Client) ModifyAlarmPolicyCondition(request *ModifyAlarmPolicyConditionRequest) (response *ModifyAlarmPolicyConditionResponse, err error) { + if request == nil { + request = NewModifyAlarmPolicyConditionRequest() + } + response = NewModifyAlarmPolicyConditionResponse() + err = c.Send(request, response) + return +} + +func NewModifyAlarmPolicyInfoRequest() (request *ModifyAlarmPolicyInfoRequest) { + request = &ModifyAlarmPolicyInfoRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "ModifyAlarmPolicyInfo") + return +} + +func NewModifyAlarmPolicyInfoResponse() (response *ModifyAlarmPolicyInfoResponse) { + response = &ModifyAlarmPolicyInfoResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 告警2.0编辑告警策略基本信息,包括策略名、备注 +func (c *Client) ModifyAlarmPolicyInfo(request *ModifyAlarmPolicyInfoRequest) (response *ModifyAlarmPolicyInfoResponse, err error) { + if request == nil { + request = NewModifyAlarmPolicyInfoRequest() + } + response = NewModifyAlarmPolicyInfoResponse() + err = c.Send(request, response) + return +} + +func NewModifyAlarmPolicyNoticeRequest() (request *ModifyAlarmPolicyNoticeRequest) { + request = &ModifyAlarmPolicyNoticeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "ModifyAlarmPolicyNotice") + return +} + +func NewModifyAlarmPolicyNoticeResponse() (response *ModifyAlarmPolicyNoticeResponse) { + response = &ModifyAlarmPolicyNoticeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 云监控告警修改告警策略绑定的告警通知模板 +func (c *Client) ModifyAlarmPolicyNotice(request *ModifyAlarmPolicyNoticeRequest) (response *ModifyAlarmPolicyNoticeResponse, err error) { + if request == nil { + request = NewModifyAlarmPolicyNoticeRequest() + } + response = NewModifyAlarmPolicyNoticeResponse() + err = c.Send(request, response) + return +} + +func NewModifyAlarmPolicyStatusRequest() (request *ModifyAlarmPolicyStatusRequest) { + request = &ModifyAlarmPolicyStatusRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "ModifyAlarmPolicyStatus") + return +} + +func NewModifyAlarmPolicyStatusResponse() (response *ModifyAlarmPolicyStatusResponse) { + response = &ModifyAlarmPolicyStatusResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 启停告警策略 +func (c *Client) ModifyAlarmPolicyStatus(request *ModifyAlarmPolicyStatusRequest) (response *ModifyAlarmPolicyStatusResponse, err error) { + if request == nil { + request = NewModifyAlarmPolicyStatusRequest() + } + response = NewModifyAlarmPolicyStatusResponse() + err = c.Send(request, response) + return +} + +func NewModifyAlarmPolicyTasksRequest() (request *ModifyAlarmPolicyTasksRequest) { + request = &ModifyAlarmPolicyTasksRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "ModifyAlarmPolicyTasks") + return +} + +func NewModifyAlarmPolicyTasksResponse() (response *ModifyAlarmPolicyTasksResponse) { + response = &ModifyAlarmPolicyTasksResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 云监控告警修改告警策略的触发任务,TriggerTasks字段放触发任务列表,TriggerTasks传空数组时,代表解绑该策略的所有触发任务。 +func (c *Client) ModifyAlarmPolicyTasks(request *ModifyAlarmPolicyTasksRequest) (response *ModifyAlarmPolicyTasksResponse, err error) { + if request == nil { + request = NewModifyAlarmPolicyTasksRequest() + } + response = NewModifyAlarmPolicyTasksResponse() + err = c.Send(request, response) + return +} + func NewModifyAlarmReceiversRequest() (request *ModifyAlarmReceiversRequest) { request = &ModifyAlarmReceiversRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -632,6 +1057,32 @@ func (c *Client) SendCustomAlarmMsg(request *SendCustomAlarmMsgRequest) (respons return } +func NewSetDefaultAlarmPolicyRequest() (request *SetDefaultAlarmPolicyRequest) { + request = &SetDefaultAlarmPolicyRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("monitor", APIVersion, "SetDefaultAlarmPolicy") + return +} + +func NewSetDefaultAlarmPolicyResponse() (response *SetDefaultAlarmPolicyResponse) { + response = &SetDefaultAlarmPolicyResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 设置一个策略为该告警策略类型、该项目的默认告警策略。 +// 同一项目下相同的告警策略类型,就会被设置为非默认。 +func (c *Client) SetDefaultAlarmPolicy(request *SetDefaultAlarmPolicyRequest) (response *SetDefaultAlarmPolicyResponse, err error) { + if request == nil { + request = NewSetDefaultAlarmPolicyRequest() + } + response = NewSetDefaultAlarmPolicyResponse() + err = c.Send(request, response) + return +} + func NewUnBindingAllPolicyObjectRequest() (request *UnBindingAllPolicyObjectRequest) { request = &UnBindingAllPolicyObjectRequest{ BaseRequest: &tchttp.BaseRequest{}, 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 5fb7df3e6d..3ca1719e81 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 @@ -20,6 +20,18 @@ import ( tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http" ) +type AlarmEvent struct { + + // 事件名 + EventName *string `json:"EventName,omitempty" name:"EventName"` + + // 展示的事件名 + Description *string `json:"Description,omitempty" name:"Description"` + + // 告警策略类型 + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + type AlarmHistory struct { // 告警历史Id @@ -84,6 +96,274 @@ type AlarmHistory struct { // 地域 Region *string `json:"Region,omitempty" name:"Region"` + + // 策略是否存在 0=不存在 1=存在 + PolicyExists *int64 `json:"PolicyExists,omitempty" name:"PolicyExists"` +} + +type AlarmNotice struct { + + // 告警通知模板 ID + // 注意:此字段可能返回 null,表示取不到有效值。 + Id *string `json:"Id,omitempty" name:"Id"` + + // 告警通知模板名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + Name *string `json:"Name,omitempty" name:"Name"` + + // 上次修改时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpdatedAt *string `json:"UpdatedAt,omitempty" name:"UpdatedAt"` + + // 上次修改人 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpdatedBy *string `json:"UpdatedBy,omitempty" name:"UpdatedBy"` + + // 告警通知类型 ALARM=未恢复通知 OK=已恢复通知 ALL=全部通知 + // 注意:此字段可能返回 null,表示取不到有效值。 + NoticeType *string `json:"NoticeType,omitempty" name:"NoticeType"` + + // 用户通知列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + UserNotices []*UserNotice `json:"UserNotices,omitempty" name:"UserNotices" list` + + // 回调通知列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + URLNotices []*URLNotice `json:"URLNotices,omitempty" name:"URLNotices" list` + + // 是否是系统预设通知模板 0=否 1=是 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsPreset *int64 `json:"IsPreset,omitempty" name:"IsPreset"` + + // 通知语言 zh-CN=中文 en-US=英文 + // 注意:此字段可能返回 null,表示取不到有效值。 + NoticeLanguage *string `json:"NoticeLanguage,omitempty" name:"NoticeLanguage"` + + // 告警通知模板绑定的告警策略ID列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + PolicyIds []*string `json:"PolicyIds,omitempty" name:"PolicyIds" list` +} + +type AlarmPolicy struct { + + // 告警策略 ID + // 注意:此字段可能返回 null,表示取不到有效值。 + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` + + // 告警策略名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + PolicyName *string `json:"PolicyName,omitempty" name:"PolicyName"` + + // 备注信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 监控类型 MT_QCE=云产品监控 + // 注意:此字段可能返回 null,表示取不到有效值。 + MonitorType *string `json:"MonitorType,omitempty" name:"MonitorType"` + + // 启停状态 0=停用 1=启用 + // 注意:此字段可能返回 null,表示取不到有效值。 + Enable *int64 `json:"Enable,omitempty" name:"Enable"` + + // 策略组绑定的实例数 + // 注意:此字段可能返回 null,表示取不到有效值。 + UseSum *int64 `json:"UseSum,omitempty" name:"UseSum"` + + // 项目 Id -1=无项目 0=默认项目 + // 注意:此字段可能返回 null,表示取不到有效值。 + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 项目名 + // 注意:此字段可能返回 null,表示取不到有效值。 + ProjectName *string `json:"ProjectName,omitempty" name:"ProjectName"` + + // 告警策略类型 + // 注意:此字段可能返回 null,表示取不到有效值。 + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` + + // 触发条件模板 Id + // 注意:此字段可能返回 null,表示取不到有效值。 + ConditionTemplateId *string `json:"ConditionTemplateId,omitempty" name:"ConditionTemplateId"` + + // 指标触发条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + Condition *AlarmPolicyCondition `json:"Condition,omitempty" name:"Condition"` + + // 事件触发条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventCondition *AlarmPolicyEventCondition `json:"EventCondition,omitempty" name:"EventCondition"` + + // 通知规则 id 列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + NoticeIds []*string `json:"NoticeIds,omitempty" name:"NoticeIds" list` + + // 通知规则 列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + Notices []*AlarmNotice `json:"Notices,omitempty" name:"Notices" list` + + // 触发任务列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + TriggerTasks []*AlarmPolicyTriggerTask `json:"TriggerTasks,omitempty" name:"TriggerTasks" list` + + // 模板策略组 + // 注意:此字段可能返回 null,表示取不到有效值。 + // 注意:此字段可能返回 null,表示取不到有效值。 + ConditionsTemp *ConditionsTemp `json:"ConditionsTemp,omitempty" name:"ConditionsTemp"` + + // 最后编辑的用户uin + // 注意:此字段可能返回 null,表示取不到有效值。 + LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + + // 更新时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 创建时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + // 注意:此字段可能返回 null,表示取不到有效值。 + InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` + + // 地域 + // 注意:此字段可能返回 null,表示取不到有效值。 + Region []*string `json:"Region,omitempty" name:"Region" list` + + // namespace显示名字 + // 注意:此字段可能返回 null,表示取不到有效值。 + NamespaceShowName *string `json:"NamespaceShowName,omitempty" name:"NamespaceShowName"` + + // 是否默认策略,1是,0否 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsDefault *int64 `json:"IsDefault,omitempty" name:"IsDefault"` + + // 能否设置默认策略,1是,0否 + // 注意:此字段可能返回 null,表示取不到有效值。 + CanSetDefault *int64 `json:"CanSetDefault,omitempty" name:"CanSetDefault"` + + // 实例分组ID + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` + + // 实例分组总实例数 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceSum *int64 `json:"InstanceSum,omitempty" name:"InstanceSum"` + + // 实例分组名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceGroupName *string `json:"InstanceGroupName,omitempty" name:"InstanceGroupName"` + + // 触发条件类型 STATIC=静态阈值 DYNAMIC=动态类型 + // 注意:此字段可能返回 null,表示取不到有效值。 + RuleType *string `json:"RuleType,omitempty" name:"RuleType"` + + // 用于实例、实例组绑定和解绑接口(BindingPolicyObject、UnBindingAllPolicyObject、UnBindingPolicyObject)的策略 ID + // 注意:此字段可能返回 null,表示取不到有效值。 + OriginId *string `json:"OriginId,omitempty" name:"OriginId"` +} + +type AlarmPolicyCondition struct { + + // 指标触发与或条件,0=或,1=与 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` + + // 告警触发条件列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + Rules []*AlarmPolicyRule `json:"Rules,omitempty" name:"Rules" list` +} + +type AlarmPolicyEventCondition struct { + + // 告警触发条件列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + Rules []*AlarmPolicyRule `json:"Rules,omitempty" name:"Rules" list` +} + +type AlarmPolicyFilter struct { + + // 过滤条件类型 DIMENSION=使用 Dimensions 做过滤 + // 注意:此字段可能返回 null,表示取不到有效值。 + Type *string `json:"Type,omitempty" name:"Type"` + + // AlarmPolicyDimension 二维数组序列化后的json字符串,一维数组之间互为或关系,一维数组内的元素互为与关系 + // 注意:此字段可能返回 null,表示取不到有效值。 + Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` +} + +type AlarmPolicyRule struct { + + // 指标名 + // 注意:此字段可能返回 null,表示取不到有效值。 + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` + + // 秒数 统计周期 + // 注意:此字段可能返回 null,表示取不到有效值。 + Period *int64 `json:"Period,omitempty" name:"Period"` + + // 英文运算符 + // intelligent=无阈值智能检测 + // eq=等于 + // ge=大于等于 + // gt=大于 + // le=小于等于 + // lt=小于 + // ne=不等于 + // day_increase=天同比增长 + // day_decrease=天同比下降 + // day_wave=天同比波动 + // week_increase=周同比增长 + // week_decrease=周同比下降 + // week_wave=周同比波动 + // cycle_increase=环比增长 + // cycle_decrease=环比下降 + // cycle_wave=环比波动 + // re=正则匹配 + // 注意:此字段可能返回 null,表示取不到有效值。 + Operator *string `json:"Operator,omitempty" name:"Operator"` + + // 阈值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Value *string `json:"Value,omitempty" name:"Value"` + + // 周期数 持续通知周期 1=持续1个周期 2=持续2个周期... + // 注意:此字段可能返回 null,表示取不到有效值。 + ContinuePeriod *int64 `json:"ContinuePeriod,omitempty" name:"ContinuePeriod"` + + // 秒数 告警间隔 0=不重复 300=每5分钟告警一次 600=每10分钟告警一次 900=每15分钟告警一次 1800=每30分钟告警一次 3600=每1小时告警一次 7200=每2小时告警一次 10800=每3小时告警一次 21600=每6小时告警一次 43200=每12小时告警一次 86400=每1天告警一次 + // 注意:此字段可能返回 null,表示取不到有效值。 + NoticeFrequency *int64 `json:"NoticeFrequency,omitempty" name:"NoticeFrequency"` + + // 告警频率是否指数增长 0=否 1=是 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsPowerNotice *int64 `json:"IsPowerNotice,omitempty" name:"IsPowerNotice"` + + // 对于单个触发规则的过滤条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + Filter *AlarmPolicyFilter `json:"Filter,omitempty" name:"Filter"` + + // 指标展示名,用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + Description *string `json:"Description,omitempty" name:"Description"` + + // 单位,用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + Unit *string `json:"Unit,omitempty" name:"Unit"` + + // 触发条件类型 STATIC=静态阈值 DYNAMIC=动态阈值 + // 注意:此字段可能返回 null,表示取不到有效值。 + RuleType *string `json:"RuleType,omitempty" name:"RuleType"` +} + +type AlarmPolicyTriggerTask struct { + + // 触发任务类型 AS=弹性伸缩 + // 注意:此字段可能返回 null,表示取不到有效值。 + Type *string `json:"Type,omitempty" name:"Type"` + + // 用 json 表示配置信息 {"Key1":"Value1","Key2":"Value2"} + // 注意:此字段可能返回 null,表示取不到有效值。 + TaskConfig *string `json:"TaskConfig,omitempty" name:"TaskConfig"` } type BindingPolicyObjectDimension struct { @@ -171,98 +451,235 @@ type CommonNamespace struct { DashboardId *string `json:"DashboardId,omitempty" name:"DashboardId"` } -type CreatePolicyGroupCondition struct { +type ConditionsTemp struct { - // 指标Id - MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` + // 模版名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + TemplateName *string `json:"TemplateName,omitempty" name:"TemplateName"` - // 告警发送收敛类型。0连续告警,1指数告警 - AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` + // 指标触发条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + Condition *AlarmPolicyCondition `json:"Condition,omitempty" name:"Condition"` - // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 - AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` + // 事件触发条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventCondition *AlarmPolicyEventCondition `json:"EventCondition,omitempty" name:"EventCondition"` +} - // 比较类型,1表示大于,2表示大于等于,3表示小于,4表示小于等于,5表示相等,6表示不相等。如果指标有配置默认比较类型值可以不填。 - CalcType *int64 `json:"CalcType,omitempty" name:"CalcType"` +type CreateAlarmNoticeRequest struct { + *tchttp.BaseRequest - // 比较的值,如果指标不必须CalcValue可不填 - CalcValue *float64 `json:"CalcValue,omitempty" name:"CalcValue"` + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` - // 数据聚合周期(单位秒),若指标有默认值可不填 - CalcPeriod *int64 `json:"CalcPeriod,omitempty" name:"CalcPeriod"` + // 通知模板名称 60字符以内 + Name *string `json:"Name,omitempty" name:"Name"` - // 持续几个检测周期触发规则会告警 - ContinuePeriod *int64 `json:"ContinuePeriod,omitempty" name:"ContinuePeriod"` + // 通知类型 ALARM=未恢复通知 OK=已恢复通知 ALL=都通知 + NoticeType *string `json:"NoticeType,omitempty" name:"NoticeType"` - // 如果通过模版创建,需要传入模版中该指标的对应RuleId - RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` + // 通知语言 zh-CN=中文 en-US=英文 + NoticeLanguage *string `json:"NoticeLanguage,omitempty" name:"NoticeLanguage"` + + // 用户通知 最多5个 + UserNotices []*UserNotice `json:"UserNotices,omitempty" name:"UserNotices" list` + + // 回调通知 最多3个 + URLNotices []*URLNotice `json:"URLNotices,omitempty" name:"URLNotices" list` } -type CreatePolicyGroupEventCondition struct { +func (r *CreateAlarmNoticeRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 告警事件的Id - EventId *int64 `json:"EventId,omitempty" name:"EventId"` +func (r *CreateAlarmNoticeRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 告警发送收敛类型。0连续告警,1指数告警 - AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` +type CreateAlarmNoticeResponse struct { + *tchttp.BaseResponse + Response *struct { - // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 - AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` + // 告警通知模板ID + NoticeId *string `json:"NoticeId,omitempty" name:"NoticeId"` - // 如果通过模版创建,需要传入模版中该指标的对应RuleId - RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` } -type CreatePolicyGroupRequest struct { - *tchttp.BaseRequest +func (r *CreateAlarmNoticeResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 组策略名称 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` +func (r *CreateAlarmNoticeResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateAlarmPolicyRequest struct { + *tchttp.BaseRequest // 固定值,为"monitor" Module *string `json:"Module,omitempty" name:"Module"` - // 策略组所属视图的名称,若通过模版创建,可不传入 - ViewName *string `json:"ViewName,omitempty" name:"ViewName"` - - // 策略组所属项目Id,会进行鉴权操作 - ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + // 策略名称,不超过20字符 + PolicyName *string `json:"PolicyName,omitempty" name:"PolicyName"` - // 模版策略组Id, 通过模版创建时才需要传 - ConditionTempGroupId *int64 `json:"ConditionTempGroupId,omitempty" name:"ConditionTempGroupId"` + // 监控类型 MT_QCE=云产品监控 + MonitorType *string `json:"MonitorType,omitempty" name:"MonitorType"` - // 是否屏蔽策略组,0表示不屏蔽,1表示屏蔽。不填默认为0 - IsShielded *int64 `json:"IsShielded,omitempty" name:"IsShielded"` + // 告警策略类型,由 DescribeAllNamespaces 获得,例如 cvm_device + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` - // 策略组的备注信息 + // 备注,不超过100字符,仅支持中英文、数字、下划线、- Remark *string `json:"Remark,omitempty" name:"Remark"` - // 插入时间,戳格式为Unix时间戳,不填则按后台处理时间填充 - InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` + // 是否启用 0=停用 1=启用,可不传 默认为1 + Enable *int64 `json:"Enable,omitempty" name:"Enable"` - // 策略组中的阈值告警规则 - Conditions []*CreatePolicyGroupCondition `json:"Conditions,omitempty" name:"Conditions" list` + // 项目 Id -1=无项目 0=默认项目,可不传 默认为-1 + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` - // 策略组中的事件告警规则 - EventConditions []*CreatePolicyGroupEventCondition `json:"EventConditions,omitempty" name:"EventConditions" list` + // 指标触发条件 + Condition *AlarmPolicyCondition `json:"Condition,omitempty" name:"Condition"` - // 是否为后端调用。当且仅当值为1时,后台拉取策略模版中的规则填充入Conditions以及EventConditions字段 - BackEndCall *int64 `json:"BackEndCall,omitempty" name:"BackEndCall"` + // 事件触发条件 + EventCondition *AlarmPolicyEventCondition `json:"EventCondition,omitempty" name:"EventCondition"` - // 指标告警规则的且或关系,0表示或规则(满足任意规则就告警),1表示且规则(满足所有规则才告警) - IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` + // 通知规则 Id 列表,由 DescribeAlarmNotices 获得 + NoticeIds []*string `json:"NoticeIds,omitempty" name:"NoticeIds" list` + + // 触发任务列表 + TriggerTasks []*AlarmPolicyTriggerTask `json:"TriggerTasks,omitempty" name:"TriggerTasks" list` } -func (r *CreatePolicyGroupRequest) ToJsonString() string { +func (r *CreateAlarmPolicyRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *CreatePolicyGroupRequest) FromJsonString(s string) error { +func (r *CreateAlarmPolicyRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type CreatePolicyGroupResponse struct { +type CreateAlarmPolicyResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 告警策略 ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` + + // 用于实例、实例组绑定和解绑接口(BindingPolicyObject、UnBindingAllPolicyObject、UnBindingPolicyObject)的策略 ID + OriginId *string `json:"OriginId,omitempty" name:"OriginId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CreateAlarmPolicyResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateAlarmPolicyResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreatePolicyGroupCondition struct { + + // 指标Id + MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` + + // 告警发送收敛类型。0连续告警,1指数告警 + AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` + + // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 + AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` + + // 比较类型,1表示大于,2表示大于等于,3表示小于,4表示小于等于,5表示相等,6表示不相等。如果指标有配置默认比较类型值可以不填。 + CalcType *int64 `json:"CalcType,omitempty" name:"CalcType"` + + // 比较的值,如果指标不必须CalcValue可不填 + CalcValue *float64 `json:"CalcValue,omitempty" name:"CalcValue"` + + // 数据聚合周期(单位秒),若指标有默认值可不填 + CalcPeriod *int64 `json:"CalcPeriod,omitempty" name:"CalcPeriod"` + + // 持续几个检测周期触发规则会告警 + ContinuePeriod *int64 `json:"ContinuePeriod,omitempty" name:"ContinuePeriod"` + + // 如果通过模版创建,需要传入模版中该指标的对应RuleId + RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` +} + +type CreatePolicyGroupEventCondition struct { + + // 告警事件的Id + EventId *int64 `json:"EventId,omitempty" name:"EventId"` + + // 告警发送收敛类型。0连续告警,1指数告警 + AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` + + // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 + AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` + + // 如果通过模版创建,需要传入模版中该指标的对应RuleId + RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` +} + +type CreatePolicyGroupRequest struct { + *tchttp.BaseRequest + + // 组策略名称 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + + // 固定值,为"monitor" + Module *string `json:"Module,omitempty" name:"Module"` + + // 策略组所属视图的名称,若通过模版创建,可不传入 + ViewName *string `json:"ViewName,omitempty" name:"ViewName"` + + // 策略组所属项目Id,会进行鉴权操作 + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 模版策略组Id, 通过模版创建时才需要传 + ConditionTempGroupId *int64 `json:"ConditionTempGroupId,omitempty" name:"ConditionTempGroupId"` + + // 是否屏蔽策略组,0表示不屏蔽,1表示屏蔽。不填默认为0 + IsShielded *int64 `json:"IsShielded,omitempty" name:"IsShielded"` + + // 策略组的备注信息 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 插入时间,戳格式为Unix时间戳,不填则按后台处理时间填充 + InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` + + // 策略组中的阈值告警规则 + Conditions []*CreatePolicyGroupCondition `json:"Conditions,omitempty" name:"Conditions" list` + + // 策略组中的事件告警规则 + EventConditions []*CreatePolicyGroupEventCondition `json:"EventConditions,omitempty" name:"EventConditions" list` + + // 是否为后端调用。当且仅当值为1时,后台拉取策略模版中的规则填充入Conditions以及EventConditions字段 + BackEndCall *int64 `json:"BackEndCall,omitempty" name:"BackEndCall"` + + // 指标告警规则的且或关系,0表示或规则(满足任意规则就告警),1表示且规则(满足所有规则才告警) + IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` +} + +func (r *CreatePolicyGroupRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreatePolicyGroupRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreatePolicyGroupResponse struct { *tchttp.BaseResponse Response *struct { @@ -347,6 +764,80 @@ type DataPoint struct { Values []*float64 `json:"Values,omitempty" name:"Values" list` } +type DeleteAlarmNoticesRequest struct { + *tchttp.BaseRequest + + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` + + // 告警通知模板id列表 + NoticeIds []*string `json:"NoticeIds,omitempty" name:"NoticeIds" list` +} + +func (r *DeleteAlarmNoticesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteAlarmNoticesRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeleteAlarmNoticesResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DeleteAlarmNoticesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteAlarmNoticesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeleteAlarmPolicyRequest struct { + *tchttp.BaseRequest + + // 模块名,固定值 monitor + Module *string `json:"Module,omitempty" name:"Module"` + + // 告警策略 ID 列表 + PolicyIds []*string `json:"PolicyIds,omitempty" name:"PolicyIds" list` +} + +func (r *DeleteAlarmPolicyRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteAlarmPolicyRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeleteAlarmPolicyResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DeleteAlarmPolicyResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteAlarmPolicyResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DeletePolicyGroupRequest struct { *tchttp.BaseRequest @@ -543,6 +1034,46 @@ func (r *DescribeAccidentEventListResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type DescribeAlarmEventsRequest struct { + *tchttp.BaseRequest + + // 模块名,固定值 monitor + Module *string `json:"Module,omitempty" name:"Module"` + + // 告警策略类型,由 DescribeAllNamespaces 获得,例如 cvm_device + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + +func (r *DescribeAlarmEventsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeAlarmEventsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeAlarmEventsResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 告警事件列表 + Events []*AlarmEvent `json:"Events,omitempty" name:"Events" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeAlarmEventsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeAlarmEventsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DescribeAlarmHistoriesRequest struct { *tchttp.BaseRequest @@ -564,7 +1095,7 @@ type DescribeAlarmHistoriesRequest struct { // 结束时间,默认当前时间戳 EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` - // 根据监控类型过滤 不选默认查所有类型 "MT_QCE"=云产品监控 "MT_CUSTOM"=自定义监控 "MT_PROME"=prometheus监控 + // 根据监控类型过滤 不选默认查所有类型 "MT_QCE"=云产品监控 " MonitorTypes []*string `json:"MonitorTypes,omitempty" name:"MonitorTypes" list` // 根据告警对象过滤 字符串模糊搜索 @@ -573,7 +1104,7 @@ type DescribeAlarmHistoriesRequest struct { // 根据告警状态过滤 ALARM=未恢复 OK=已恢复 NO_CONF=已失效 NO_DATA=数据不足,不选默认查所有 AlarmStatus []*string `json:"AlarmStatus,omitempty" name:"AlarmStatus" list` - // 根据项目ID过滤,-1=“-“项目 0=默认项目 + // 根据项目ID过滤,-1=无项目 0=默认项目 ProjectIds []*int64 `json:"ProjectIds,omitempty" name:"ProjectIds" list` // 根据实例组ID过滤 @@ -634,1534 +1165,2148 @@ func (r *DescribeAlarmHistoriesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeAllNamespacesRequest struct { +type DescribeAlarmMetricsRequest struct { *tchttp.BaseRequest - // 根据使用场景过滤 "ST_DASHBOARD"=Dashboard类型 或 "ST_ALARM"=告警类型 - SceneType *string `json:"SceneType,omitempty" name:"SceneType"` - // 固定值,为"monitor" Module *string `json:"Module,omitempty" name:"Module"` - // 根据监控类型过滤 不填默认查所有类型 "MT_QCE"=云产品监控 "MT_CUSTOM"=自定义监控 - MonitorTypes []*string `json:"MonitorTypes,omitempty" name:"MonitorTypes" list` + // 监控类型过滤 "MT_QCE"=云产品监控 + MonitorType *string `json:"MonitorType,omitempty" name:"MonitorType"` - // 根据namespace的Id过滤 不填默认查询所有 - Ids []*string `json:"Ids,omitempty" name:"Ids" list` + // 告警策略类型,由 DescribeAllNamespaces 获得,例如 cvm_device + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` } -func (r *DescribeAllNamespacesRequest) ToJsonString() string { +func (r *DescribeAlarmMetricsRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeAllNamespacesRequest) FromJsonString(s string) error { +func (r *DescribeAlarmMetricsRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeAllNamespacesResponse struct { +type DescribeAlarmMetricsResponse struct { *tchttp.BaseResponse Response *struct { - // 云产品的名字空间 - QceNamespaces *CommonNamespace `json:"QceNamespaces,omitempty" name:"QceNamespaces"` - - // 自定义监控的命名空间 - CustomNamespaces *CommonNamespace `json:"CustomNamespaces,omitempty" name:"CustomNamespaces"` + // 告警指标列表 + Metrics []*Metric `json:"Metrics,omitempty" name:"Metrics" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeAllNamespacesResponse) ToJsonString() string { +func (r *DescribeAlarmMetricsResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeAllNamespacesResponse) FromJsonString(s string) error { +func (r *DescribeAlarmMetricsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeBaseMetricsRequest struct { +type DescribeAlarmNoticeCallbacksRequest struct { *tchttp.BaseRequest - // 业务命名空间,各个云产品的业务命名空间不同。如需获取业务命名空间,请前往各产品监控指标文档,例如云服务器的命名空间,可参见 [云服务器监控指标](https://cloud.tencent.com/document/product/248/6843) - Namespace *string `json:"Namespace,omitempty" name:"Namespace"` - - // 指标名,各个云产品的指标名不同。如需获取指标名,请前往各产品监控指标文档,例如云服务器的指标名,可参见 [云服务器监控指标](https://cloud.tencent.com/document/product/248/6843) - MetricName *string `json:"MetricName,omitempty" name:"MetricName"` + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` } -func (r *DescribeBaseMetricsRequest) ToJsonString() string { +func (r *DescribeAlarmNoticeCallbacksRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeBaseMetricsRequest) FromJsonString(s string) error { +func (r *DescribeAlarmNoticeCallbacksRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeBaseMetricsResponse struct { +type DescribeAlarmNoticeCallbacksResponse struct { *tchttp.BaseResponse Response *struct { - // 查询得到的指标描述列表 - MetricSet []*MetricSet `json:"MetricSet,omitempty" name:"MetricSet" list` + // 告警回调通知 + // 注意:此字段可能返回 null,表示取不到有效值。 + URLNotices []*URLNotice `json:"URLNotices,omitempty" name:"URLNotices" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeBaseMetricsResponse) ToJsonString() string { +func (r *DescribeAlarmNoticeCallbacksResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeBaseMetricsResponse) FromJsonString(s string) error { +func (r *DescribeAlarmNoticeCallbacksResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeBasicAlarmListAlarms struct { +type DescribeAlarmNoticeRequest struct { + *tchttp.BaseRequest - // 该条告警的ID - Id *uint64 `json:"Id,omitempty" name:"Id"` + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` - // 项目ID - // 注意:此字段可能返回 null,表示取不到有效值。 - ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + // 告警通知模板 id + NoticeId *string `json:"NoticeId,omitempty" name:"NoticeId"` +} - // 项目名称 - // 注意:此字段可能返回 null,表示取不到有效值。 - ProjectName *string `json:"ProjectName,omitempty" name:"ProjectName"` +func (r *DescribeAlarmNoticeRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 告警状态ID,0表示未恢复;1表示已恢复;2,3,5表示数据不足;4表示已失效 - // 注意:此字段可能返回 null,表示取不到有效值。 - Status *int64 `json:"Status,omitempty" name:"Status"` +func (r *DescribeAlarmNoticeRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 告警状态,ALARM表示未恢复;OK表示已恢复;NO_DATA表示数据不足;NO_CONF表示已失效 - // 注意:此字段可能返回 null,表示取不到有效值。 - AlarmStatus *string `json:"AlarmStatus,omitempty" name:"AlarmStatus"` +type DescribeAlarmNoticeResponse struct { + *tchttp.BaseResponse + Response *struct { - // 策略组ID - // 注意:此字段可能返回 null,表示取不到有效值。 - GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` + // 告警通知模板详细信息 + Notice *AlarmNotice `json:"Notice,omitempty" name:"Notice"` - // 策略组名 - // 注意:此字段可能返回 null,表示取不到有效值。 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` - - // 发生时间 - // 注意:此字段可能返回 null,表示取不到有效值。 - FirstOccurTime *string `json:"FirstOccurTime,omitempty" name:"FirstOccurTime"` - - // 持续时间,单位s - // 注意:此字段可能返回 null,表示取不到有效值。 - Duration *int64 `json:"Duration,omitempty" name:"Duration"` - - // 结束时间 - // 注意:此字段可能返回 null,表示取不到有效值。 - LastOccurTime *string `json:"LastOccurTime,omitempty" name:"LastOccurTime"` - - // 告警内容 - // 注意:此字段可能返回 null,表示取不到有效值。 - Content *string `json:"Content,omitempty" name:"Content"` - - // 告警对象 - // 注意:此字段可能返回 null,表示取不到有效值。 - ObjName *string `json:"ObjName,omitempty" name:"ObjName"` - - // 告警对象ID - // 注意:此字段可能返回 null,表示取不到有效值。 - ObjId *string `json:"ObjId,omitempty" name:"ObjId"` - - // 策略类型 - // 注意:此字段可能返回 null,表示取不到有效值。 - ViewName *string `json:"ViewName,omitempty" name:"ViewName"` - - // VPC,只有CVM有 - // 注意:此字段可能返回 null,表示取不到有效值。 - Vpc *string `json:"Vpc,omitempty" name:"Vpc"` - - // 指标ID - // 注意:此字段可能返回 null,表示取不到有效值。 - MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` - - // 指标名 - // 注意:此字段可能返回 null,表示取不到有效值。 - MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - - // 告警类型,0表示指标告警,2表示产品事件告警,3表示平台事件告警 - // 注意:此字段可能返回 null,表示取不到有效值。 - AlarmType *int64 `json:"AlarmType,omitempty" name:"AlarmType"` - - // 地域 - // 注意:此字段可能返回 null,表示取不到有效值。 - Region *string `json:"Region,omitempty" name:"Region"` - - // 告警对象维度信息 - // 注意:此字段可能返回 null,表示取不到有效值。 - Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 通知方式 - // 注意:此字段可能返回 null,表示取不到有效值。 - NotifyWay []*string `json:"NotifyWay,omitempty" name:"NotifyWay" list` +func (r *DescribeAlarmNoticeResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 所属实例组信息 - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceGroup []*InstanceGroup `json:"InstanceGroup,omitempty" name:"InstanceGroup" list` +func (r *DescribeAlarmNoticeResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } -type DescribeBasicAlarmListRequest struct { +type DescribeAlarmNoticesRequest struct { *tchttp.BaseRequest - // 接口模块名,当前取值monitor + // 模块名,这里填“monitor” Module *string `json:"Module,omitempty" name:"Module"` - // 起始时间,默认一天前的时间戳 - StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` - - // 结束时间,默认当前时间戳 - EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` - - // 分页参数,每页返回的数量,取值1~100,默认20 - Limit *int64 `json:"Limit,omitempty" name:"Limit"` - - // 分页参数,页偏移量,从0开始计数,默认0 - Offset *int64 `json:"Offset,omitempty" name:"Offset"` + // 页码 最小为1 + PageNumber *int64 `json:"PageNumber,omitempty" name:"PageNumber"` - // 根据发生时间排序,取值ASC或DESC - OccurTimeOrder *string `json:"OccurTimeOrder,omitempty" name:"OccurTimeOrder"` + // 分页大小 1~200 + PageSize *int64 `json:"PageSize,omitempty" name:"PageSize"` - // 根据项目ID过滤 - ProjectIds []*int64 `json:"ProjectIds,omitempty" name:"ProjectIds" list` + // 按更新时间排序方式 ASC=正序 DESC=倒序 + Order *string `json:"Order,omitempty" name:"Order"` - // 根据策略类型过滤 - ViewNames []*string `json:"ViewNames,omitempty" name:"ViewNames" list` + // 主账号 uid 用于创建预设通知 + OwnerUid *int64 `json:"OwnerUid,omitempty" name:"OwnerUid"` - // 根据告警状态过滤 - AlarmStatus []*int64 `json:"AlarmStatus,omitempty" name:"AlarmStatus" list` + // 告警通知模板名称 用来模糊搜索 + Name *string `json:"Name,omitempty" name:"Name"` - // 根据告警对象过滤 - ObjLike *string `json:"ObjLike,omitempty" name:"ObjLike"` + // 根据接收人过滤告警通知模板需要选定通知用户类型 USER=用户 GROUP=用户组 传空=不按接收人过滤 + ReceiverType *string `json:"ReceiverType,omitempty" name:"ReceiverType"` - // 根据实例组ID过滤 - InstanceGroupIds []*int64 `json:"InstanceGroupIds,omitempty" name:"InstanceGroupIds" list` + // 接收对象列表 + UserIds []*int64 `json:"UserIds,omitempty" name:"UserIds" list` - // 根据指标名过滤 - MetricNames []*string `json:"MetricNames,omitempty" name:"MetricNames" list` + // 接收组列表 + GroupIds []*int64 `json:"GroupIds,omitempty" name:"GroupIds" list` } -func (r *DescribeBasicAlarmListRequest) ToJsonString() string { +func (r *DescribeAlarmNoticesRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeBasicAlarmListRequest) FromJsonString(s string) error { +func (r *DescribeAlarmNoticesRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeBasicAlarmListResponse struct { +type DescribeAlarmNoticesResponse struct { *tchttp.BaseResponse Response *struct { - // 告警列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - Alarms []*DescribeBasicAlarmListAlarms `json:"Alarms,omitempty" name:"Alarms" list` + // 告警通知模板总数 + TotalCount *int64 `json:"TotalCount,omitempty" name:"TotalCount"` - // 总数 - // 注意:此字段可能返回 null,表示取不到有效值。 - Total *int64 `json:"Total,omitempty" name:"Total"` + // 告警通知模板列表 + Notices []*AlarmNotice `json:"Notices,omitempty" name:"Notices" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeBasicAlarmListResponse) ToJsonString() string { +func (r *DescribeAlarmNoticesResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeBasicAlarmListResponse) FromJsonString(s string) error { +func (r *DescribeAlarmNoticesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeBindingPolicyObjectListDimension struct { +type DescribeAlarmPoliciesRequest struct { + *tchttp.BaseRequest - // 地域id - RegionId *int64 `json:"RegionId,omitempty" name:"RegionId"` + // 固定值,为"monitor" + Module *string `json:"Module,omitempty" name:"Module"` - // 地域简称 - Region *string `json:"Region,omitempty" name:"Region"` + // 页数,从 1 开始计数,默认 1 + PageNumber *int64 `json:"PageNumber,omitempty" name:"PageNumber"` - // 维度组合json字符串 - Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` + // 每页的数量,取值1~100,默认20 + PageSize *int64 `json:"PageSize,omitempty" name:"PageSize"` - // 事件维度组合json字符串 - EventDimensions *string `json:"EventDimensions,omitempty" name:"EventDimensions"` -} + // 按策略名称模糊搜索 + PolicyName *string `json:"PolicyName,omitempty" name:"PolicyName"` -type DescribeBindingPolicyObjectListInstance struct { + // 根据监控类型过滤 不选默认查所有类型 "MT_QCE"=云产品监控 + MonitorTypes []*string `json:"MonitorTypes,omitempty" name:"MonitorTypes" list` - // 对象唯一id - UniqueId *string `json:"UniqueId,omitempty" name:"UniqueId"` + // 根据命名空间过滤 + Namespaces []*string `json:"Namespaces,omitempty" name:"Namespaces" list` - // 表示对象实例的维度集合,jsonObj字符串 + // 告警对象列表 Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` - // 对象是否被屏蔽,0表示未屏蔽,1表示被屏蔽 - IsShielded *int64 `json:"IsShielded,omitempty" name:"IsShielded"` + // 根据接收人搜索 + ReceiverUids []*int64 `json:"ReceiverUids,omitempty" name:"ReceiverUids" list` - // 对象所在的地域 - Region *string `json:"Region,omitempty" name:"Region"` -} + // 根据接收组搜索 + ReceiverGroups []*int64 `json:"ReceiverGroups,omitempty" name:"ReceiverGroups" list` -type DescribeBindingPolicyObjectListInstanceGroup struct { + // 根据默认策略筛选 不传展示全部策略 DEFAULT=展示默认策略 NOT_DEFAULT=展示非默认策略 + PolicyType []*string `json:"PolicyType,omitempty" name:"PolicyType" list` - // 实例分组id - InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` + // 排序字段 + Field *string `json:"Field,omitempty" name:"Field"` - // 告警策略类型名称 - ViewName *string `json:"ViewName,omitempty" name:"ViewName"` + // 排序顺序:升序:ASC 降序:DESC + Order *string `json:"Order,omitempty" name:"Order"` - // 最后编辑uin - LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + // 项目id数组 + ProjectIds []*int64 `json:"ProjectIds,omitempty" name:"ProjectIds" list` - // 实例分组名称 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + // 告警通知id列表 + NoticeIds []*string `json:"NoticeIds,omitempty" name:"NoticeIds" list` - // 实例数量 - InstanceSum *int64 `json:"InstanceSum,omitempty" name:"InstanceSum"` + // 根据触发条件筛选 不传展示全部策略 STATIC=展示静态阈值策略 DYNAMIC=展示动态阈值策略 + RuleTypes []*string `json:"RuleTypes,omitempty" name:"RuleTypes" list` - // 更新时间 - UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + // 启停,1:启用 0:停止 + Enable []*int64 `json:"Enable,omitempty" name:"Enable" list` +} - // 创建时间 - InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` +func (r *DescribeAlarmPoliciesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 实例所在的地域集合 - // 注意:此字段可能返回 null,表示取不到有效值。 - Regions []*string `json:"Regions,omitempty" name:"Regions" list` +func (r *DescribeAlarmPoliciesRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } -type DescribeBindingPolicyObjectListRequest struct { - *tchttp.BaseRequest +type DescribeAlarmPoliciesResponse struct { + *tchttp.BaseResponse + Response *struct { - // 固定值,为"monitor" - Module *string `json:"Module,omitempty" name:"Module"` + // 策略总数 + TotalCount *int64 `json:"TotalCount,omitempty" name:"TotalCount"` - // 策略组id - GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` + // 策略数组 + Policies []*AlarmPolicy `json:"Policies,omitempty" name:"Policies" list` - // 分页参数,每页返回的数量,取值1~100,默认20 - Limit *int64 `json:"Limit,omitempty" name:"Limit"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 分页参数,页偏移量,从0开始计数,默认0 - Offset *int64 `json:"Offset,omitempty" name:"Offset"` +func (r *DescribeAlarmPoliciesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 筛选对象的维度信息 - Dimensions []*DescribeBindingPolicyObjectListDimension `json:"Dimensions,omitempty" name:"Dimensions" list` +func (r *DescribeAlarmPoliciesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } -func (r *DescribeBindingPolicyObjectListRequest) ToJsonString() string { +type DescribeAlarmPolicyRequest struct { + *tchttp.BaseRequest + + // 固定值,为"monitor" + Module *string `json:"Module,omitempty" name:"Module"` + + // 告警策略ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` +} + +func (r *DescribeAlarmPolicyRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeBindingPolicyObjectListRequest) FromJsonString(s string) error { +func (r *DescribeAlarmPolicyRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeBindingPolicyObjectListResponse struct { +type DescribeAlarmPolicyResponse struct { *tchttp.BaseResponse Response *struct { - // 绑定的对象实例列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - List []*DescribeBindingPolicyObjectListInstance `json:"List,omitempty" name:"List" list` - - // 绑定的对象实例总数 - Total *int64 `json:"Total,omitempty" name:"Total"` - - // 未屏蔽的对象实例数 - NoShieldedSum *int64 `json:"NoShieldedSum,omitempty" name:"NoShieldedSum"` - - // 绑定的实例分组信息,没有绑定实例分组则为空 - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceGroup *DescribeBindingPolicyObjectListInstanceGroup `json:"InstanceGroup,omitempty" name:"InstanceGroup"` + // 策略详情 + Policy *AlarmPolicy `json:"Policy,omitempty" name:"Policy"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeBindingPolicyObjectListResponse) ToJsonString() string { +func (r *DescribeAlarmPolicyResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeBindingPolicyObjectListResponse) FromJsonString(s string) error { +func (r *DescribeAlarmPolicyResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeMonitorTypesRequest struct { +type DescribeAllNamespacesRequest struct { *tchttp.BaseRequest + // 根据使用场景过滤 "ST_DASHBOARD"=Dashboard类型 或 "ST_ALARM"=告警类型 + SceneType *string `json:"SceneType,omitempty" name:"SceneType"` + // 固定值,为"monitor" Module *string `json:"Module,omitempty" name:"Module"` + + // 根据监控类型过滤 不填默认查所有类型 "MT_QCE"=云产品监控 + MonitorTypes []*string `json:"MonitorTypes,omitempty" name:"MonitorTypes" list` + + // 根据namespace的Id过滤 不填默认查询所有 + Ids []*string `json:"Ids,omitempty" name:"Ids" list` } -func (r *DescribeMonitorTypesRequest) ToJsonString() string { +func (r *DescribeAllNamespacesRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeMonitorTypesRequest) FromJsonString(s string) error { +func (r *DescribeAllNamespacesRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeMonitorTypesResponse struct { +type DescribeAllNamespacesResponse struct { *tchttp.BaseResponse Response *struct { - // 监控类型 - MonitorTypes []*string `json:"MonitorTypes,omitempty" name:"MonitorTypes" list` + // 云产品的告警策略类型,已废弃 + QceNamespaces *CommonNamespace `json:"QceNamespaces,omitempty" name:"QceNamespaces"` + + // 其他告警策略类型,已废弃 + CustomNamespaces *CommonNamespace `json:"CustomNamespaces,omitempty" name:"CustomNamespaces"` + + // 云产品的告警策略类型 + QceNamespacesNew []*CommonNamespace `json:"QceNamespacesNew,omitempty" name:"QceNamespacesNew" list` + + // 其他告警策略类型,暂不支持 + CustomNamespacesNew []*CommonNamespace `json:"CustomNamespacesNew,omitempty" name:"CustomNamespacesNew" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeMonitorTypesResponse) ToJsonString() string { +func (r *DescribeAllNamespacesResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeMonitorTypesResponse) FromJsonString(s string) error { +func (r *DescribeAllNamespacesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribePolicyConditionListCondition struct { +type DescribeBaseMetricsRequest struct { + *tchttp.BaseRequest - // 策略视图名称 - PolicyViewName *string `json:"PolicyViewName,omitempty" name:"PolicyViewName"` + // 业务命名空间,各个云产品的业务命名空间不同。如需获取业务命名空间,请前往各产品监控指标文档,例如云服务器的命名空间,可参见 [云服务器监控指标](https://cloud.tencent.com/document/product/248/6843) + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` - // 事件告警条件 - // 注意:此字段可能返回 null,表示取不到有效值。 - EventMetrics []*DescribePolicyConditionListEventMetric `json:"EventMetrics,omitempty" name:"EventMetrics" list` - - // 是否支持多地域 - IsSupportMultiRegion *bool `json:"IsSupportMultiRegion,omitempty" name:"IsSupportMultiRegion"` + // 指标名,各个云产品的指标名不同。如需获取指标名,请前往各产品监控指标文档,例如云服务器的指标名,可参见 [云服务器监控指标](https://cloud.tencent.com/document/product/248/6843) + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` +} - // 指标告警条件 - // 注意:此字段可能返回 null,表示取不到有效值。 - Metrics []*DescribePolicyConditionListMetric `json:"Metrics,omitempty" name:"Metrics" list` +func (r *DescribeBaseMetricsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 策略类型名称 - Name *string `json:"Name,omitempty" name:"Name"` +func (r *DescribeBaseMetricsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 排序id - SortId *int64 `json:"SortId,omitempty" name:"SortId"` +type DescribeBaseMetricsResponse struct { + *tchttp.BaseResponse + Response *struct { - // 是否支持默认策略 - SupportDefault *bool `json:"SupportDefault,omitempty" name:"SupportDefault"` + // 查询得到的指标描述列表 + MetricSet []*MetricSet `json:"MetricSet,omitempty" name:"MetricSet" list` - // 支持该策略类型的地域列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - SupportRegions []*string `json:"SupportRegions,omitempty" name:"SupportRegions" list` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` } -type DescribePolicyConditionListConfigManual struct { - - // 检测方式 - // 注意:此字段可能返回 null,表示取不到有效值。 - CalcType *DescribePolicyConditionListConfigManualCalcType `json:"CalcType,omitempty" name:"CalcType"` +func (r *DescribeBaseMetricsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 检测阈值 - // 注意:此字段可能返回 null,表示取不到有效值。 - CalcValue *DescribePolicyConditionListConfigManualCalcValue `json:"CalcValue,omitempty" name:"CalcValue"` +func (r *DescribeBaseMetricsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 持续时间 - // 注意:此字段可能返回 null,表示取不到有效值。 - ContinueTime *DescribePolicyConditionListConfigManualContinueTime `json:"ContinueTime,omitempty" name:"ContinueTime"` +type DescribeBasicAlarmListAlarms struct { - // 数据周期 - // 注意:此字段可能返回 null,表示取不到有效值。 - Period *DescribePolicyConditionListConfigManualPeriod `json:"Period,omitempty" name:"Period"` + // 该条告警的ID + Id *uint64 `json:"Id,omitempty" name:"Id"` - // 持续周期个数 + // 项目ID // 注意:此字段可能返回 null,表示取不到有效值。 - PeriodNum *DescribePolicyConditionListConfigManualPeriodNum `json:"PeriodNum,omitempty" name:"PeriodNum"` + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` - // 聚合方式 + // 项目名称 // 注意:此字段可能返回 null,表示取不到有效值。 - StatType *DescribePolicyConditionListConfigManualStatType `json:"StatType,omitempty" name:"StatType"` -} - -type DescribePolicyConditionListConfigManualCalcType struct { + ProjectName *string `json:"ProjectName,omitempty" name:"ProjectName"` - // CalcType 取值 + // 告警状态ID,0表示未恢复;1表示已恢复;2,3,5表示数据不足;4表示已失效 // 注意:此字段可能返回 null,表示取不到有效值。 - Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` - - // 是否必须 - Need *bool `json:"Need,omitempty" name:"Need"` -} - -type DescribePolicyConditionListConfigManualCalcValue struct { + Status *int64 `json:"Status,omitempty" name:"Status"` - // 默认值 + // 告警状态,ALARM表示未恢复;OK表示已恢复;NO_DATA表示数据不足;NO_CONF表示已失效 // 注意:此字段可能返回 null,表示取不到有效值。 - Default *string `json:"Default,omitempty" name:"Default"` + AlarmStatus *string `json:"AlarmStatus,omitempty" name:"AlarmStatus"` - // 固定值 + // 策略组ID // 注意:此字段可能返回 null,表示取不到有效值。 - Fixed *string `json:"Fixed,omitempty" name:"Fixed"` + GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` - // 最大值 + // 策略组名 // 注意:此字段可能返回 null,表示取不到有效值。 - Max *string `json:"Max,omitempty" name:"Max"` + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` - // 最小值 + // 发生时间 // 注意:此字段可能返回 null,表示取不到有效值。 - Min *string `json:"Min,omitempty" name:"Min"` - - // 是否必须 - Need *bool `json:"Need,omitempty" name:"Need"` -} - -type DescribePolicyConditionListConfigManualContinueTime struct { + FirstOccurTime *string `json:"FirstOccurTime,omitempty" name:"FirstOccurTime"` - // 默认持续时间,单位:秒 + // 持续时间,单位s // 注意:此字段可能返回 null,表示取不到有效值。 - Default *int64 `json:"Default,omitempty" name:"Default"` + Duration *int64 `json:"Duration,omitempty" name:"Duration"` - // 可选持续时间,单位:秒 + // 结束时间 // 注意:此字段可能返回 null,表示取不到有效值。 - Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` - - // 是否必须 - Need *bool `json:"Need,omitempty" name:"Need"` -} - -type DescribePolicyConditionListConfigManualPeriod struct { + LastOccurTime *string `json:"LastOccurTime,omitempty" name:"LastOccurTime"` - // 默认周期,单位:秒 + // 告警内容 // 注意:此字段可能返回 null,表示取不到有效值。 - Default *int64 `json:"Default,omitempty" name:"Default"` + Content *string `json:"Content,omitempty" name:"Content"` - // 可选周期,单位:秒 + // 告警对象 // 注意:此字段可能返回 null,表示取不到有效值。 - Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` - - // 是否必须 - Need *bool `json:"Need,omitempty" name:"Need"` -} - -type DescribePolicyConditionListConfigManualPeriodNum struct { + ObjName *string `json:"ObjName,omitempty" name:"ObjName"` - // 默认周期数 + // 告警对象ID // 注意:此字段可能返回 null,表示取不到有效值。 - Default *int64 `json:"Default,omitempty" name:"Default"` + ObjId *string `json:"ObjId,omitempty" name:"ObjId"` - // 可选周期数 + // 策略类型 // 注意:此字段可能返回 null,表示取不到有效值。 - Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` - - // 是否必须 - Need *bool `json:"Need,omitempty" name:"Need"` -} - -type DescribePolicyConditionListConfigManualStatType struct { + ViewName *string `json:"ViewName,omitempty" name:"ViewName"` - // 数据聚合方式,周期5秒 + // VPC,只有CVM有 // 注意:此字段可能返回 null,表示取不到有效值。 - P5 *string `json:"P5,omitempty" name:"P5"` + Vpc *string `json:"Vpc,omitempty" name:"Vpc"` - // 数据聚合方式,周期10秒 + // 指标ID // 注意:此字段可能返回 null,表示取不到有效值。 - P10 *string `json:"P10,omitempty" name:"P10"` + MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` - // 数据聚合方式,周期1分钟 + // 指标名 // 注意:此字段可能返回 null,表示取不到有效值。 - P60 *string `json:"P60,omitempty" name:"P60"` + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - // 数据聚合方式,周期5分钟 + // 告警类型,0表示指标告警,2表示产品事件告警,3表示平台事件告警 // 注意:此字段可能返回 null,表示取不到有效值。 - P300 *string `json:"P300,omitempty" name:"P300"` + AlarmType *int64 `json:"AlarmType,omitempty" name:"AlarmType"` - // 数据聚合方式,周期10分钟 + // 地域 // 注意:此字段可能返回 null,表示取不到有效值。 - P600 *string `json:"P600,omitempty" name:"P600"` + Region *string `json:"Region,omitempty" name:"Region"` - // 数据聚合方式,周期30分钟 + // 告警对象维度信息 // 注意:此字段可能返回 null,表示取不到有效值。 - P1800 *string `json:"P1800,omitempty" name:"P1800"` + Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` - // 数据聚合方式,周期1小时 + // 通知方式 // 注意:此字段可能返回 null,表示取不到有效值。 - P3600 *string `json:"P3600,omitempty" name:"P3600"` + NotifyWay []*string `json:"NotifyWay,omitempty" name:"NotifyWay" list` - // 数据聚合方式,周期1天 + // 所属实例组信息 // 注意:此字段可能返回 null,表示取不到有效值。 - P86400 *string `json:"P86400,omitempty" name:"P86400"` + InstanceGroup []*InstanceGroup `json:"InstanceGroup,omitempty" name:"InstanceGroup" list` } -type DescribePolicyConditionListEventMetric struct { +type DescribeBasicAlarmListRequest struct { + *tchttp.BaseRequest - // 事件id - EventId *int64 `json:"EventId,omitempty" name:"EventId"` + // 接口模块名,当前取值monitor + Module *string `json:"Module,omitempty" name:"Module"` - // 事件名称 - EventShowName *string `json:"EventShowName,omitempty" name:"EventShowName"` + // 起始时间,默认一天前的时间戳 + StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` - // 是否需要恢复 - NeedRecovered *bool `json:"NeedRecovered,omitempty" name:"NeedRecovered"` + // 结束时间,默认当前时间戳 + EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` - // 事件类型,预留字段,当前固定取值为2 - Type *int64 `json:"Type,omitempty" name:"Type"` -} + // 分页参数,每页返回的数量,取值1~100,默认20 + Limit *int64 `json:"Limit,omitempty" name:"Limit"` -type DescribePolicyConditionListMetric struct { + // 分页参数,页偏移量,从0开始计数,默认0 + Offset *int64 `json:"Offset,omitempty" name:"Offset"` - // 指标配置 - // 注意:此字段可能返回 null,表示取不到有效值。 - ConfigManual *DescribePolicyConditionListConfigManual `json:"ConfigManual,omitempty" name:"ConfigManual"` + // 根据发生时间排序,取值ASC或DESC + OccurTimeOrder *string `json:"OccurTimeOrder,omitempty" name:"OccurTimeOrder"` - // 指标id - MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` + // 根据项目ID过滤 + ProjectIds []*int64 `json:"ProjectIds,omitempty" name:"ProjectIds" list` - // 指标名称 - MetricShowName *string `json:"MetricShowName,omitempty" name:"MetricShowName"` + // 根据策略类型过滤 + ViewNames []*string `json:"ViewNames,omitempty" name:"ViewNames" list` - // 指标单位 - MetricUnit *string `json:"MetricUnit,omitempty" name:"MetricUnit"` -} + // 根据告警状态过滤 + AlarmStatus []*int64 `json:"AlarmStatus,omitempty" name:"AlarmStatus" list` -type DescribePolicyConditionListRequest struct { - *tchttp.BaseRequest + // 根据告警对象过滤 + ObjLike *string `json:"ObjLike,omitempty" name:"ObjLike"` - // 固定值,为"monitor" - Module *string `json:"Module,omitempty" name:"Module"` + // 根据实例组ID过滤 + InstanceGroupIds []*int64 `json:"InstanceGroupIds,omitempty" name:"InstanceGroupIds" list` + + // 根据指标名过滤 + MetricNames []*string `json:"MetricNames,omitempty" name:"MetricNames" list` } -func (r *DescribePolicyConditionListRequest) ToJsonString() string { +func (r *DescribeBasicAlarmListRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribePolicyConditionListRequest) FromJsonString(s string) error { +func (r *DescribeBasicAlarmListRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribePolicyConditionListResponse struct { +type DescribeBasicAlarmListResponse struct { *tchttp.BaseResponse Response *struct { - // 告警策略条件列表 - Conditions []*DescribePolicyConditionListCondition `json:"Conditions,omitempty" name:"Conditions" list` + // 告警列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + Alarms []*DescribeBasicAlarmListAlarms `json:"Alarms,omitempty" name:"Alarms" list` + + // 总数 + // 注意:此字段可能返回 null,表示取不到有效值。 + Total *int64 `json:"Total,omitempty" name:"Total"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribePolicyConditionListResponse) ToJsonString() string { +func (r *DescribeBasicAlarmListResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribePolicyConditionListResponse) FromJsonString(s string) error { +func (r *DescribeBasicAlarmListResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribePolicyGroupInfoCallback struct { +type DescribeBindingPolicyObjectListDimension struct { - // 用户回调接口地址 - CallbackUrl *string `json:"CallbackUrl,omitempty" name:"CallbackUrl"` + // 地域id + RegionId *int64 `json:"RegionId,omitempty" name:"RegionId"` - // 用户回调接口状态,0表示未验证,1表示已验证,2表示存在url但没有通过验证 - ValidFlag *int64 `json:"ValidFlag,omitempty" name:"ValidFlag"` + // 地域简称 + Region *string `json:"Region,omitempty" name:"Region"` - // 用户回调接口验证码 - VerifyCode *string `json:"VerifyCode,omitempty" name:"VerifyCode"` -} - -type DescribePolicyGroupInfoCondition struct { - - // 指标名称 - MetricShowName *string `json:"MetricShowName,omitempty" name:"MetricShowName"` - - // 数据聚合周期(单位秒) - Period *int64 `json:"Period,omitempty" name:"Period"` - - // 指标id - MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` - - // 阈值规则id - RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` - - // 指标单位 - Unit *string `json:"Unit,omitempty" name:"Unit"` + // 维度组合json字符串 + Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` - // 告警发送收敛类型。0连续告警,1指数告警 - AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` + // 事件维度组合json字符串 + EventDimensions *string `json:"EventDimensions,omitempty" name:"EventDimensions"` +} - // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 - AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` +type DescribeBindingPolicyObjectListInstance struct { - // 比较类型,1表示大于,2表示大于等于,3表示小于,4表示小于等于,5表示相等,6表示不相等,7表示日同比上涨,8表示日同比下降,9表示周同比上涨,10表示周同比下降,11表示周期环比上涨,12表示周期环比下降 - // 注意:此字段可能返回 null,表示取不到有效值。 - CalcType *int64 `json:"CalcType,omitempty" name:"CalcType"` + // 对象唯一id + UniqueId *string `json:"UniqueId,omitempty" name:"UniqueId"` - // 检测阈值 - // 注意:此字段可能返回 null,表示取不到有效值。 - CalcValue *string `json:"CalcValue,omitempty" name:"CalcValue"` + // 表示对象实例的维度集合,jsonObj字符串 + Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` - // 持续多长时间触发规则会告警(单位秒) - // 注意:此字段可能返回 null,表示取不到有效值。 - ContinueTime *int64 `json:"ContinueTime,omitempty" name:"ContinueTime"` + // 对象是否被屏蔽,0表示未屏蔽,1表示被屏蔽 + IsShielded *int64 `json:"IsShielded,omitempty" name:"IsShielded"` - // 告警指标名 - // 注意:此字段可能返回 null,表示取不到有效值。 - MetricName *string `json:"MetricName,omitempty" name:"MetricName"` + // 对象所在的地域 + Region *string `json:"Region,omitempty" name:"Region"` } -type DescribePolicyGroupInfoConditionTpl struct { - - // 策略组id - GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` +type DescribeBindingPolicyObjectListInstanceGroup struct { - // 策略组名称 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + // 实例分组id + InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` - // 策略类型 + // 告警策略类型名称 ViewName *string `json:"ViewName,omitempty" name:"ViewName"` - // 策略组说明 - Remark *string `json:"Remark,omitempty" name:"Remark"` - - // 最后编辑的用户uin + // 最后编辑uin LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + // 实例分组名称 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + + // 实例数量 + InstanceSum *int64 `json:"InstanceSum,omitempty" name:"InstanceSum"` + // 更新时间 - // 注意:此字段可能返回 null,表示取不到有效值。 UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` // 创建时间 - // 注意:此字段可能返回 null,表示取不到有效值。 InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` - // 是否且规则 + // 实例所在的地域集合 // 注意:此字段可能返回 null,表示取不到有效值。 - IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` + Regions []*string `json:"Regions,omitempty" name:"Regions" list` } -type DescribePolicyGroupInfoEventCondition struct { +type DescribeBindingPolicyObjectListRequest struct { + *tchttp.BaseRequest - // 事件id - EventId *int64 `json:"EventId,omitempty" name:"EventId"` + // 固定值,为"monitor" + Module *string `json:"Module,omitempty" name:"Module"` - // 事件告警规则id - RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` + // 策略组id + GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` - // 事件名称 - EventShowName *string `json:"EventShowName,omitempty" name:"EventShowName"` + // 分页参数,每页返回的数量,取值1~100,默认20 + Limit *int64 `json:"Limit,omitempty" name:"Limit"` - // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 - AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` + // 分页参数,页偏移量,从0开始计数,默认0 + Offset *int64 `json:"Offset,omitempty" name:"Offset"` - // 告警发送收敛类型。0连续告警,1指数告警 - AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` + // 筛选对象的维度信息 + Dimensions []*DescribeBindingPolicyObjectListDimension `json:"Dimensions,omitempty" name:"Dimensions" list` } -type DescribePolicyGroupInfoReceiverInfo struct { - - // 告警接收组id列表 - ReceiverGroupList []*int64 `json:"ReceiverGroupList,omitempty" name:"ReceiverGroupList" list` - - // 告警接收人id列表 - ReceiverUserList []*int64 `json:"ReceiverUserList,omitempty" name:"ReceiverUserList" list` - - // 告警时间段开始时间。范围[0,86400),作为unix时间戳转成北京时间后去掉日期,例如7200表示"10:0:0" - StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` - - // 告警时间段结束时间。含义同StartTime - EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` +func (r *DescribeBindingPolicyObjectListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 接收类型。“group”(接收组)或“user”(接收人) - ReceiverType *string `json:"ReceiverType,omitempty" name:"ReceiverType"` +func (r *DescribeBindingPolicyObjectListRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 告警通知方式。可选 "SMS","SITE","EMAIL","CALL","WECHAT" - NotifyWay []*string `json:"NotifyWay,omitempty" name:"NotifyWay" list` +type DescribeBindingPolicyObjectListResponse struct { + *tchttp.BaseResponse + Response *struct { - // 电话告警接收者uid + // 绑定的对象实例列表 // 注意:此字段可能返回 null,表示取不到有效值。 - UidList []*int64 `json:"UidList,omitempty" name:"UidList" list` - - // 电话告警轮数 - RoundNumber *int64 `json:"RoundNumber,omitempty" name:"RoundNumber"` + List []*DescribeBindingPolicyObjectListInstance `json:"List,omitempty" name:"List" list` - // 电话告警每轮间隔(秒) - RoundInterval *int64 `json:"RoundInterval,omitempty" name:"RoundInterval"` + // 绑定的对象实例总数 + Total *int64 `json:"Total,omitempty" name:"Total"` - // 电话告警对个人间隔(秒) - PersonInterval *int64 `json:"PersonInterval,omitempty" name:"PersonInterval"` + // 未屏蔽的对象实例数 + NoShieldedSum *int64 `json:"NoShieldedSum,omitempty" name:"NoShieldedSum"` - // 是否需要电话告警触达提示。0不需要,1需要 - NeedSendNotice *int64 `json:"NeedSendNotice,omitempty" name:"NeedSendNotice"` + // 绑定的实例分组信息,没有绑定实例分组则为空 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceGroup *DescribeBindingPolicyObjectListInstanceGroup `json:"InstanceGroup,omitempty" name:"InstanceGroup"` - // 电话告警通知时机。可选"OCCUR"(告警时通知),"RECOVER"(恢复时通知) - SendFor []*string `json:"SendFor,omitempty" name:"SendFor" list` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 恢复通知方式。可选"SMS" - RecoverNotify []*string `json:"RecoverNotify,omitempty" name:"RecoverNotify" list` +func (r *DescribeBindingPolicyObjectListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 告警发送语言 - // 注意:此字段可能返回 null,表示取不到有效值。 - ReceiveLanguage *string `json:"ReceiveLanguage,omitempty" name:"ReceiveLanguage"` +func (r *DescribeBindingPolicyObjectListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } -type DescribePolicyGroupInfoRequest struct { +type DescribeMonitorTypesRequest struct { *tchttp.BaseRequest - // 固定值,为"monitor" + // 模块名,固定值 monitor Module *string `json:"Module,omitempty" name:"Module"` - - // 策略组id - GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` } -func (r *DescribePolicyGroupInfoRequest) ToJsonString() string { +func (r *DescribeMonitorTypesRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribePolicyGroupInfoRequest) FromJsonString(s string) error { +func (r *DescribeMonitorTypesRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribePolicyGroupInfoResponse struct { +type DescribeMonitorTypesResponse struct { *tchttp.BaseResponse Response *struct { - // 策略组名称 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + // 监控类型,云产品监控为 MT_QCE + MonitorTypes []*string `json:"MonitorTypes,omitempty" name:"MonitorTypes" list` - // 策略组所属的项目id - ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 是否为默认策略,0表示非默认策略,1表示默认策略 - IsDefault *int64 `json:"IsDefault,omitempty" name:"IsDefault"` +func (r *DescribeMonitorTypesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 策略类型 - ViewName *string `json:"ViewName,omitempty" name:"ViewName"` +func (r *DescribeMonitorTypesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 策略说明 - Remark *string `json:"Remark,omitempty" name:"Remark"` +type DescribePolicyConditionListCondition struct { - // 策略类型名称 - ShowName *string `json:"ShowName,omitempty" name:"ShowName"` + // 策略视图名称 + PolicyViewName *string `json:"PolicyViewName,omitempty" name:"PolicyViewName"` - // 最近编辑的用户uin - LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + // 事件告警条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventMetrics []*DescribePolicyConditionListEventMetric `json:"EventMetrics,omitempty" name:"EventMetrics" list` - // 最近编辑时间 - UpdateTime *string `json:"UpdateTime,omitempty" name:"UpdateTime"` + // 是否支持多地域 + IsSupportMultiRegion *bool `json:"IsSupportMultiRegion,omitempty" name:"IsSupportMultiRegion"` - // 该策略支持的地域 - Region []*string `json:"Region,omitempty" name:"Region" list` + // 指标告警条件 + // 注意:此字段可能返回 null,表示取不到有效值。 + Metrics []*DescribePolicyConditionListMetric `json:"Metrics,omitempty" name:"Metrics" list` - // 策略类型的维度列表 - DimensionGroup []*string `json:"DimensionGroup,omitempty" name:"DimensionGroup" list` + // 策略类型名称 + Name *string `json:"Name,omitempty" name:"Name"` - // 阈值规则列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - ConditionsConfig []*DescribePolicyGroupInfoCondition `json:"ConditionsConfig,omitempty" name:"ConditionsConfig" list` + // 排序id + SortId *int64 `json:"SortId,omitempty" name:"SortId"` - // 产品事件规则列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - EventConfig []*DescribePolicyGroupInfoEventCondition `json:"EventConfig,omitempty" name:"EventConfig" list` + // 是否支持默认策略 + SupportDefault *bool `json:"SupportDefault,omitempty" name:"SupportDefault"` - // 用户接收人列表 + // 支持该策略类型的地域列表 // 注意:此字段可能返回 null,表示取不到有效值。 - ReceiverInfos []*DescribePolicyGroupInfoReceiverInfo `json:"ReceiverInfos,omitempty" name:"ReceiverInfos" list` + SupportRegions []*string `json:"SupportRegions,omitempty" name:"SupportRegions" list` +} - // 用户回调信息 +type DescribePolicyConditionListConfigManual struct { + + // 检测方式 // 注意:此字段可能返回 null,表示取不到有效值。 - Callback *DescribePolicyGroupInfoCallback `json:"Callback,omitempty" name:"Callback"` + CalcType *DescribePolicyConditionListConfigManualCalcType `json:"CalcType,omitempty" name:"CalcType"` - // 模板策略组 + // 检测阈值 // 注意:此字段可能返回 null,表示取不到有效值。 - ConditionsTemp *DescribePolicyGroupInfoConditionTpl `json:"ConditionsTemp,omitempty" name:"ConditionsTemp"` + CalcValue *DescribePolicyConditionListConfigManualCalcValue `json:"CalcValue,omitempty" name:"CalcValue"` - // 是否可以设置成默认策略 - CanSetDefault *bool `json:"CanSetDefault,omitempty" name:"CanSetDefault"` + // 持续时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + ContinueTime *DescribePolicyConditionListConfigManualContinueTime `json:"ContinueTime,omitempty" name:"ContinueTime"` - // 是否且规则 + // 数据周期 // 注意:此字段可能返回 null,表示取不到有效值。 - IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` + Period *DescribePolicyConditionListConfigManualPeriod `json:"Period,omitempty" name:"Period"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` - } `json:"Response"` + // 持续周期个数 + // 注意:此字段可能返回 null,表示取不到有效值。 + PeriodNum *DescribePolicyConditionListConfigManualPeriodNum `json:"PeriodNum,omitempty" name:"PeriodNum"` + + // 聚合方式 + // 注意:此字段可能返回 null,表示取不到有效值。 + StatType *DescribePolicyConditionListConfigManualStatType `json:"StatType,omitempty" name:"StatType"` } -func (r *DescribePolicyGroupInfoResponse) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) +type DescribePolicyConditionListConfigManualCalcType struct { + + // CalcType 取值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` + + // 是否必须 + Need *bool `json:"Need,omitempty" name:"Need"` } -func (r *DescribePolicyGroupInfoResponse) FromJsonString(s string) error { - return json.Unmarshal([]byte(s), &r) +type DescribePolicyConditionListConfigManualCalcValue struct { + + // 默认值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Default *string `json:"Default,omitempty" name:"Default"` + + // 固定值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Fixed *string `json:"Fixed,omitempty" name:"Fixed"` + + // 最大值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Max *string `json:"Max,omitempty" name:"Max"` + + // 最小值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Min *string `json:"Min,omitempty" name:"Min"` + + // 是否必须 + Need *bool `json:"Need,omitempty" name:"Need"` } -type DescribePolicyGroupListGroup struct { +type DescribePolicyConditionListConfigManualContinueTime struct { - // 策略组id - GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` + // 默认持续时间,单位:秒 + // 注意:此字段可能返回 null,表示取不到有效值。 + Default *int64 `json:"Default,omitempty" name:"Default"` - // 策略组名称 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + // 可选持续时间,单位:秒 + // 注意:此字段可能返回 null,表示取不到有效值。 + Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` - // 是否开启 - IsOpen *bool `json:"IsOpen,omitempty" name:"IsOpen"` + // 是否必须 + Need *bool `json:"Need,omitempty" name:"Need"` +} - // 策略视图名称 - ViewName *string `json:"ViewName,omitempty" name:"ViewName"` +type DescribePolicyConditionListConfigManualPeriod struct { - // 最近编辑的用户uin - LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + // 默认周期,单位:秒 + // 注意:此字段可能返回 null,表示取不到有效值。 + Default *int64 `json:"Default,omitempty" name:"Default"` - // 最后修改时间 - UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + // 可选周期,单位:秒 + // 注意:此字段可能返回 null,表示取不到有效值。 + Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` - // 创建时间 - InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` + // 是否必须 + Need *bool `json:"Need,omitempty" name:"Need"` +} - // 策略组绑定的实例数 - UseSum *int64 `json:"UseSum,omitempty" name:"UseSum"` +type DescribePolicyConditionListConfigManualPeriodNum struct { - // 策略组绑定的未屏蔽实例数 - NoShieldedSum *int64 `json:"NoShieldedSum,omitempty" name:"NoShieldedSum"` + // 默认周期数 + // 注意:此字段可能返回 null,表示取不到有效值。 + Default *int64 `json:"Default,omitempty" name:"Default"` - // 是否为默认策略,0表示非默认策略,1表示默认策略 - IsDefault *int64 `json:"IsDefault,omitempty" name:"IsDefault"` + // 可选周期数 + // 注意:此字段可能返回 null,表示取不到有效值。 + Keys []*int64 `json:"Keys,omitempty" name:"Keys" list` - // 是否可以设置成默认策略 - CanSetDefault *bool `json:"CanSetDefault,omitempty" name:"CanSetDefault"` + // 是否必须 + Need *bool `json:"Need,omitempty" name:"Need"` +} - // 父策略组id - ParentGroupId *int64 `json:"ParentGroupId,omitempty" name:"ParentGroupId"` +type DescribePolicyConditionListConfigManualStatType struct { - // 策略组备注 - Remark *string `json:"Remark,omitempty" name:"Remark"` + // 数据聚合方式,周期5秒 + // 注意:此字段可能返回 null,表示取不到有效值。 + P5 *string `json:"P5,omitempty" name:"P5"` - // 策略组所属项目id - ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + // 数据聚合方式,周期10秒 + // 注意:此字段可能返回 null,表示取不到有效值。 + P10 *string `json:"P10,omitempty" name:"P10"` - // 阈值规则列表 + // 数据聚合方式,周期1分钟 // 注意:此字段可能返回 null,表示取不到有效值。 - Conditions []*DescribePolicyGroupInfoCondition `json:"Conditions,omitempty" name:"Conditions" list` + P60 *string `json:"P60,omitempty" name:"P60"` - // 产品事件规则列表 + // 数据聚合方式,周期5分钟 // 注意:此字段可能返回 null,表示取不到有效值。 - EventConditions []*DescribePolicyGroupInfoEventCondition `json:"EventConditions,omitempty" name:"EventConditions" list` + P300 *string `json:"P300,omitempty" name:"P300"` - // 用户接收人列表 + // 数据聚合方式,周期10分钟 // 注意:此字段可能返回 null,表示取不到有效值。 - ReceiverInfos []*DescribePolicyGroupInfoReceiverInfo `json:"ReceiverInfos,omitempty" name:"ReceiverInfos" list` + P600 *string `json:"P600,omitempty" name:"P600"` - // 模板策略组 + // 数据聚合方式,周期30分钟 // 注意:此字段可能返回 null,表示取不到有效值。 - ConditionsTemp *DescribePolicyGroupInfoConditionTpl `json:"ConditionsTemp,omitempty" name:"ConditionsTemp"` + P1800 *string `json:"P1800,omitempty" name:"P1800"` - // 策略组绑定的实例组信息 + // 数据聚合方式,周期1小时 // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceGroup *DescribePolicyGroupListGroupInstanceGroup `json:"InstanceGroup,omitempty" name:"InstanceGroup"` + P3600 *string `json:"P3600,omitempty" name:"P3600"` - // 且或规则标识, 0表示或规则(任意一条规则满足阈值条件就告警), 1表示且规则(所有规则都满足阈值条件才告警) + // 数据聚合方式,周期1天 // 注意:此字段可能返回 null,表示取不到有效值。 - IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` + P86400 *string `json:"P86400,omitempty" name:"P86400"` } -type DescribePolicyGroupListGroupInstanceGroup struct { +type DescribePolicyConditionListEventMetric struct { - // 实例分组名称id - InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` + // 事件id + EventId *int64 `json:"EventId,omitempty" name:"EventId"` - // 策略类型视图名称 - ViewName *string `json:"ViewName,omitempty" name:"ViewName"` + // 事件名称 + EventShowName *string `json:"EventShowName,omitempty" name:"EventShowName"` - // 最近编辑的用户uin - LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + // 是否需要恢复 + NeedRecovered *bool `json:"NeedRecovered,omitempty" name:"NeedRecovered"` - // 实例分组名称 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + // 事件类型,预留字段,当前固定取值为2 + Type *int64 `json:"Type,omitempty" name:"Type"` +} - // 实例数量 - InstanceSum *int64 `json:"InstanceSum,omitempty" name:"InstanceSum"` +type DescribePolicyConditionListMetric struct { - // 更新时间 - UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + // 指标配置 + // 注意:此字段可能返回 null,表示取不到有效值。 + ConfigManual *DescribePolicyConditionListConfigManual `json:"ConfigManual,omitempty" name:"ConfigManual"` - // 创建时间 - InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` + // 指标id + MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` + + // 指标名称 + MetricShowName *string `json:"MetricShowName,omitempty" name:"MetricShowName"` + + // 指标单位 + MetricUnit *string `json:"MetricUnit,omitempty" name:"MetricUnit"` } -type DescribePolicyGroupListRequest struct { +type DescribePolicyConditionListRequest struct { *tchttp.BaseRequest // 固定值,为"monitor" Module *string `json:"Module,omitempty" name:"Module"` +} - // 分页参数,每页返回的数量,取值1~100 - Limit *int64 `json:"Limit,omitempty" name:"Limit"` +func (r *DescribePolicyConditionListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 分页参数,页偏移量,从0开始计数 - Offset *int64 `json:"Offset,omitempty" name:"Offset"` +func (r *DescribePolicyConditionListRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 按策略名搜索 - Like *string `json:"Like,omitempty" name:"Like"` +type DescribePolicyConditionListResponse struct { + *tchttp.BaseResponse + Response *struct { - // 实例分组id - InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` + // 告警策略条件列表 + Conditions []*DescribePolicyConditionListCondition `json:"Conditions,omitempty" name:"Conditions" list` - // 按更新时间排序, asc 或者 desc - UpdateTimeOrder *string `json:"UpdateTimeOrder,omitempty" name:"UpdateTimeOrder"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 项目id列表 - ProjectIds []*int64 `json:"ProjectIds,omitempty" name:"ProjectIds" list` +func (r *DescribePolicyConditionListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 告警策略类型列表 - ViewNames []*string `json:"ViewNames,omitempty" name:"ViewNames" list` +func (r *DescribePolicyConditionListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 是否过滤无接收人策略组, 1表示过滤, 0表示不过滤 - FilterUnuseReceiver *int64 `json:"FilterUnuseReceiver,omitempty" name:"FilterUnuseReceiver"` +type DescribePolicyGroupInfoCallback struct { - // 过滤条件, 接收组列表 - Receivers []*string `json:"Receivers,omitempty" name:"Receivers" list` + // 用户回调接口地址 + CallbackUrl *string `json:"CallbackUrl,omitempty" name:"CallbackUrl"` - // 过滤条件, 接收人列表 - ReceiverUserList []*string `json:"ReceiverUserList,omitempty" name:"ReceiverUserList" list` + // 用户回调接口状态,0表示未验证,1表示已验证,2表示存在url但没有通过验证 + ValidFlag *int64 `json:"ValidFlag,omitempty" name:"ValidFlag"` - // 维度组合字段(json字符串), 例如[[{"name":"unInstanceId","value":"ins-6e4b2aaa"}]] - Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` + // 用户回调接口验证码 + VerifyCode *string `json:"VerifyCode,omitempty" name:"VerifyCode"` +} - // 模板策略组id, 多个id用逗号分隔 - ConditionTempGroupId *string `json:"ConditionTempGroupId,omitempty" name:"ConditionTempGroupId"` +type DescribePolicyGroupInfoCondition struct { - // 过滤条件, 接收人或者接收组, user表示接收人, group表示接收组 - ReceiverType *string `json:"ReceiverType,omitempty" name:"ReceiverType"` + // 指标名称 + MetricShowName *string `json:"MetricShowName,omitempty" name:"MetricShowName"` - // 过滤条件,告警策略是否已启动或停止 - IsOpen *bool `json:"IsOpen,omitempty" name:"IsOpen"` + // 数据聚合周期(单位秒) + Period *int64 `json:"Period,omitempty" name:"Period"` + + // 指标id + MetricId *int64 `json:"MetricId,omitempty" name:"MetricId"` + + // 阈值规则id + RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` + + // 指标单位 + Unit *string `json:"Unit,omitempty" name:"Unit"` + + // 告警发送收敛类型。0连续告警,1指数告警 + AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` + + // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 + AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` + + // 比较类型,1表示大于,2表示大于等于,3表示小于,4表示小于等于,5表示相等,6表示不相等,7表示日同比上涨,8表示日同比下降,9表示周同比上涨,10表示周同比下降,11表示周期环比上涨,12表示周期环比下降 + // 注意:此字段可能返回 null,表示取不到有效值。 + CalcType *int64 `json:"CalcType,omitempty" name:"CalcType"` + + // 检测阈值 + // 注意:此字段可能返回 null,表示取不到有效值。 + CalcValue *string `json:"CalcValue,omitempty" name:"CalcValue"` + + // 持续多长时间触发规则会告警(单位秒) + // 注意:此字段可能返回 null,表示取不到有效值。 + ContinueTime *int64 `json:"ContinueTime,omitempty" name:"ContinueTime"` + + // 告警指标名 + // 注意:此字段可能返回 null,表示取不到有效值。 + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` +} + +type DescribePolicyGroupInfoConditionTpl struct { + + // 策略组id + GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` + + // 策略组名称 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + + // 策略类型 + ViewName *string `json:"ViewName,omitempty" name:"ViewName"` + + // 策略组说明 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 最后编辑的用户uin + LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + + // 更新时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 创建时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` + + // 是否且规则 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` +} + +type DescribePolicyGroupInfoEventCondition struct { + + // 事件id + EventId *int64 `json:"EventId,omitempty" name:"EventId"` + + // 事件告警规则id + RuleId *int64 `json:"RuleId,omitempty" name:"RuleId"` + + // 事件名称 + EventShowName *string `json:"EventShowName,omitempty" name:"EventShowName"` + + // 告警发送周期单位秒。<0 不触发, 0 只触发一次, >0 每隔triggerTime秒触发一次 + AlarmNotifyPeriod *int64 `json:"AlarmNotifyPeriod,omitempty" name:"AlarmNotifyPeriod"` + + // 告警发送收敛类型。0连续告警,1指数告警 + AlarmNotifyType *int64 `json:"AlarmNotifyType,omitempty" name:"AlarmNotifyType"` +} + +type DescribePolicyGroupInfoReceiverInfo struct { + + // 告警接收组id列表 + ReceiverGroupList []*int64 `json:"ReceiverGroupList,omitempty" name:"ReceiverGroupList" list` + + // 告警接收人id列表 + ReceiverUserList []*int64 `json:"ReceiverUserList,omitempty" name:"ReceiverUserList" list` + + // 告警时间段开始时间。范围[0,86400),作为unix时间戳转成北京时间后去掉日期,例如7200表示"10:0:0" + StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` + + // 告警时间段结束时间。含义同StartTime + EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` + + // 接收类型。“group”(接收组)或“user”(接收人) + ReceiverType *string `json:"ReceiverType,omitempty" name:"ReceiverType"` + + // 告警通知方式。可选 "SMS","SITE","EMAIL","CALL","WECHAT" + NotifyWay []*string `json:"NotifyWay,omitempty" name:"NotifyWay" list` + + // 电话告警接收者uid + // 注意:此字段可能返回 null,表示取不到有效值。 + UidList []*int64 `json:"UidList,omitempty" name:"UidList" list` + + // 电话告警轮数 + RoundNumber *int64 `json:"RoundNumber,omitempty" name:"RoundNumber"` + + // 电话告警每轮间隔(秒) + RoundInterval *int64 `json:"RoundInterval,omitempty" name:"RoundInterval"` + + // 电话告警对个人间隔(秒) + PersonInterval *int64 `json:"PersonInterval,omitempty" name:"PersonInterval"` + + // 是否需要电话告警触达提示。0不需要,1需要 + NeedSendNotice *int64 `json:"NeedSendNotice,omitempty" name:"NeedSendNotice"` + + // 电话告警通知时机。可选"OCCUR"(告警时通知),"RECOVER"(恢复时通知) + SendFor []*string `json:"SendFor,omitempty" name:"SendFor" list` + + // 恢复通知方式。可选"SMS" + RecoverNotify []*string `json:"RecoverNotify,omitempty" name:"RecoverNotify" list` + + // 告警发送语言 + // 注意:此字段可能返回 null,表示取不到有效值。 + ReceiveLanguage *string `json:"ReceiveLanguage,omitempty" name:"ReceiveLanguage"` +} + +type DescribePolicyGroupInfoRequest struct { + *tchttp.BaseRequest + + // 固定值,为"monitor" + Module *string `json:"Module,omitempty" name:"Module"` + + // 策略组id + GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` +} + +func (r *DescribePolicyGroupInfoRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribePolicyGroupInfoRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribePolicyGroupInfoResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 策略组名称 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + + // 策略组所属的项目id + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 是否为默认策略,0表示非默认策略,1表示默认策略 + IsDefault *int64 `json:"IsDefault,omitempty" name:"IsDefault"` + + // 策略类型 + ViewName *string `json:"ViewName,omitempty" name:"ViewName"` + + // 策略说明 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 策略类型名称 + ShowName *string `json:"ShowName,omitempty" name:"ShowName"` + + // 最近编辑的用户uin + LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + + // 最近编辑时间 + UpdateTime *string `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 该策略支持的地域 + Region []*string `json:"Region,omitempty" name:"Region" list` + + // 策略类型的维度列表 + DimensionGroup []*string `json:"DimensionGroup,omitempty" name:"DimensionGroup" list` + + // 阈值规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + ConditionsConfig []*DescribePolicyGroupInfoCondition `json:"ConditionsConfig,omitempty" name:"ConditionsConfig" list` + + // 产品事件规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventConfig []*DescribePolicyGroupInfoEventCondition `json:"EventConfig,omitempty" name:"EventConfig" list` + + // 用户接收人列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + ReceiverInfos []*DescribePolicyGroupInfoReceiverInfo `json:"ReceiverInfos,omitempty" name:"ReceiverInfos" list` + + // 用户回调信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Callback *DescribePolicyGroupInfoCallback `json:"Callback,omitempty" name:"Callback"` + + // 模板策略组 + // 注意:此字段可能返回 null,表示取不到有效值。 + ConditionsTemp *DescribePolicyGroupInfoConditionTpl `json:"ConditionsTemp,omitempty" name:"ConditionsTemp"` + + // 是否可以设置成默认策略 + CanSetDefault *bool `json:"CanSetDefault,omitempty" name:"CanSetDefault"` + + // 是否且规则 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribePolicyGroupInfoResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribePolicyGroupInfoResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribePolicyGroupListGroup struct { + + // 策略组id + GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` + + // 策略组名称 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + + // 是否开启 + IsOpen *bool `json:"IsOpen,omitempty" name:"IsOpen"` + + // 策略视图名称 + ViewName *string `json:"ViewName,omitempty" name:"ViewName"` + + // 最近编辑的用户uin + LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + + // 最后修改时间 + UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 创建时间 + InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` + + // 策略组绑定的实例数 + UseSum *int64 `json:"UseSum,omitempty" name:"UseSum"` + + // 策略组绑定的未屏蔽实例数 + NoShieldedSum *int64 `json:"NoShieldedSum,omitempty" name:"NoShieldedSum"` + + // 是否为默认策略,0表示非默认策略,1表示默认策略 + IsDefault *int64 `json:"IsDefault,omitempty" name:"IsDefault"` + + // 是否可以设置成默认策略 + CanSetDefault *bool `json:"CanSetDefault,omitempty" name:"CanSetDefault"` + + // 父策略组id + ParentGroupId *int64 `json:"ParentGroupId,omitempty" name:"ParentGroupId"` + + // 策略组备注 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 策略组所属项目id + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 阈值规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + Conditions []*DescribePolicyGroupInfoCondition `json:"Conditions,omitempty" name:"Conditions" list` + + // 产品事件规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventConditions []*DescribePolicyGroupInfoEventCondition `json:"EventConditions,omitempty" name:"EventConditions" list` + + // 用户接收人列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + ReceiverInfos []*DescribePolicyGroupInfoReceiverInfo `json:"ReceiverInfos,omitempty" name:"ReceiverInfos" list` + + // 模板策略组 + // 注意:此字段可能返回 null,表示取不到有效值。 + ConditionsTemp *DescribePolicyGroupInfoConditionTpl `json:"ConditionsTemp,omitempty" name:"ConditionsTemp"` + + // 策略组绑定的实例组信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceGroup *DescribePolicyGroupListGroupInstanceGroup `json:"InstanceGroup,omitempty" name:"InstanceGroup"` + + // 且或规则标识, 0表示或规则(任意一条规则满足阈值条件就告警), 1表示且规则(所有规则都满足阈值条件才告警) + // 注意:此字段可能返回 null,表示取不到有效值。 + IsUnionRule *int64 `json:"IsUnionRule,omitempty" name:"IsUnionRule"` +} + +type DescribePolicyGroupListGroupInstanceGroup struct { + + // 实例分组名称id + InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` + + // 策略类型视图名称 + ViewName *string `json:"ViewName,omitempty" name:"ViewName"` + + // 最近编辑的用户uin + LastEditUin *string `json:"LastEditUin,omitempty" name:"LastEditUin"` + + // 实例分组名称 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + + // 实例数量 + InstanceSum *int64 `json:"InstanceSum,omitempty" name:"InstanceSum"` + + // 更新时间 + UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 创建时间 + InsertTime *int64 `json:"InsertTime,omitempty" name:"InsertTime"` +} + +type DescribePolicyGroupListRequest struct { + *tchttp.BaseRequest + + // 固定值,为"monitor" + Module *string `json:"Module,omitempty" name:"Module"` + + // 分页参数,每页返回的数量,取值1~100 + Limit *int64 `json:"Limit,omitempty" name:"Limit"` + + // 分页参数,页偏移量,从0开始计数 + Offset *int64 `json:"Offset,omitempty" name:"Offset"` + + // 按策略名搜索 + Like *string `json:"Like,omitempty" name:"Like"` + + // 实例分组id + InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` + + // 按更新时间排序, asc 或者 desc + UpdateTimeOrder *string `json:"UpdateTimeOrder,omitempty" name:"UpdateTimeOrder"` + + // 项目id列表 + ProjectIds []*int64 `json:"ProjectIds,omitempty" name:"ProjectIds" list` + + // 告警策略类型列表 + ViewNames []*string `json:"ViewNames,omitempty" name:"ViewNames" list` + + // 是否过滤无接收人策略组, 1表示过滤, 0表示不过滤 + FilterUnuseReceiver *int64 `json:"FilterUnuseReceiver,omitempty" name:"FilterUnuseReceiver"` + + // 过滤条件, 接收组列表 + Receivers []*string `json:"Receivers,omitempty" name:"Receivers" list` + + // 过滤条件, 接收人列表 + ReceiverUserList []*string `json:"ReceiverUserList,omitempty" name:"ReceiverUserList" list` + + // 维度组合字段(json字符串), 例如[[{"name":"unInstanceId","value":"ins-6e4b2aaa"}]] + Dimensions *string `json:"Dimensions,omitempty" name:"Dimensions"` + + // 模板策略组id, 多个id用逗号分隔 + ConditionTempGroupId *string `json:"ConditionTempGroupId,omitempty" name:"ConditionTempGroupId"` + + // 过滤条件, 接收人或者接收组, user表示接收人, group表示接收组 + ReceiverType *string `json:"ReceiverType,omitempty" name:"ReceiverType"` + + // 过滤条件,告警策略是否已启动或停止 + IsOpen *bool `json:"IsOpen,omitempty" name:"IsOpen"` +} + +func (r *DescribePolicyGroupListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribePolicyGroupListRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribePolicyGroupListResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 策略组列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + GroupList []*DescribePolicyGroupListGroup `json:"GroupList,omitempty" name:"GroupList" list` + + // 策略组总数 + Total *int64 `json:"Total,omitempty" name:"Total"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribePolicyGroupListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribePolicyGroupListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeProductEventListDimensions struct { + + // 维度名 + Name *string `json:"Name,omitempty" name:"Name"` + + // 维度值 + Value *string `json:"Value,omitempty" name:"Value"` +} + +type DescribeProductEventListEvents struct { + + // 事件ID + // 注意:此字段可能返回 null,表示取不到有效值。 + EventId *int64 `json:"EventId,omitempty" name:"EventId"` + + // 事件中文名 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventCName *string `json:"EventCName,omitempty" name:"EventCName"` + + // 事件英文名 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventEName *string `json:"EventEName,omitempty" name:"EventEName"` + + // 事件简称 + // 注意:此字段可能返回 null,表示取不到有效值。 + EventName *string `json:"EventName,omitempty" name:"EventName"` + + // 产品中文名 + // 注意:此字段可能返回 null,表示取不到有效值。 + ProductCName *string `json:"ProductCName,omitempty" name:"ProductCName"` + + // 产品英文名 + // 注意:此字段可能返回 null,表示取不到有效值。 + ProductEName *string `json:"ProductEName,omitempty" name:"ProductEName"` + + // 产品简称 + // 注意:此字段可能返回 null,表示取不到有效值。 + ProductName *string `json:"ProductName,omitempty" name:"ProductName"` + + // 实例ID + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 实例名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceName *string `json:"InstanceName,omitempty" name:"InstanceName"` + + // 项目ID + // 注意:此字段可能返回 null,表示取不到有效值。 + ProjectId *string `json:"ProjectId,omitempty" name:"ProjectId"` + + // 地域 + // 注意:此字段可能返回 null,表示取不到有效值。 + Region *string `json:"Region,omitempty" name:"Region"` + + // 状态 + // 注意:此字段可能返回 null,表示取不到有效值。 + Status *string `json:"Status,omitempty" name:"Status"` + + // 是否支持告警 + // 注意:此字段可能返回 null,表示取不到有效值。 + SupportAlarm *int64 `json:"SupportAlarm,omitempty" name:"SupportAlarm"` + + // 事件类型 + // 注意:此字段可能返回 null,表示取不到有效值。 + Type *string `json:"Type,omitempty" name:"Type"` + + // 开始时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` + + // 更新时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 实例对象信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Dimensions []*DescribeProductEventListEventsDimensions `json:"Dimensions,omitempty" name:"Dimensions" list` + + // 实例对象附加信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + AdditionMsg []*DescribeProductEventListEventsDimensions `json:"AdditionMsg,omitempty" name:"AdditionMsg" list` + + // 是否配置告警 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsAlarmConfig *int64 `json:"IsAlarmConfig,omitempty" name:"IsAlarmConfig"` + + // 策略信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + GroupInfo []*DescribeProductEventListEventsGroupInfo `json:"GroupInfo,omitempty" name:"GroupInfo" list` +} + +type DescribeProductEventListEventsDimensions struct { + + // 维度名(英文) + // 注意:此字段可能返回 null,表示取不到有效值。 + Key *string `json:"Key,omitempty" name:"Key"` + + // 维度名(中文) + // 注意:此字段可能返回 null,表示取不到有效值。 + Name *string `json:"Name,omitempty" name:"Name"` + + // 维度值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Value *string `json:"Value,omitempty" name:"Value"` +} + +type DescribeProductEventListEventsGroupInfo struct { + + // 策略ID + // 注意:此字段可能返回 null,表示取不到有效值。 + GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` + + // 策略名 + // 注意:此字段可能返回 null,表示取不到有效值。 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` +} + +type DescribeProductEventListOverView struct { + + // 状态变更的事件数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + StatusChangeAmount *int64 `json:"StatusChangeAmount,omitempty" name:"StatusChangeAmount"` + + // 告警状态未配置的事件数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnConfigAlarmAmount *int64 `json:"UnConfigAlarmAmount,omitempty" name:"UnConfigAlarmAmount"` + + // 异常事件数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnNormalEventAmount *int64 `json:"UnNormalEventAmount,omitempty" name:"UnNormalEventAmount"` + + // 未恢复的事件数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnRecoverAmount *int64 `json:"UnRecoverAmount,omitempty" name:"UnRecoverAmount"` +} + +type DescribeProductEventListRequest struct { + *tchttp.BaseRequest + + // 接口模块名,固定值"monitor" + Module *string `json:"Module,omitempty" name:"Module"` + + // 产品类型过滤,比如"cvm"表示云服务器 + ProductName []*string `json:"ProductName,omitempty" name:"ProductName" list` + + // 事件名称过滤,比如"guest_reboot"表示机器重启 + EventName []*string `json:"EventName,omitempty" name:"EventName" list` + + // 影响对象,比如ins-19708ino + InstanceId []*string `json:"InstanceId,omitempty" name:"InstanceId" list` + + // 维度过滤,比如外网IP:10.0.0.1 + Dimensions []*DescribeProductEventListDimensions `json:"Dimensions,omitempty" name:"Dimensions" list` + + // 地域过滤,比如gz + RegionList []*string `json:"RegionList,omitempty" name:"RegionList" list` + + // 事件类型过滤,取值范围["status_change","abnormal"],分别表示状态变更、异常事件 + Type []*string `json:"Type,omitempty" name:"Type" list` + + // 事件状态过滤,取值范围["recover","alarm","-"],分别表示已恢复、未恢复、无状态 + Status []*string `json:"Status,omitempty" name:"Status" list` + + // 项目ID过滤 + Project []*string `json:"Project,omitempty" name:"Project" list` + + // 告警状态配置过滤,1表示已配置,0表示未配置 + IsAlarmConfig *int64 `json:"IsAlarmConfig,omitempty" name:"IsAlarmConfig"` + + // 按更新时间排序,ASC表示升序,DESC表示降序,默认DESC + TimeOrder *string `json:"TimeOrder,omitempty" name:"TimeOrder"` + + // 起始时间,默认一天前的时间戳 + StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` + + // 结束时间,默认当前时间戳 + EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` + + // 页偏移量,默认0 + Offset *int64 `json:"Offset,omitempty" name:"Offset"` + + // 每页返回的数量,默认20 + Limit *int64 `json:"Limit,omitempty" name:"Limit"` +} + +func (r *DescribeProductEventListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeProductEventListRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeProductEventListResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 事件列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + Events []*DescribeProductEventListEvents `json:"Events,omitempty" name:"Events" list` + + // 事件统计 + OverView *DescribeProductEventListOverView `json:"OverView,omitempty" name:"OverView"` + + // 事件总数 + // 注意:此字段可能返回 null,表示取不到有效值。 + Total *int64 `json:"Total,omitempty" name:"Total"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeProductEventListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeProductEventListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeProductListRequest struct { + *tchttp.BaseRequest + + // 固定传值monitor + Module *string `json:"Module,omitempty" name:"Module"` + + // 排序方式:DESC/ASC(区分大小写),默认值DESC + Order *string `json:"Order,omitempty" name:"Order"` + + // 分页查询的偏移量,默认值0 + Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + + // 分页查询的每页数据量,默认值20 + Limit *uint64 `json:"Limit,omitempty" name:"Limit"` +} + +func (r *DescribeProductListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeProductListRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeProductListResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 产品信息列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + ProductList []*ProductSimple `json:"ProductList,omitempty" name:"ProductList" list` + + // 产品总数 + // 注意:此字段可能返回 null,表示取不到有效值。 + TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeProductListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeProductListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeServiceDiscoveryRequest struct { + *tchttp.BaseRequest + + // Prometheus 实例 ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + //
  • 类型是 TKE,为对应的腾讯云容器服务集群 ID
  • + KubeClusterId *string `json:"KubeClusterId,omitempty" name:"KubeClusterId"` + + // 用户 Kubernetes 集群类型: + //
  • 1 = 容器服务集群(TKE)
  • + KubeType *int64 `json:"KubeType,omitempty" name:"KubeType"` } -func (r *DescribePolicyGroupListRequest) ToJsonString() string { +func (r *DescribeServiceDiscoveryRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribePolicyGroupListRequest) FromJsonString(s string) error { +func (r *DescribeServiceDiscoveryRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribePolicyGroupListResponse struct { +type DescribeServiceDiscoveryResponse struct { *tchttp.BaseResponse Response *struct { - // 策略组列表 + // 返回服务发现列表信息 // 注意:此字段可能返回 null,表示取不到有效值。 - GroupList []*DescribePolicyGroupListGroup `json:"GroupList,omitempty" name:"GroupList" list` - - // 策略组总数 - Total *int64 `json:"Total,omitempty" name:"Total"` + ServiceDiscoverySet []*ServiceDiscoveryItem `json:"ServiceDiscoverySet,omitempty" name:"ServiceDiscoverySet" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribePolicyGroupListResponse) ToJsonString() string { +func (r *DescribeServiceDiscoveryResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribePolicyGroupListResponse) FromJsonString(s string) error { +func (r *DescribeServiceDiscoveryResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeProductEventListDimensions struct { +type Dimension struct { - // 维度名 + // 实例维度名称 Name *string `json:"Name,omitempty" name:"Name"` - // 维度值 + // 实例维度值 Value *string `json:"Value,omitempty" name:"Value"` } -type DescribeProductEventListEvents struct { +type DimensionsDesc struct { - // 事件ID - // 注意:此字段可能返回 null,表示取不到有效值。 - EventId *int64 `json:"EventId,omitempty" name:"EventId"` + // 维度名数组 + Dimensions []*string `json:"Dimensions,omitempty" name:"Dimensions" list` +} - // 事件中文名 - // 注意:此字段可能返回 null,表示取不到有效值。 - EventCName *string `json:"EventCName,omitempty" name:"EventCName"` +type GetMonitorDataRequest struct { + *tchttp.BaseRequest - // 事件英文名 - // 注意:此字段可能返回 null,表示取不到有效值。 - EventEName *string `json:"EventEName,omitempty" name:"EventEName"` + // 命名空间,如QCE/CVM。各个云产品的详细命名空间说明请参阅各个产品[监控指标](https://cloud.tencent.com/document/product/248/6140)文档 + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` - // 事件简称 - // 注意:此字段可能返回 null,表示取不到有效值。 - EventName *string `json:"EventName,omitempty" name:"EventName"` + // 指标名称,如CPUUsage。各个云产品的详细指标说明请参阅各个产品[监控指标](https://cloud.tencent.com/document/product/248/6140)文档,对应的指标英文名即为MetricName + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - // 产品中文名 - // 注意:此字段可能返回 null,表示取不到有效值。 - ProductCName *string `json:"ProductCName,omitempty" name:"ProductCName"` + // 实例对象的维度组合,格式为key-value键值对形式的集合。如[{"Name":"InstanceId","Value":"ins-j0hk02zo"}]。各个云产品的维度请参阅各个产品[监控指标](https://cloud.tencent.com/document/product/248/6140)文档,对应的维度列即为维度组合的key,value为key对应的值 + Instances []*Instance `json:"Instances,omitempty" name:"Instances" list` - // 产品英文名 - // 注意:此字段可能返回 null,表示取不到有效值。 - ProductEName *string `json:"ProductEName,omitempty" name:"ProductEName"` + // 监控统计周期,如60。默认为取值为300,单位为s。每个指标支持的统计周期不一定相同,各个云产品支持的统计周期请参阅各个产品[监控指标](https://cloud.tencent.com/document/product/248/6140)文档,对应的统计周期列即为支持的统计周期 + Period *uint64 `json:"Period,omitempty" name:"Period"` - // 产品简称 - // 注意:此字段可能返回 null,表示取不到有效值。 - ProductName *string `json:"ProductName,omitempty" name:"ProductName"` + // 起始时间,如2018-09-22T19:51:23+08:00 + StartTime *string `json:"StartTime,omitempty" name:"StartTime"` - // 实例ID - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + // 结束时间,如2018-09-22T20:51:23+08:00,默认为当前时间。 EndTime不能小于StartTime + EndTime *string `json:"EndTime,omitempty" name:"EndTime"` +} - // 实例名称 - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceName *string `json:"InstanceName,omitempty" name:"InstanceName"` +func (r *GetMonitorDataRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 项目ID - // 注意:此字段可能返回 null,表示取不到有效值。 - ProjectId *string `json:"ProjectId,omitempty" name:"ProjectId"` +func (r *GetMonitorDataRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 地域 - // 注意:此字段可能返回 null,表示取不到有效值。 - Region *string `json:"Region,omitempty" name:"Region"` +type GetMonitorDataResponse struct { + *tchttp.BaseResponse + Response *struct { - // 状态 - // 注意:此字段可能返回 null,表示取不到有效值。 - Status *string `json:"Status,omitempty" name:"Status"` + // 统计周期 + Period *uint64 `json:"Period,omitempty" name:"Period"` - // 是否支持告警 - // 注意:此字段可能返回 null,表示取不到有效值。 - SupportAlarm *int64 `json:"SupportAlarm,omitempty" name:"SupportAlarm"` + // 指标名 + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - // 事件类型 - // 注意:此字段可能返回 null,表示取不到有效值。 - Type *string `json:"Type,omitempty" name:"Type"` + // 数据点数组 + DataPoints []*DataPoint `json:"DataPoints,omitempty" name:"DataPoints" list` - // 开始时间 - // 注意:此字段可能返回 null,表示取不到有效值。 - StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` + // 开始时间 + StartTime *string `json:"StartTime,omitempty" name:"StartTime"` - // 更新时间 - // 注意:此字段可能返回 null,表示取不到有效值。 - UpdateTime *int64 `json:"UpdateTime,omitempty" name:"UpdateTime"` + // 结束时间 + EndTime *string `json:"EndTime,omitempty" name:"EndTime"` - // 实例对象信息 - // 注意:此字段可能返回 null,表示取不到有效值。 - Dimensions []*DescribeProductEventListEventsDimensions `json:"Dimensions,omitempty" name:"Dimensions" list` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 实例对象附加信息 - // 注意:此字段可能返回 null,表示取不到有效值。 - AdditionMsg []*DescribeProductEventListEventsDimensions `json:"AdditionMsg,omitempty" name:"AdditionMsg" list` +func (r *GetMonitorDataResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 是否配置告警 - // 注意:此字段可能返回 null,表示取不到有效值。 - IsAlarmConfig *int64 `json:"IsAlarmConfig,omitempty" name:"IsAlarmConfig"` +func (r *GetMonitorDataResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 策略信息 - // 注意:此字段可能返回 null,表示取不到有效值。 - GroupInfo []*DescribeProductEventListEventsGroupInfo `json:"GroupInfo,omitempty" name:"GroupInfo" list` +type Instance struct { + + // 实例的维度组合 + Dimensions []*Dimension `json:"Dimensions,omitempty" name:"Dimensions" list` } -type DescribeProductEventListEventsDimensions struct { +type InstanceGroup struct { - // 维度名(英文) + // 实例组ID // 注意:此字段可能返回 null,表示取不到有效值。 - Key *string `json:"Key,omitempty" name:"Key"` + InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` - // 维度名(中文) + // 实例组名 // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceGroupName *string `json:"InstanceGroupName,omitempty" name:"InstanceGroupName"` +} + +type InstanceGroups struct { + + // 实例组 Id + Id *int64 `json:"Id,omitempty" name:"Id"` + + // 实例组名称 Name *string `json:"Name,omitempty" name:"Name"` +} - // 维度值 +type Metric struct { + + // 告警策略类型 + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` + + // 指标名 + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` + + // 指标展示名 + Description *string `json:"Description,omitempty" name:"Description"` + + // 最小值 + Min *float64 `json:"Min,omitempty" name:"Min"` + + // 最大值 + Max *float64 `json:"Max,omitempty" name:"Max"` + + // 维度列表 + Dimensions []*string `json:"Dimensions,omitempty" name:"Dimensions" list` + + // 单位 + Unit *string `json:"Unit,omitempty" name:"Unit"` + + // 指标配置 // 注意:此字段可能返回 null,表示取不到有效值。 - Value *string `json:"Value,omitempty" name:"Value"` + MetricConfig *MetricConfig `json:"MetricConfig,omitempty" name:"MetricConfig"` } -type DescribeProductEventListEventsGroupInfo struct { +type MetricConfig struct { - // 策略ID - // 注意:此字段可能返回 null,表示取不到有效值。 - GroupId *int64 `json:"GroupId,omitempty" name:"GroupId"` + // 允许使用的运算符 + Operator []*string `json:"Operator,omitempty" name:"Operator" list` - // 策略名 - // 注意:此字段可能返回 null,表示取不到有效值。 - GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + // 允许配置的数据周期,以秒为单位 + Period []*int64 `json:"Period,omitempty" name:"Period" list` + + // 允许配置的持续周期个数 + ContinuePeriod []*int64 `json:"ContinuePeriod,omitempty" name:"ContinuePeriod" list` } -type DescribeProductEventListOverView struct { +type MetricDatum struct { - // 状态变更的事件数量 - // 注意:此字段可能返回 null,表示取不到有效值。 - StatusChangeAmount *int64 `json:"StatusChangeAmount,omitempty" name:"StatusChangeAmount"` + // 指标名称 + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - // 告警状态未配置的事件数量 - // 注意:此字段可能返回 null,表示取不到有效值。 - UnConfigAlarmAmount *int64 `json:"UnConfigAlarmAmount,omitempty" name:"UnConfigAlarmAmount"` + // 指标的值 + Value *uint64 `json:"Value,omitempty" name:"Value"` +} - // 异常事件数量 - // 注意:此字段可能返回 null,表示取不到有效值。 - UnNormalEventAmount *int64 `json:"UnNormalEventAmount,omitempty" name:"UnNormalEventAmount"` +type MetricObjectMeaning struct { - // 未恢复的事件数量 - // 注意:此字段可能返回 null,表示取不到有效值。 - UnRecoverAmount *int64 `json:"UnRecoverAmount,omitempty" name:"UnRecoverAmount"` + // 指标英文解释 + En *string `json:"En,omitempty" name:"En"` + + // 指标中文解释 + Zh *string `json:"Zh,omitempty" name:"Zh"` } -type DescribeProductEventListRequest struct { - *tchttp.BaseRequest +type MetricSet struct { - // 接口模块名,固定值"monitor" - Module *string `json:"Module,omitempty" name:"Module"` + // 命名空间,每个云产品会有一个命名空间 + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` - // 产品类型过滤,比如"cvm"表示云服务器 - ProductName []*string `json:"ProductName,omitempty" name:"ProductName" list` + // 指标名称 + MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - // 事件名称过滤,比如"guest_reboot"表示机器重启 - EventName []*string `json:"EventName,omitempty" name:"EventName" list` + // 指标使用的单位 + Unit *string `json:"Unit,omitempty" name:"Unit"` - // 影响对象,比如ins-19708ino - InstanceId []*string `json:"InstanceId,omitempty" name:"InstanceId" list` + // 指标使用的单位 + UnitCname *string `json:"UnitCname,omitempty" name:"UnitCname"` - // 维度过滤,比如外网IP:10.0.0.1 - Dimensions []*DescribeProductEventListDimensions `json:"Dimensions,omitempty" name:"Dimensions" list` + // 指标支持的统计周期,单位是秒,如60、300 + Period []*int64 `json:"Period,omitempty" name:"Period" list` - // 地域过滤,比如gz - RegionList []*string `json:"RegionList,omitempty" name:"RegionList" list` + // 统计周期内指标方式 + Periods []*PeriodsSt `json:"Periods,omitempty" name:"Periods" list` - // 事件类型过滤,取值范围["status_change","abnormal"],分别表示状态变更、异常事件 - Type []*string `json:"Type,omitempty" name:"Type" list` + // 统计指标含义解释 + Meaning *MetricObjectMeaning `json:"Meaning,omitempty" name:"Meaning"` - // 事件状态过滤,取值范围["recover","alarm","-"],分别表示已恢复、未恢复、无状态 - Status []*string `json:"Status,omitempty" name:"Status" list` + // 维度描述信息 + Dimensions []*DimensionsDesc `json:"Dimensions,omitempty" name:"Dimensions" list` +} - // 项目ID过滤 - Project []*string `json:"Project,omitempty" name:"Project" list` +type ModifyAlarmNoticeRequest struct { + *tchttp.BaseRequest - // 告警状态配置过滤,1表示已配置,0表示未配置 - IsAlarmConfig *int64 `json:"IsAlarmConfig,omitempty" name:"IsAlarmConfig"` + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` - // 按更新时间排序,ASC表示升序,DESC表示降序,默认DESC - TimeOrder *string `json:"TimeOrder,omitempty" name:"TimeOrder"` + // 告警通知规则名称 60字符以内 + Name *string `json:"Name,omitempty" name:"Name"` - // 起始时间,默认一天前的时间戳 - StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` + // 通知类型 ALARM=未恢复通知 OK=已恢复通知 ALL=都通知 + NoticeType *string `json:"NoticeType,omitempty" name:"NoticeType"` - // 结束时间,默认当前时间戳 - EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` + // 通知语言 zh-CN=中文 en-US=英文 + NoticeLanguage *string `json:"NoticeLanguage,omitempty" name:"NoticeLanguage"` - // 页偏移量,默认0 - Offset *int64 `json:"Offset,omitempty" name:"Offset"` + // 告警通知模板 ID + NoticeId *string `json:"NoticeId,omitempty" name:"NoticeId"` - // 每页返回的数量,默认20 - Limit *int64 `json:"Limit,omitempty" name:"Limit"` + // 用户通知 最多5个 + UserNotices []*UserNotice `json:"UserNotices,omitempty" name:"UserNotices" list` + + // 回调通知 最多3个 + URLNotices []*URLNotice `json:"URLNotices,omitempty" name:"URLNotices" list` } -func (r *DescribeProductEventListRequest) ToJsonString() string { +func (r *ModifyAlarmNoticeRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeProductEventListRequest) FromJsonString(s string) error { +func (r *ModifyAlarmNoticeRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeProductEventListResponse struct { +type ModifyAlarmNoticeResponse struct { *tchttp.BaseResponse Response *struct { - // 事件列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - Events []*DescribeProductEventListEvents `json:"Events,omitempty" name:"Events" list` - - // 事件统计 - OverView *DescribeProductEventListOverView `json:"OverView,omitempty" name:"OverView"` - - // 事件总数 - // 注意:此字段可能返回 null,表示取不到有效值。 - Total *int64 `json:"Total,omitempty" name:"Total"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeProductEventListResponse) ToJsonString() string { +func (r *ModifyAlarmNoticeResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeProductEventListResponse) FromJsonString(s string) error { +func (r *ModifyAlarmNoticeResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeProductListRequest struct { +type ModifyAlarmPolicyConditionRequest struct { *tchttp.BaseRequest - // 固定传值monitor + // 模块名,固定值 monitor Module *string `json:"Module,omitempty" name:"Module"` - // 排序方式:DESC/ASC(区分大小写),默认值DESC - Order *string `json:"Order,omitempty" name:"Order"` + // 告警策略 ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` - // 分页查询的偏移量,默认值0 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + // 指标触发条件 + Condition *AlarmPolicyCondition `json:"Condition,omitempty" name:"Condition"` - // 分页查询的每页数据量,默认值20 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + // 事件触发条件 + EventCondition *AlarmPolicyEventCondition `json:"EventCondition,omitempty" name:"EventCondition"` } -func (r *DescribeProductListRequest) ToJsonString() string { +func (r *ModifyAlarmPolicyConditionRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeProductListRequest) FromJsonString(s string) error { +func (r *ModifyAlarmPolicyConditionRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeProductListResponse struct { +type ModifyAlarmPolicyConditionResponse struct { *tchttp.BaseResponse Response *struct { - // 产品信息列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - ProductList []*ProductSimple `json:"ProductList,omitempty" name:"ProductList" list` - - // 产品总数 - // 注意:此字段可能返回 null,表示取不到有效值。 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeProductListResponse) ToJsonString() string { +func (r *ModifyAlarmPolicyConditionResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeProductListResponse) FromJsonString(s string) error { +func (r *ModifyAlarmPolicyConditionResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeServiceDiscoveryRequest struct { +type ModifyAlarmPolicyInfoRequest struct { *tchttp.BaseRequest - // Prometheus 实例 ID - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` - //
  • 类型是 TKE,为对应的腾讯云容器服务集群 ID
  • - KubeClusterId *string `json:"KubeClusterId,omitempty" name:"KubeClusterId"` + // 告警策略 ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` - // 用户 Kubernetes 集群类型: - //
  • 1 = 容器服务集群(TKE)
  • - KubeType *int64 `json:"KubeType,omitempty" name:"KubeType"` + // 要修改的字段 NAME=策略名称 REMARK=策略备注 + Key *string `json:"Key,omitempty" name:"Key"` + + // 修改后的值 + Value *string `json:"Value,omitempty" name:"Value"` } -func (r *DescribeServiceDiscoveryRequest) ToJsonString() string { +func (r *ModifyAlarmPolicyInfoRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeServiceDiscoveryRequest) FromJsonString(s string) error { +func (r *ModifyAlarmPolicyInfoRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeServiceDiscoveryResponse struct { +type ModifyAlarmPolicyInfoResponse struct { *tchttp.BaseResponse Response *struct { - // 返回服务发现列表信息 - // 注意:此字段可能返回 null,表示取不到有效值。 - ServiceDiscoverySet []*ServiceDiscoveryItem `json:"ServiceDiscoverySet,omitempty" name:"ServiceDiscoverySet" list` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeServiceDiscoveryResponse) ToJsonString() string { +func (r *ModifyAlarmPolicyInfoResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeServiceDiscoveryResponse) FromJsonString(s string) error { +func (r *ModifyAlarmPolicyInfoResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type Dimension struct { - - // 实例维度名称 - Name *string `json:"Name,omitempty" name:"Name"` - - // 实例维度值 - Value *string `json:"Value,omitempty" name:"Value"` -} - -type DimensionsDesc struct { - - // 维度名数组 - Dimensions []*string `json:"Dimensions,omitempty" name:"Dimensions" list` -} - -type GetMonitorDataRequest struct { +type ModifyAlarmPolicyNoticeRequest struct { *tchttp.BaseRequest - // 命名空间,各个云产品的详细命名空间说明请参阅各个产品[监控指标](https://cloud.tencent.com/document/product/248/6140)文档 - Namespace *string `json:"Namespace,omitempty" name:"Namespace"` - - // 指标名称,各个云产品的详细指标说明请参阅各个产品[监控指标](https://cloud.tencent.com/document/product/248/6140)文档 - MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - - // 实例对象的维度组合 - Instances []*Instance `json:"Instances,omitempty" name:"Instances" list` - - // 监控统计周期。默认为取值为300,单位为s - Period *uint64 `json:"Period,omitempty" name:"Period"` + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` - // 起始时间,如2018-09-22T19:51:23+08:00 - StartTime *string `json:"StartTime,omitempty" name:"StartTime"` + // 告警策略 ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` - // 结束时间,默认为当前时间。 EndTime不能小于StartTime - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` + // 告警通知模板 ID 列表 + NoticeIds []*string `json:"NoticeIds,omitempty" name:"NoticeIds" list` } -func (r *GetMonitorDataRequest) ToJsonString() string { +func (r *ModifyAlarmPolicyNoticeRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *GetMonitorDataRequest) FromJsonString(s string) error { +func (r *ModifyAlarmPolicyNoticeRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type GetMonitorDataResponse struct { +type ModifyAlarmPolicyNoticeResponse struct { *tchttp.BaseResponse Response *struct { - // 统计周期 - Period *uint64 `json:"Period,omitempty" name:"Period"` - - // 指标名 - MetricName *string `json:"MetricName,omitempty" name:"MetricName"` - - // 数据点数组 - DataPoints []*DataPoint `json:"DataPoints,omitempty" name:"DataPoints" list` - - // 开始时间 - StartTime *string `json:"StartTime,omitempty" name:"StartTime"` - - // 结束时间 - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *GetMonitorDataResponse) ToJsonString() string { +func (r *ModifyAlarmPolicyNoticeResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *GetMonitorDataResponse) FromJsonString(s string) error { +func (r *ModifyAlarmPolicyNoticeResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type Instance struct { - - // 实例的维度组合 - Dimensions []*Dimension `json:"Dimensions,omitempty" name:"Dimensions" list` -} +type ModifyAlarmPolicyStatusRequest struct { + *tchttp.BaseRequest -type InstanceGroup struct { + // 模块名,固定值 monitor + Module *string `json:"Module,omitempty" name:"Module"` - // 实例组ID - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceGroupId *int64 `json:"InstanceGroupId,omitempty" name:"InstanceGroupId"` + // 告警策略 ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` - // 实例组名 - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceGroupName *string `json:"InstanceGroupName,omitempty" name:"InstanceGroupName"` + // 启停状态 0=停用 1=启用 + Enable *int64 `json:"Enable,omitempty" name:"Enable"` } -type InstanceGroups struct { - - // 实例组 Id - Id *int64 `json:"Id,omitempty" name:"Id"` - - // 实例组名称 - Name *string `json:"Name,omitempty" name:"Name"` +func (r *ModifyAlarmPolicyStatusRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) } -type MetricDatum struct { +func (r *ModifyAlarmPolicyStatusRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 指标名称 - MetricName *string `json:"MetricName,omitempty" name:"MetricName"` +type ModifyAlarmPolicyStatusResponse struct { + *tchttp.BaseResponse + Response *struct { - // 指标的值 - Value *uint64 `json:"Value,omitempty" name:"Value"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` } -type MetricObjectMeaning struct { - - // 指标英文解释 - En *string `json:"En,omitempty" name:"En"` +func (r *ModifyAlarmPolicyStatusResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 指标中文解释 - Zh *string `json:"Zh,omitempty" name:"Zh"` +func (r *ModifyAlarmPolicyStatusResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } -type MetricSet struct { +type ModifyAlarmPolicyTasksRequest struct { + *tchttp.BaseRequest - // 命名空间,每个云产品会有一个命名空间 - Namespace *string `json:"Namespace,omitempty" name:"Namespace"` + // 模块名,这里填“monitor” + Module *string `json:"Module,omitempty" name:"Module"` - // 指标名称 - MetricName *string `json:"MetricName,omitempty" name:"MetricName"` + // 告警策略 ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` - // 指标使用的单位 - Unit *string `json:"Unit,omitempty" name:"Unit"` + // 告警策略触发任务列表,空数据代表解绑 + TriggerTasks []*AlarmPolicyTriggerTask `json:"TriggerTasks,omitempty" name:"TriggerTasks" list` +} - // 指标使用的单位 - UnitCname *string `json:"UnitCname,omitempty" name:"UnitCname"` +func (r *ModifyAlarmPolicyTasksRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 指标支持的统计周期,单位是秒,如60、300 - Period []*int64 `json:"Period,omitempty" name:"Period" list` +func (r *ModifyAlarmPolicyTasksRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 统计周期内指标方式 - Periods []*PeriodsSt `json:"Periods,omitempty" name:"Periods" list` +type ModifyAlarmPolicyTasksResponse struct { + *tchttp.BaseResponse + Response *struct { - // 统计指标含义解释 - Meaning *MetricObjectMeaning `json:"Meaning,omitempty" name:"Meaning"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 维度描述信息 - Dimensions []*DimensionsDesc `json:"Dimensions,omitempty" name:"Dimensions" list` +func (r *ModifyAlarmPolicyTasksResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyAlarmPolicyTasksResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } type ModifyAlarmReceiversRequest struct { @@ -2493,6 +3638,58 @@ type ServiceDiscoveryItem struct { Yaml *string `json:"Yaml,omitempty" name:"Yaml"` } +type SetDefaultAlarmPolicyRequest struct { + *tchttp.BaseRequest + + // 模块名,固定值 monitor + Module *string `json:"Module,omitempty" name:"Module"` + + // 告警策略 ID + PolicyId *string `json:"PolicyId,omitempty" name:"PolicyId"` +} + +func (r *SetDefaultAlarmPolicyRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *SetDefaultAlarmPolicyRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type SetDefaultAlarmPolicyResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *SetDefaultAlarmPolicyResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *SetDefaultAlarmPolicyResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type URLNotice struct { + + // 回调 url(限长256字符) + // 注意:此字段可能返回 null,表示取不到有效值。 + URL *string `json:"URL,omitempty" name:"URL"` + + // 是否通过验证 0=否 1=是 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsValid *int64 `json:"IsValid,omitempty" name:"IsValid"` + + // 验证码 + // 注意:此字段可能返回 null,表示取不到有效值。 + ValidationCode *string `json:"ValidationCode,omitempty" name:"ValidationCode"` +} + type UnBindingAllPolicyObjectRequest struct { *tchttp.BaseRequest @@ -2624,3 +3821,50 @@ func (r *UpdateServiceDiscoveryResponse) ToJsonString() string { func (r *UpdateServiceDiscoveryResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } + +type UserNotice struct { + + // 接收者类型 USER=用户 GROUP=用户组 + // 注意:此字段可能返回 null,表示取不到有效值。 + ReceiverType *string `json:"ReceiverType,omitempty" name:"ReceiverType"` + + // 通知开始时间 00:00:00 开始的秒数(取值范围0-86399) + // 注意:此字段可能返回 null,表示取不到有效值。 + StartTime *int64 `json:"StartTime,omitempty" name:"StartTime"` + + // 通知结束时间 00:00:00 开始的秒数(取值范围0-86399) + // 注意:此字段可能返回 null,表示取不到有效值。 + EndTime *int64 `json:"EndTime,omitempty" name:"EndTime"` + + // 通知渠道列表 EMAIL=邮件 SMS=短信 CALL=电话 WECHAT=微信 + // 注意:此字段可能返回 null,表示取不到有效值。 + NoticeWay []*string `json:"NoticeWay,omitempty" name:"NoticeWay" list` + + // 用户 uid 列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + UserIds []*int64 `json:"UserIds,omitempty" name:"UserIds" list` + + // 用户组 group id 列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + GroupIds []*int64 `json:"GroupIds,omitempty" name:"GroupIds" list` + + // 电话轮询列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneOrder []*int64 `json:"PhoneOrder,omitempty" name:"PhoneOrder" list` + + // 电话轮询次数 (取值范围1-5) + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneCircleTimes *int64 `json:"PhoneCircleTimes,omitempty" name:"PhoneCircleTimes"` + + // 单次轮询内拨打间隔 秒数 (取值范围60-900) + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneInnerInterval *int64 `json:"PhoneInnerInterval,omitempty" name:"PhoneInnerInterval"` + + // 两次轮询间隔 秒数(取值范围60-900) + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneCircleInterval *int64 `json:"PhoneCircleInterval,omitempty" name:"PhoneCircleInterval"` + + // 是否需要触达通知 0=否 1=是 + // 注意:此字段可能返回 null,表示取不到有效值。 + NeedPhoneArriveNotice *int64 `json:"NeedPhoneArriveNotice,omitempty" name:"NeedPhoneArriveNotice"` +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go index 03f3c9d730..91ca649584 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go @@ -320,6 +320,9 @@ type CreateInstancesRequest struct { // 实例的节点信息,目前支持传入节点的类型(主节点或者副本节点),节点的可用区。单可用区部署不需要传递此参数。 NodeSet []*RedisNodeInfo `json:"NodeSet,omitempty" name:"NodeSet" list` + + // 购买实例绑定标签 + ResourceTags []*ResourceTag `json:"ResourceTags,omitempty" name:"ResourceTags" list` } func (r *CreateInstancesRequest) ToJsonString() string { @@ -3580,6 +3583,15 @@ func (r *ResetPasswordResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ResourceTag struct { + + // 标签key + TagKey *string `json:"TagKey,omitempty" name:"TagKey"` + + // 标签value + TagValue *string `json:"TagValue,omitempty" name:"TagValue"` +} + type RestoreInstanceRequest struct { *tchttp.BaseRequest @@ -3912,6 +3924,9 @@ type UpgradeInstanceRequest struct { // 副本数量,Redis2.8主从版、CKV主从版和Redis2.8单机版不需要填写 RedisReplicasNum *uint64 `json:"RedisReplicasNum,omitempty" name:"RedisReplicasNum"` + + // 多AZ实例增加副本时的附带信息,非多AZ实例不需要传此参数。多AZ增加副本时此参数为必传参数,传入要增加的副本的信息,包括副本的可用区和副本的类型(NodeType为1) + NodeSet []*RedisNodeInfo `json:"NodeSet,omitempty" name:"NodeSet" list` } func (r *UpgradeInstanceRequest) ToJsonString() string { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/client.go index 7ed7ec92aa..e96a4c4a60 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/client.go @@ -275,6 +275,56 @@ func (c *Client) DeleteNamespace(request *DeleteNamespaceRequest) (response *Del return } +func NewDeleteProvisionedConcurrencyConfigRequest() (request *DeleteProvisionedConcurrencyConfigRequest) { + request = &DeleteProvisionedConcurrencyConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("scf", APIVersion, "DeleteProvisionedConcurrencyConfig") + return +} + +func NewDeleteProvisionedConcurrencyConfigResponse() (response *DeleteProvisionedConcurrencyConfigResponse) { + response = &DeleteProvisionedConcurrencyConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 删除函数版本的预置并发配置。 +func (c *Client) DeleteProvisionedConcurrencyConfig(request *DeleteProvisionedConcurrencyConfigRequest) (response *DeleteProvisionedConcurrencyConfigResponse, err error) { + if request == nil { + request = NewDeleteProvisionedConcurrencyConfigRequest() + } + response = NewDeleteProvisionedConcurrencyConfigResponse() + err = c.Send(request, response) + return +} + +func NewDeleteReservedConcurrencyConfigRequest() (request *DeleteReservedConcurrencyConfigRequest) { + request = &DeleteReservedConcurrencyConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("scf", APIVersion, "DeleteReservedConcurrencyConfig") + return +} + +func NewDeleteReservedConcurrencyConfigResponse() (response *DeleteReservedConcurrencyConfigResponse) { + response = &DeleteReservedConcurrencyConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 删除函数的保留并发配置。 +func (c *Client) DeleteReservedConcurrencyConfig(request *DeleteReservedConcurrencyConfigRequest) (response *DeleteReservedConcurrencyConfigResponse, err error) { + if request == nil { + request = NewDeleteReservedConcurrencyConfigRequest() + } + response = NewDeleteReservedConcurrencyConfigResponse() + err = c.Send(request, response) + return +} + func NewDeleteTriggerRequest() (request *DeleteTriggerRequest) { request = &DeleteTriggerRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -425,6 +475,56 @@ func (c *Client) GetLayerVersion(request *GetLayerVersionRequest) (response *Get return } +func NewGetProvisionedConcurrencyConfigRequest() (request *GetProvisionedConcurrencyConfigRequest) { + request = &GetProvisionedConcurrencyConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("scf", APIVersion, "GetProvisionedConcurrencyConfig") + return +} + +func NewGetProvisionedConcurrencyConfigResponse() (response *GetProvisionedConcurrencyConfigResponse) { + response = &GetProvisionedConcurrencyConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取函数或函数某一版本的预置并发详情。 +func (c *Client) GetProvisionedConcurrencyConfig(request *GetProvisionedConcurrencyConfigRequest) (response *GetProvisionedConcurrencyConfigResponse, err error) { + if request == nil { + request = NewGetProvisionedConcurrencyConfigRequest() + } + response = NewGetProvisionedConcurrencyConfigResponse() + err = c.Send(request, response) + return +} + +func NewGetReservedConcurrencyConfigRequest() (request *GetReservedConcurrencyConfigRequest) { + request = &GetReservedConcurrencyConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("scf", APIVersion, "GetReservedConcurrencyConfig") + return +} + +func NewGetReservedConcurrencyConfigResponse() (response *GetReservedConcurrencyConfigResponse) { + response = &GetReservedConcurrencyConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取函数的保留并发详情。 +func (c *Client) GetReservedConcurrencyConfig(request *GetReservedConcurrencyConfigRequest) (response *GetReservedConcurrencyConfigResponse, err error) { + if request == nil { + request = NewGetReservedConcurrencyConfigRequest() + } + response = NewGetReservedConcurrencyConfigResponse() + err = c.Send(request, response) + return +} + func NewInvokeRequest() (request *InvokeRequest) { request = &InvokeRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -675,6 +775,81 @@ func (c *Client) PublishVersion(request *PublishVersionRequest) (response *Publi return } +func NewPutProvisionedConcurrencyConfigRequest() (request *PutProvisionedConcurrencyConfigRequest) { + request = &PutProvisionedConcurrencyConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("scf", APIVersion, "PutProvisionedConcurrencyConfig") + return +} + +func NewPutProvisionedConcurrencyConfigResponse() (response *PutProvisionedConcurrencyConfigResponse) { + response = &PutProvisionedConcurrencyConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 设置函数某一非$LATEST版本的预置并发。 +func (c *Client) PutProvisionedConcurrencyConfig(request *PutProvisionedConcurrencyConfigRequest) (response *PutProvisionedConcurrencyConfigResponse, err error) { + if request == nil { + request = NewPutProvisionedConcurrencyConfigRequest() + } + response = NewPutProvisionedConcurrencyConfigResponse() + err = c.Send(request, response) + return +} + +func NewPutReservedConcurrencyConfigRequest() (request *PutReservedConcurrencyConfigRequest) { + request = &PutReservedConcurrencyConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("scf", APIVersion, "PutReservedConcurrencyConfig") + return +} + +func NewPutReservedConcurrencyConfigResponse() (response *PutReservedConcurrencyConfigResponse) { + response = &PutReservedConcurrencyConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 设置函数保留并发 +func (c *Client) PutReservedConcurrencyConfig(request *PutReservedConcurrencyConfigRequest) (response *PutReservedConcurrencyConfigResponse, err error) { + if request == nil { + request = NewPutReservedConcurrencyConfigRequest() + } + response = NewPutReservedConcurrencyConfigResponse() + err = c.Send(request, response) + return +} + +func NewPutTotalConcurrencyConfigRequest() (request *PutTotalConcurrencyConfigRequest) { + request = &PutTotalConcurrencyConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("scf", APIVersion, "PutTotalConcurrencyConfig") + return +} + +func NewPutTotalConcurrencyConfigResponse() (response *PutTotalConcurrencyConfigResponse) { + response = &PutTotalConcurrencyConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 修改账号并发限制配额 +func (c *Client) PutTotalConcurrencyConfig(request *PutTotalConcurrencyConfigRequest) (response *PutTotalConcurrencyConfigResponse, err error) { + if request == nil { + request = NewPutTotalConcurrencyConfigRequest() + } + response = NewPutTotalConcurrencyConfigResponse() + err = c.Send(request, response) + return +} + func NewUpdateAliasRequest() (request *UpdateAliasRequest) { request = &UpdateAliasRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/models.go index bd2d183d6f..9f47440204 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416/models.go @@ -602,6 +602,83 @@ func (r *DeleteNamespaceResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type DeleteProvisionedConcurrencyConfigRequest struct { + *tchttp.BaseRequest + + // 需要删除预置并发的函数的名称 + FunctionName *string `json:"FunctionName,omitempty" name:"FunctionName"` + + // 函数的版本号 + Qualifier *string `json:"Qualifier,omitempty" name:"Qualifier"` + + // 函数所属命名空间,默认为default + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + +func (r *DeleteProvisionedConcurrencyConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteProvisionedConcurrencyConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeleteProvisionedConcurrencyConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DeleteProvisionedConcurrencyConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteProvisionedConcurrencyConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeleteReservedConcurrencyConfigRequest struct { + *tchttp.BaseRequest + + // 需要删除预置并发的函数的名称 + FunctionName *string `json:"FunctionName,omitempty" name:"FunctionName"` + + // 函数所属命名空间,默认为default + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + +func (r *DeleteReservedConcurrencyConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteReservedConcurrencyConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeleteReservedConcurrencyConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DeleteReservedConcurrencyConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeleteReservedConcurrencyConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DeleteTriggerRequest struct { *tchttp.BaseRequest @@ -1218,6 +1295,93 @@ func (r *GetLayerVersionResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type GetProvisionedConcurrencyConfigRequest struct { + *tchttp.BaseRequest + + // 需要获取预置并发详情的函数名称。 + FunctionName *string `json:"FunctionName,omitempty" name:"FunctionName"` + + // 函数所在的命名空间,默认为default。 + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` + + // 函数版本号,不传则返回函数所有版本的预置并发信息。 + Qualifier *string `json:"Qualifier,omitempty" name:"Qualifier"` +} + +func (r *GetProvisionedConcurrencyConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *GetProvisionedConcurrencyConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type GetProvisionedConcurrencyConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 该函数剩余可配置的预置并发数。 + UnallocatedConcurrencyNum *uint64 `json:"UnallocatedConcurrencyNum,omitempty" name:"UnallocatedConcurrencyNum"` + + // 函数已预置的并发配置详情。 + Allocated []*VersionProvisionedConcurrencyInfo `json:"Allocated,omitempty" name:"Allocated" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *GetProvisionedConcurrencyConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *GetProvisionedConcurrencyConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type GetReservedConcurrencyConfigRequest struct { + *tchttp.BaseRequest + + // 需要获取预置并发详情的函数名称。 + FunctionName *string `json:"FunctionName,omitempty" name:"FunctionName"` + + // 函数所在的命名空间,默认为default。 + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + +func (r *GetReservedConcurrencyConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *GetReservedConcurrencyConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type GetReservedConcurrencyConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 该函数的保留并发内存。 + // 注意:此字段可能返回 null,表示取不到有效值。 + ReservedMem *uint64 `json:"ReservedMem,omitempty" name:"ReservedMem"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *GetReservedConcurrencyConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *GetReservedConcurrencyConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type InvokeRequest struct { *tchttp.BaseRequest @@ -1859,6 +2023,126 @@ func (r *PublishVersionResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type PutProvisionedConcurrencyConfigRequest struct { + *tchttp.BaseRequest + + // 需要设置预置并发的函数的名称 + FunctionName *string `json:"FunctionName,omitempty" name:"FunctionName"` + + // 函数的版本号,注:$LATEST版本不支持预置并发 + Qualifier *string `json:"Qualifier,omitempty" name:"Qualifier"` + + // 预置并发数量,注:所有版本的预置并发数总和存在上限限制,当前的上限是:函数最大并发配额 - 100 + VersionProvisionedConcurrencyNum *uint64 `json:"VersionProvisionedConcurrencyNum,omitempty" name:"VersionProvisionedConcurrencyNum"` + + // 函数所属命名空间,默认为default + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + +func (r *PutProvisionedConcurrencyConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *PutProvisionedConcurrencyConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type PutProvisionedConcurrencyConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *PutProvisionedConcurrencyConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *PutProvisionedConcurrencyConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type PutReservedConcurrencyConfigRequest struct { + *tchttp.BaseRequest + + // 需要设置预置并发的函数的名称 + FunctionName *string `json:"FunctionName,omitempty" name:"FunctionName"` + + // 函数保留并发内存,注:函数的保留并发内存总和上限:用户总并发内存配额 - 12800 + ReservedConcurrencyMem *uint64 `json:"ReservedConcurrencyMem,omitempty" name:"ReservedConcurrencyMem"` + + // 函数所属命名空间,默认为default + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + +func (r *PutReservedConcurrencyConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *PutReservedConcurrencyConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type PutReservedConcurrencyConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *PutReservedConcurrencyConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *PutReservedConcurrencyConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type PutTotalConcurrencyConfigRequest struct { + *tchttp.BaseRequest + + // 账号并发内存配额,注:账号并发内存配额下限:用户已用并发内存总额 + 12800 + TotalConcurrencyMem *uint64 `json:"TotalConcurrencyMem,omitempty" name:"TotalConcurrencyMem"` + + // 命名空间,默认为default + Namespace *string `json:"Namespace,omitempty" name:"Namespace"` +} + +func (r *PutTotalConcurrencyConfigRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *PutTotalConcurrencyConfigRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type PutTotalConcurrencyConfigResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *PutTotalConcurrencyConfigResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *PutTotalConcurrencyConfigResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type Result struct { // 表示执行过程中的日志输出,异步调用返回为空 @@ -2255,6 +2539,24 @@ type VersionMatch struct { Expression *string `json:"Expression,omitempty" name:"Expression"` } +type VersionProvisionedConcurrencyInfo struct { + + // 设置的预置并发数。 + AllocatedProvisionedConcurrencyNum *uint64 `json:"AllocatedProvisionedConcurrencyNum,omitempty" name:"AllocatedProvisionedConcurrencyNum"` + + // 当前已完成预置的并发数。 + AvailableProvisionedConcurrencyNum *uint64 `json:"AvailableProvisionedConcurrencyNum,omitempty" name:"AvailableProvisionedConcurrencyNum"` + + // 预置任务状态,Done表示已完成,InProgress表示进行中,Failed表示部分或全部失败。 + Status *string `json:"Status,omitempty" name:"Status"` + + // 对预置任务状态Status的说明。 + StatusReason *string `json:"StatusReason,omitempty" name:"StatusReason"` + + // 函数版本号 + Qualifier *string `json:"Qualifier,omitempty" name:"Qualifier"` +} + type VersionWeight struct { // 函数版本名称 diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts/v20180813/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts/v20180813/models.go index f87c360d3f..38ebaa5508 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts/v20180813/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts/v20180813/models.go @@ -35,10 +35,15 @@ type ApiKey struct { type AssumeRoleRequest struct { *tchttp.BaseRequest - // 角色的资源描述。例如:qcs::cam::uin/12345678:role/4611686018427397919、qcs::cam::uin/12345678:roleName/testRoleName + // 角色的资源描述,可在[访问管理](https://console.cloud.tencent.com/cam/role),点击角色名获取。 + // 普通角色: + // qcs::cam::uin/12345678:role/4611686018427397919、qcs::cam::uin/12345678:roleName/testRoleName + // 服务角色: + // qcs::cam::uin/12345678:role/tencentcloudServiceRole/4611686018427397920、qcs::cam::uin/12345678:role/tencentcloudServiceRoleName/testServiceRoleName RoleArn *string `json:"RoleArn,omitempty" name:"RoleArn"` - // 临时会话名称,由用户自定义名称 + // 临时会话名称,由用户自定义名称。 + // 长度在2到128之间,可包含大小写字符,数字以及特殊字符:=,.@_-。 正则为:[\w+=,.@_-]* RoleSessionName *string `json:"RoleSessionName,omitempty" name:"RoleSessionName"` // 指定临时证书的有效期,单位:秒,默认 7200 秒,最长可设定有效期为 43200 秒 @@ -50,6 +55,10 @@ type AssumeRoleRequest struct { // 2、策略语法参照[ CAM 策略语法](https://cloud.tencent.com/document/product/598/10603)。 // 3、策略中不能包含 principal 元素。 Policy *string `json:"Policy,omitempty" name:"Policy"` + + // 角色外部ID,可在[访问管理](https://console.cloud.tencent.com/cam/role),点击角色名获取。 + // 长度在2到128之间,可包含大小写字符,数字以及特殊字符:=,.@:/-。 正则为:[\w+=,.@:\/-]* + ExternalId *string `json:"ExternalId,omitempty" name:"ExternalId"` } func (r *AssumeRoleRequest) ToJsonString() string { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/client.go index 1519b9df9e..7a0089a285 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/client.go @@ -393,6 +393,31 @@ func (c *Client) CreatePrometheusDashboard(request *CreatePrometheusDashboardReq return } +func NewCreatePrometheusTemplateRequest() (request *CreatePrometheusTemplateRequest) { + request = &CreatePrometheusTemplateRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "CreatePrometheusTemplate") + return +} + +func NewCreatePrometheusTemplateResponse() (response *CreatePrometheusTemplateResponse) { + response = &CreatePrometheusTemplateResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 创建一个云原生Prometheus模板实例 +func (c *Client) CreatePrometheusTemplate(request *CreatePrometheusTemplateRequest) (response *CreatePrometheusTemplateResponse, err error) { + if request == nil { + request = NewCreatePrometheusTemplateRequest() + } + response = NewCreatePrometheusTemplateResponse() + err = c.Send(request, response) + return +} + func NewDeleteClusterRequest() (request *DeleteClusterRequest) { request = &DeleteClusterRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -593,6 +618,56 @@ func (c *Client) DeleteClusterRouteTable(request *DeleteClusterRouteTableRequest return } +func NewDeletePrometheusTemplateRequest() (request *DeletePrometheusTemplateRequest) { + request = &DeletePrometheusTemplateRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DeletePrometheusTemplate") + return +} + +func NewDeletePrometheusTemplateResponse() (response *DeletePrometheusTemplateResponse) { + response = &DeletePrometheusTemplateResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 删除一个云原生Promehtheus配置模板 +func (c *Client) DeletePrometheusTemplate(request *DeletePrometheusTemplateRequest) (response *DeletePrometheusTemplateResponse, err error) { + if request == nil { + request = NewDeletePrometheusTemplateRequest() + } + response = NewDeletePrometheusTemplateResponse() + err = c.Send(request, response) + return +} + +func NewDeletePrometheusTemplateSyncRequest() (request *DeletePrometheusTemplateSyncRequest) { + request = &DeletePrometheusTemplateSyncRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DeletePrometheusTemplateSync") + return +} + +func NewDeletePrometheusTemplateSyncResponse() (response *DeletePrometheusTemplateSyncResponse) { + response = &DeletePrometheusTemplateSyncResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 取消模板同步,这将会删除目标中该模板所生产的配置 +func (c *Client) DeletePrometheusTemplateSync(request *DeletePrometheusTemplateSyncRequest) (response *DeletePrometheusTemplateSyncResponse, err error) { + if request == nil { + request = NewDeletePrometheusTemplateSyncRequest() + } + response = NewDeletePrometheusTemplateSyncResponse() + err = c.Send(request, response) + return +} + func NewDescribeClusterAsGroupOptionRequest() (request *DescribeClusterAsGroupOptionRequest) { request = &DescribeClusterAsGroupOptionRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -968,6 +1043,156 @@ func (c *Client) DescribePrometheusAgentInstances(request *DescribePrometheusAge return } +func NewDescribePrometheusAgentsRequest() (request *DescribePrometheusAgentsRequest) { + request = &DescribePrometheusAgentsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DescribePrometheusAgents") + return +} + +func NewDescribePrometheusAgentsResponse() (response *DescribePrometheusAgentsResponse) { + response = &DescribePrometheusAgentsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取被关联集群列表 +func (c *Client) DescribePrometheusAgents(request *DescribePrometheusAgentsRequest) (response *DescribePrometheusAgentsResponse, err error) { + if request == nil { + request = NewDescribePrometheusAgentsRequest() + } + response = NewDescribePrometheusAgentsResponse() + err = c.Send(request, response) + return +} + +func NewDescribePrometheusAlertRuleRequest() (request *DescribePrometheusAlertRuleRequest) { + request = &DescribePrometheusAlertRuleRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DescribePrometheusAlertRule") + return +} + +func NewDescribePrometheusAlertRuleResponse() (response *DescribePrometheusAlertRuleResponse) { + response = &DescribePrometheusAlertRuleResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取告警规则列表 +func (c *Client) DescribePrometheusAlertRule(request *DescribePrometheusAlertRuleRequest) (response *DescribePrometheusAlertRuleResponse, err error) { + if request == nil { + request = NewDescribePrometheusAlertRuleRequest() + } + response = NewDescribePrometheusAlertRuleResponse() + err = c.Send(request, response) + return +} + +func NewDescribePrometheusOverviewsRequest() (request *DescribePrometheusOverviewsRequest) { + request = &DescribePrometheusOverviewsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DescribePrometheusOverviews") + return +} + +func NewDescribePrometheusOverviewsResponse() (response *DescribePrometheusOverviewsResponse) { + response = &DescribePrometheusOverviewsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取实例列表 +func (c *Client) DescribePrometheusOverviews(request *DescribePrometheusOverviewsRequest) (response *DescribePrometheusOverviewsResponse, err error) { + if request == nil { + request = NewDescribePrometheusOverviewsRequest() + } + response = NewDescribePrometheusOverviewsResponse() + err = c.Send(request, response) + return +} + +func NewDescribePrometheusTargetsRequest() (request *DescribePrometheusTargetsRequest) { + request = &DescribePrometheusTargetsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DescribePrometheusTargets") + return +} + +func NewDescribePrometheusTargetsResponse() (response *DescribePrometheusTargetsResponse) { + response = &DescribePrometheusTargetsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取targets信息 +func (c *Client) DescribePrometheusTargets(request *DescribePrometheusTargetsRequest) (response *DescribePrometheusTargetsResponse, err error) { + if request == nil { + request = NewDescribePrometheusTargetsRequest() + } + response = NewDescribePrometheusTargetsResponse() + err = c.Send(request, response) + return +} + +func NewDescribePrometheusTemplateSyncRequest() (request *DescribePrometheusTemplateSyncRequest) { + request = &DescribePrometheusTemplateSyncRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DescribePrometheusTemplateSync") + return +} + +func NewDescribePrometheusTemplateSyncResponse() (response *DescribePrometheusTemplateSyncResponse) { + response = &DescribePrometheusTemplateSyncResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 获取模板同步信息 +func (c *Client) DescribePrometheusTemplateSync(request *DescribePrometheusTemplateSyncRequest) (response *DescribePrometheusTemplateSyncResponse, err error) { + if request == nil { + request = NewDescribePrometheusTemplateSyncRequest() + } + response = NewDescribePrometheusTemplateSyncResponse() + err = c.Send(request, response) + return +} + +func NewDescribePrometheusTemplatesRequest() (request *DescribePrometheusTemplatesRequest) { + request = &DescribePrometheusTemplatesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "DescribePrometheusTemplates") + return +} + +func NewDescribePrometheusTemplatesResponse() (response *DescribePrometheusTemplatesResponse) { + response = &DescribePrometheusTemplatesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 拉取模板列表,默认模板将总是在最前面 +func (c *Client) DescribePrometheusTemplates(request *DescribePrometheusTemplatesRequest) (response *DescribePrometheusTemplatesResponse, err error) { + if request == nil { + request = NewDescribePrometheusTemplatesRequest() + } + response = NewDescribePrometheusTemplatesResponse() + err = c.Send(request, response) + return +} + func NewDescribeRegionsRequest() (request *DescribeRegionsRequest) { request = &DescribeRegionsRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1043,6 +1268,31 @@ func (c *Client) ModifyClusterAsGroupAttribute(request *ModifyClusterAsGroupAttr return } +func NewModifyClusterAsGroupOptionAttributeRequest() (request *ModifyClusterAsGroupOptionAttributeRequest) { + request = &ModifyClusterAsGroupOptionAttributeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "ModifyClusterAsGroupOptionAttribute") + return +} + +func NewModifyClusterAsGroupOptionAttributeResponse() (response *ModifyClusterAsGroupOptionAttributeResponse) { + response = &ModifyClusterAsGroupOptionAttributeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 修改集群弹性伸缩属性 +func (c *Client) ModifyClusterAsGroupOptionAttribute(request *ModifyClusterAsGroupOptionAttributeRequest) (response *ModifyClusterAsGroupOptionAttributeResponse, err error) { + if request == nil { + request = NewModifyClusterAsGroupOptionAttributeRequest() + } + response = NewModifyClusterAsGroupOptionAttributeResponse() + err = c.Send(request, response) + return +} + func NewModifyClusterAttributeRequest() (request *ModifyClusterAttributeRequest) { request = &ModifyClusterAttributeRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1118,6 +1368,56 @@ func (c *Client) ModifyClusterNodePool(request *ModifyClusterNodePoolRequest) (r return } +func NewModifyNodePoolDesiredCapacityAboutAsgRequest() (request *ModifyNodePoolDesiredCapacityAboutAsgRequest) { + request = &ModifyNodePoolDesiredCapacityAboutAsgRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "ModifyNodePoolDesiredCapacityAboutAsg") + return +} + +func NewModifyNodePoolDesiredCapacityAboutAsgResponse() (response *ModifyNodePoolDesiredCapacityAboutAsgResponse) { + response = &ModifyNodePoolDesiredCapacityAboutAsgResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 修改节点池关联伸缩组的期望实例数 +func (c *Client) ModifyNodePoolDesiredCapacityAboutAsg(request *ModifyNodePoolDesiredCapacityAboutAsgRequest) (response *ModifyNodePoolDesiredCapacityAboutAsgResponse, err error) { + if request == nil { + request = NewModifyNodePoolDesiredCapacityAboutAsgRequest() + } + response = NewModifyNodePoolDesiredCapacityAboutAsgResponse() + err = c.Send(request, response) + return +} + +func NewModifyPrometheusTemplateRequest() (request *ModifyPrometheusTemplateRequest) { + request = &ModifyPrometheusTemplateRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "ModifyPrometheusTemplate") + return +} + +func NewModifyPrometheusTemplateResponse() (response *ModifyPrometheusTemplateResponse) { + response = &ModifyPrometheusTemplateResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 修改模板内容 +func (c *Client) ModifyPrometheusTemplate(request *ModifyPrometheusTemplateRequest) (response *ModifyPrometheusTemplateResponse, err error) { + if request == nil { + request = NewModifyPrometheusTemplateRequest() + } + response = NewModifyPrometheusTemplateResponse() + err = c.Send(request, response) + return +} + func NewRemoveNodeFromNodePoolRequest() (request *RemoveNodeFromNodePoolRequest) { request = &RemoveNodeFromNodePoolRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1143,6 +1443,31 @@ func (c *Client) RemoveNodeFromNodePool(request *RemoveNodeFromNodePoolRequest) return } +func NewSyncPrometheusTemplateRequest() (request *SyncPrometheusTemplateRequest) { + request = &SyncPrometheusTemplateRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("tke", APIVersion, "SyncPrometheusTemplate") + return +} + +func NewSyncPrometheusTemplateResponse() (response *SyncPrometheusTemplateResponse) { + response = &SyncPrometheusTemplateResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 同步模板到实例或者集群 +func (c *Client) SyncPrometheusTemplate(request *SyncPrometheusTemplateRequest) (response *SyncPrometheusTemplateResponse, err error) { + if request == nil { + request = NewSyncPrometheusTemplateRequest() + } + response = NewSyncPrometheusTemplateResponse() + err = c.Send(request, response) + return +} + func NewUpgradeClusterInstancesRequest() (request *UpgradeClusterInstancesRequest) { request = &UpgradeClusterInstancesRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/models.go index 947defc09b..a4e53d3f9f 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/models.go @@ -60,7 +60,7 @@ type AddExistedInstancesRequest struct { // 集群ID ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` - // 实例列表 + // 实例列表,不支持竞价实例 InstanceIds []*string `json:"InstanceIds,omitempty" name:"InstanceIds" list` // 实例额外需要设置参数信息 @@ -77,6 +77,9 @@ type AddExistedInstancesRequest struct { // 重装系统时,可以指定修改实例的HostName(集群为HostName模式时,此参数必传,规则名称除不支持大写字符外与[CVM创建实例](https://cloud.tencent.com/document/product/213/15730)接口HostName一致) HostName *string `json:"HostName,omitempty" name:"HostName"` + + // 节点池选项 + NodePool *NodePoolOption `json:"NodePool,omitempty" name:"NodePool"` } func (r *AddExistedInstancesRequest) ToJsonString() string { @@ -339,13 +342,13 @@ type ClusterAdvancedSettings struct { // 是否启用集群删除保护 DeletionProtection *bool `json:"DeletionProtection,omitempty" name:"DeletionProtection"` - // 集群的网络代理模型,目前tke集群支持的网络代理模式有三种:iptables,ipvs,ipvs+bpf,此参数仅在使用ipvs+bpf模式时使用,三种网络模式的参数设置关系如下: + // 集群的网络代理模型,目前tke集群支持的网络代理模式有三种:iptables,ipvs,ipvs-bpf,此参数仅在使用ipvs-bpf模式时使用,三种网络模式的参数设置关系如下: // iptables模式:IPVS和KubeProxyMode都不设置 // ipvs模式: 设置IPVS为true, KubeProxyMode不设置 // ipvs-bpf模式: 设置KubeProxyMode为kube-proxy-bpf // 使用ipvs-bpf的网络模式需要满足以下条件: // 1. 集群版本必须为1.14及以上; - // 2. 系统镜像必须是tke定制的镜像如: ubuntu TKE-optimized、centos TKE-optimized; + // 2. 系统镜像必须是: Tencent Linux 2.4; KubeProxyMode *string `json:"KubeProxyMode,omitempty" name:"KubeProxyMode"` // 是否开启审计开关 @@ -1002,6 +1005,43 @@ func (r *CreatePrometheusDashboardResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type CreatePrometheusTemplateRequest struct { + *tchttp.BaseRequest + + // 模板设置 + Template *PrometheusTemplate `json:"Template,omitempty" name:"Template"` +} + +func (r *CreatePrometheusTemplateRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreatePrometheusTemplateRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreatePrometheusTemplateResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 模板Id + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CreatePrometheusTemplateResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreatePrometheusTemplateResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DataDisk struct { // 云盘类型 @@ -1345,6 +1385,77 @@ func (r *DeleteClusterRouteTableResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type DeletePrometheusTemplateRequest struct { + *tchttp.BaseRequest + + // 模板id + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` +} + +func (r *DeletePrometheusTemplateRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeletePrometheusTemplateRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeletePrometheusTemplateResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DeletePrometheusTemplateResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeletePrometheusTemplateResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeletePrometheusTemplateSyncRequest struct { + *tchttp.BaseRequest + + // 模板id + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` + + // 取消同步的对象列表 + Targets []*PrometheusTemplateSyncTarget `json:"Targets,omitempty" name:"Targets" list` +} + +func (r *DeletePrometheusTemplateSyncRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeletePrometheusTemplateSyncRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DeletePrometheusTemplateSyncResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DeletePrometheusTemplateSyncResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DeletePrometheusTemplateSyncResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DescribeClusterAsGroupOptionRequest struct { *tchttp.BaseRequest @@ -2015,200 +2126,480 @@ func (r *DescribePrometheusAgentInstancesResponse) FromJsonString(s string) erro return json.Unmarshal([]byte(s), &r) } -type DescribeRegionsRequest struct { +type DescribePrometheusAgentsRequest struct { *tchttp.BaseRequest + + // 实例id + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 用于分页 + Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + + // 用于分页 + Limit *uint64 `json:"Limit,omitempty" name:"Limit"` } -func (r *DescribeRegionsRequest) ToJsonString() string { +func (r *DescribePrometheusAgentsRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeRegionsRequest) FromJsonString(s string) error { +func (r *DescribePrometheusAgentsRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeRegionsResponse struct { +type DescribePrometheusAgentsResponse struct { *tchttp.BaseResponse Response *struct { - // 地域的数量 - // 注意:此字段可能返回 null,表示取不到有效值。 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + // 被关联集群信息 + Agents []*PrometheusAgentOverview `json:"Agents,omitempty" name:"Agents" list` - // 地域列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - RegionInstanceSet []*RegionInstance `json:"RegionInstanceSet,omitempty" name:"RegionInstanceSet" list` + // 被关联集群总量 + Total *uint64 `json:"Total,omitempty" name:"Total"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeRegionsResponse) ToJsonString() string { +func (r *DescribePrometheusAgentsResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeRegionsResponse) FromJsonString(s string) error { +func (r *DescribePrometheusAgentsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeRouteTableConflictsRequest struct { +type DescribePrometheusAlertRuleRequest struct { *tchttp.BaseRequest - // 路由表CIDR - RouteTableCidrBlock *string `json:"RouteTableCidrBlock,omitempty" name:"RouteTableCidrBlock"` + // 实例id + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` - // 路由表绑定的VPC - VpcId *string `json:"VpcId,omitempty" name:"VpcId"` + // 分页 + Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + + // 分页 + Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + + // 过滤 + // 支持ID,Name + Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` } -func (r *DescribeRouteTableConflictsRequest) ToJsonString() string { +func (r *DescribePrometheusAlertRuleRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeRouteTableConflictsRequest) FromJsonString(s string) error { +func (r *DescribePrometheusAlertRuleRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type DescribeRouteTableConflictsResponse struct { +type DescribePrometheusAlertRuleResponse struct { *tchttp.BaseResponse Response *struct { - // 路由表是否冲突。 - HasConflict *bool `json:"HasConflict,omitempty" name:"HasConflict"` + // 告警详情 + AlertRules []*PrometheusAlertRuleDetail `json:"AlertRules,omitempty" name:"AlertRules" list` - // 路由表冲突列表。 - // 注意:此字段可能返回 null,表示取不到有效值。 - RouteTableConflictSet []*RouteTableConflict `json:"RouteTableConflictSet,omitempty" name:"RouteTableConflictSet" list` + // 总数 + Total *uint64 `json:"Total,omitempty" name:"Total"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` } -func (r *DescribeRouteTableConflictsResponse) ToJsonString() string { +func (r *DescribePrometheusAlertRuleResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *DescribeRouteTableConflictsResponse) FromJsonString(s string) error { +func (r *DescribePrometheusAlertRuleResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type EnhancedService struct { +type DescribePrometheusOverviewsRequest struct { + *tchttp.BaseRequest - // 开启云安全服务。若不指定该参数,则默认开启云安全服务。 - SecurityService *RunSecurityServiceEnabled `json:"SecurityService,omitempty" name:"SecurityService"` + // 用于分页 + Offset *uint64 `json:"Offset,omitempty" name:"Offset"` - // 开启云监控服务。若不指定该参数,则默认开启云监控服务。 - MonitorService *RunMonitorServiceEnabled `json:"MonitorService,omitempty" name:"MonitorService"` -} + // 用于分页 + Limit *uint64 `json:"Limit,omitempty" name:"Limit"` -type ExistedInstance struct { + // 过滤实例,目前支持: + // ID: 通过实例ID来过滤 + // Name: 通过实例名称来过滤 + Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` +} - // 实例是否支持加入集群(TRUE 可以加入 FALSE 不能加入)。 - // 注意:此字段可能返回 null,表示取不到有效值。 - Usable *bool `json:"Usable,omitempty" name:"Usable"` +func (r *DescribePrometheusOverviewsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 实例不支持加入的原因。 - // 注意:此字段可能返回 null,表示取不到有效值。 - UnusableReason *string `json:"UnusableReason,omitempty" name:"UnusableReason"` +func (r *DescribePrometheusOverviewsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 实例已经所在的集群ID。 - // 注意:此字段可能返回 null,表示取不到有效值。 - AlreadyInCluster *string `json:"AlreadyInCluster,omitempty" name:"AlreadyInCluster"` +type DescribePrometheusOverviewsResponse struct { + *tchttp.BaseResponse + Response *struct { - // 实例ID形如:ins-xxxxxxxx。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + // 实例列表 + Instances []*PrometheusInstanceOverview `json:"Instances,omitempty" name:"Instances" list` - // 实例名称。 + // 实例总数 // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceName *string `json:"InstanceName,omitempty" name:"InstanceName"` + Total *uint64 `json:"Total,omitempty" name:"Total"` - // 实例主网卡的内网IP列表。 - // 注意:此字段可能返回 null,表示取不到有效值。 - PrivateIpAddresses []*string `json:"PrivateIpAddresses,omitempty" name:"PrivateIpAddresses" list` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} - // 实例主网卡的公网IP列表。 - // 注意:此字段可能返回 null,表示取不到有效值。 - // 注意:此字段可能返回 null,表示取不到有效值。 - PublicIpAddresses []*string `json:"PublicIpAddresses,omitempty" name:"PublicIpAddresses" list` +func (r *DescribePrometheusOverviewsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 创建时间。按照ISO8601标准表示,并且使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。 - // 注意:此字段可能返回 null,表示取不到有效值。 - CreatedTime *string `json:"CreatedTime,omitempty" name:"CreatedTime"` +func (r *DescribePrometheusOverviewsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 实例的CPU核数,单位:核。 - // 注意:此字段可能返回 null,表示取不到有效值。 - CPU *uint64 `json:"CPU,omitempty" name:"CPU"` +type DescribePrometheusTargetsRequest struct { + *tchttp.BaseRequest - // 实例内存容量,单位:GB。 - // 注意:此字段可能返回 null,表示取不到有效值。 - Memory *uint64 `json:"Memory,omitempty" name:"Memory"` + // 实例id + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` - // 操作系统名称。 - // 注意:此字段可能返回 null,表示取不到有效值。 - OsName *string `json:"OsName,omitempty" name:"OsName"` + // 集群类型 + ClusterType *string `json:"ClusterType,omitempty" name:"ClusterType"` - // 实例机型。 - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceType *string `json:"InstanceType,omitempty" name:"InstanceType"` + // 集群id + ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` - // 伸缩组ID - // 注意:此字段可能返回 null,表示取不到有效值。 - AutoscalingGroupId *string `json:"AutoscalingGroupId,omitempty" name:"AutoscalingGroupId"` + // 过滤条件,当前支持 + // Name=state + // Value=up, down, unknown + Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` +} - // 实例计费模式。取值范围: PREPAID:表示预付费,即包年包月 POSTPAID_BY_HOUR:表示后付费,即按量计费 CDHPAID:CDH付费,即只对CDH计费,不对CDH上的实例计费。 - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceChargeType *string `json:"InstanceChargeType,omitempty" name:"InstanceChargeType"` +func (r *DescribePrometheusTargetsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) } -type ExistedInstancesForNode struct { +func (r *DescribePrometheusTargetsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 节点角色,取值:MASTER_ETCD, WORKER。MASTER_ETCD只有在创建 INDEPENDENT_CLUSTER 独立集群时需要指定。MASTER_ETCD节点数量为3~7,建议为奇数。MASTER_ETCD最小配置为4C8G。 - NodeRole *string `json:"NodeRole,omitempty" name:"NodeRole"` +type DescribePrometheusTargetsResponse struct { + *tchttp.BaseResponse + Response *struct { - // 已存在实例的重装参数 - ExistedInstancesPara *ExistedInstancesPara `json:"ExistedInstancesPara,omitempty" name:"ExistedInstancesPara"` + // 所有Job的targets信息 + Jobs []*PrometheusJobTargets `json:"Jobs,omitempty" name:"Jobs" list` - // 节点高级设置,会覆盖集群级别设置的InstanceAdvancedSettings(当前只对节点自定义参数ExtraArgs生效) - InstanceAdvancedSettingsOverride *InstanceAdvancedSettings `json:"InstanceAdvancedSettingsOverride,omitempty" name:"InstanceAdvancedSettingsOverride"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` } -type ExistedInstancesPara struct { - - // 集群ID - InstanceIds []*string `json:"InstanceIds,omitempty" name:"InstanceIds" list` +func (r *DescribePrometheusTargetsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 实例额外需要设置参数信息 - InstanceAdvancedSettings *InstanceAdvancedSettings `json:"InstanceAdvancedSettings,omitempty" name:"InstanceAdvancedSettings"` +func (r *DescribePrometheusTargetsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} - // 增强服务。通过该参数可以指定是否开启云安全、云监控等服务。若不指定该参数,则默认开启云监控、云安全服务。 - EnhancedService *EnhancedService `json:"EnhancedService,omitempty" name:"EnhancedService"` +type DescribePrometheusTemplateSyncRequest struct { + *tchttp.BaseRequest - // 节点登录信息(目前仅支持使用Password或者单个KeyIds) - LoginSettings *LoginSettings `json:"LoginSettings,omitempty" name:"LoginSettings"` + // 模板ID + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` +} - // 实例所属安全组。该参数可以通过调用 DescribeSecurityGroups 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 - SecurityGroupIds []*string `json:"SecurityGroupIds,omitempty" name:"SecurityGroupIds" list` +func (r *DescribePrometheusTemplateSyncRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} - // 重装系统时,可以指定修改实例的HostName(集群为HostName模式时,此参数必传,规则名称除不支持大写字符外与[CVM创建实例](https://cloud.tencent.com/document/product/213/15730)接口HostName一致) - HostName *string `json:"HostName,omitempty" name:"HostName"` +func (r *DescribePrometheusTemplateSyncRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } -type ExtensionAddon struct { +type DescribePrometheusTemplateSyncResponse struct { + *tchttp.BaseResponse + Response *struct { - // 扩展组件名称 - AddonName *string `json:"AddonName,omitempty" name:"AddonName"` + // 同步目标详情 + Targets []*PrometheusTemplateSyncTarget `json:"Targets,omitempty" name:"Targets" list` - // 扩展组件信息(扩展组件资源对象的json字符串描述) - AddonParam *string `json:"AddonParam,omitempty" name:"AddonParam"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` } -type Filter struct { +func (r *DescribePrometheusTemplateSyncResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribePrometheusTemplateSyncResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribePrometheusTemplatesRequest struct { + *tchttp.BaseRequest + + // 模糊过滤条件,支持 + // Level 按模板级别过滤 + // Name 按名称过滤 + // Describe 按描述过滤 + // ID 按templateId过滤 + Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` + + // 分页偏移 + Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + + // 总数限制 + Limit *uint64 `json:"Limit,omitempty" name:"Limit"` +} + +func (r *DescribePrometheusTemplatesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribePrometheusTemplatesRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribePrometheusTemplatesResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 模板列表 + Templates []*PrometheusTemplate `json:"Templates,omitempty" name:"Templates" list` + + // 总数 + Total *uint64 `json:"Total,omitempty" name:"Total"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribePrometheusTemplatesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribePrometheusTemplatesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeRegionsRequest struct { + *tchttp.BaseRequest +} + +func (r *DescribeRegionsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeRegionsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeRegionsResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 地域的数量 + // 注意:此字段可能返回 null,表示取不到有效值。 + TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + + // 地域列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + RegionInstanceSet []*RegionInstance `json:"RegionInstanceSet,omitempty" name:"RegionInstanceSet" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeRegionsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeRegionsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeRouteTableConflictsRequest struct { + *tchttp.BaseRequest + + // 路由表CIDR + RouteTableCidrBlock *string `json:"RouteTableCidrBlock,omitempty" name:"RouteTableCidrBlock"` + + // 路由表绑定的VPC + VpcId *string `json:"VpcId,omitempty" name:"VpcId"` +} + +func (r *DescribeRouteTableConflictsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeRouteTableConflictsRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeRouteTableConflictsResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 路由表是否冲突。 + HasConflict *bool `json:"HasConflict,omitempty" name:"HasConflict"` + + // 路由表冲突列表。 + // 注意:此字段可能返回 null,表示取不到有效值。 + RouteTableConflictSet []*RouteTableConflict `json:"RouteTableConflictSet,omitempty" name:"RouteTableConflictSet" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeRouteTableConflictsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeRouteTableConflictsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type EnhancedService struct { + + // 开启云安全服务。若不指定该参数,则默认开启云安全服务。 + SecurityService *RunSecurityServiceEnabled `json:"SecurityService,omitempty" name:"SecurityService"` + + // 开启云监控服务。若不指定该参数,则默认开启云监控服务。 + MonitorService *RunMonitorServiceEnabled `json:"MonitorService,omitempty" name:"MonitorService"` +} + +type ExistedInstance struct { + + // 实例是否支持加入集群(TRUE 可以加入 FALSE 不能加入)。 + // 注意:此字段可能返回 null,表示取不到有效值。 + Usable *bool `json:"Usable,omitempty" name:"Usable"` + + // 实例不支持加入的原因。 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnusableReason *string `json:"UnusableReason,omitempty" name:"UnusableReason"` + + // 实例已经所在的集群ID。 + // 注意:此字段可能返回 null,表示取不到有效值。 + AlreadyInCluster *string `json:"AlreadyInCluster,omitempty" name:"AlreadyInCluster"` + + // 实例ID形如:ins-xxxxxxxx。 + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 实例名称。 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceName *string `json:"InstanceName,omitempty" name:"InstanceName"` + + // 实例主网卡的内网IP列表。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PrivateIpAddresses []*string `json:"PrivateIpAddresses,omitempty" name:"PrivateIpAddresses" list` + + // 实例主网卡的公网IP列表。 + // 注意:此字段可能返回 null,表示取不到有效值。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PublicIpAddresses []*string `json:"PublicIpAddresses,omitempty" name:"PublicIpAddresses" list` + + // 创建时间。按照ISO8601标准表示,并且使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。 + // 注意:此字段可能返回 null,表示取不到有效值。 + CreatedTime *string `json:"CreatedTime,omitempty" name:"CreatedTime"` + + // 实例的CPU核数,单位:核。 + // 注意:此字段可能返回 null,表示取不到有效值。 + CPU *uint64 `json:"CPU,omitempty" name:"CPU"` + + // 实例内存容量,单位:GB。 + // 注意:此字段可能返回 null,表示取不到有效值。 + Memory *uint64 `json:"Memory,omitempty" name:"Memory"` + + // 操作系统名称。 + // 注意:此字段可能返回 null,表示取不到有效值。 + OsName *string `json:"OsName,omitempty" name:"OsName"` + + // 实例机型。 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceType *string `json:"InstanceType,omitempty" name:"InstanceType"` + + // 伸缩组ID + // 注意:此字段可能返回 null,表示取不到有效值。 + AutoscalingGroupId *string `json:"AutoscalingGroupId,omitempty" name:"AutoscalingGroupId"` + + // 实例计费模式。取值范围: PREPAID:表示预付费,即包年包月 POSTPAID_BY_HOUR:表示后付费,即按量计费 CDHPAID:CDH付费,即只对CDH计费,不对CDH上的实例计费。 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceChargeType *string `json:"InstanceChargeType,omitempty" name:"InstanceChargeType"` +} + +type ExistedInstancesForNode struct { + + // 节点角色,取值:MASTER_ETCD, WORKER。MASTER_ETCD只有在创建 INDEPENDENT_CLUSTER 独立集群时需要指定。MASTER_ETCD节点数量为3~7,建议为奇数。MASTER_ETCD最小配置为4C8G。 + NodeRole *string `json:"NodeRole,omitempty" name:"NodeRole"` + + // 已存在实例的重装参数 + ExistedInstancesPara *ExistedInstancesPara `json:"ExistedInstancesPara,omitempty" name:"ExistedInstancesPara"` + + // 节点高级设置,会覆盖集群级别设置的InstanceAdvancedSettings(当前只对节点自定义参数ExtraArgs生效) + InstanceAdvancedSettingsOverride *InstanceAdvancedSettings `json:"InstanceAdvancedSettingsOverride,omitempty" name:"InstanceAdvancedSettingsOverride"` +} + +type ExistedInstancesPara struct { + + // 集群ID + InstanceIds []*string `json:"InstanceIds,omitempty" name:"InstanceIds" list` + + // 实例额外需要设置参数信息 + InstanceAdvancedSettings *InstanceAdvancedSettings `json:"InstanceAdvancedSettings,omitempty" name:"InstanceAdvancedSettings"` + + // 增强服务。通过该参数可以指定是否开启云安全、云监控等服务。若不指定该参数,则默认开启云监控、云安全服务。 + EnhancedService *EnhancedService `json:"EnhancedService,omitempty" name:"EnhancedService"` + + // 节点登录信息(目前仅支持使用Password或者单个KeyIds) + LoginSettings *LoginSettings `json:"LoginSettings,omitempty" name:"LoginSettings"` + + // 实例所属安全组。该参数可以通过调用 DescribeSecurityGroups 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + SecurityGroupIds []*string `json:"SecurityGroupIds,omitempty" name:"SecurityGroupIds" list` + + // 重装系统时,可以指定修改实例的HostName(集群为HostName模式时,此参数必传,规则名称除不支持大写字符外与[CVM创建实例](https://cloud.tencent.com/document/product/213/15730)接口HostName一致) + HostName *string `json:"HostName,omitempty" name:"HostName"` +} + +type ExtensionAddon struct { + + // 扩展组件名称 + AddonName *string `json:"AddonName,omitempty" name:"AddonName"` + + // 扩展组件信息(扩展组件资源对象的json字符串描述) + AddonParam *string `json:"AddonParam,omitempty" name:"AddonParam"` +} + +type Filter struct { // 需要过滤的字段。 Name *string `json:"Name,omitempty" name:"Name"` @@ -2400,6 +2791,43 @@ func (r *ModifyClusterAsGroupAttributeResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ModifyClusterAsGroupOptionAttributeRequest struct { + *tchttp.BaseRequest + + // 集群ID + ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` + + // 集群弹性伸缩属性 + ClusterAsGroupOption *ClusterAsGroupOption `json:"ClusterAsGroupOption,omitempty" name:"ClusterAsGroupOption"` +} + +func (r *ModifyClusterAsGroupOptionAttributeRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyClusterAsGroupOptionAttributeRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyClusterAsGroupOptionAttributeResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ModifyClusterAsGroupOptionAttributeResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyClusterAsGroupOptionAttributeResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type ModifyClusterAttributeRequest struct { *tchttp.BaseRequest @@ -2446,35 +2874,136 @@ type ModifyClusterAttributeResponse struct { } `json:"Response"` } -func (r *ModifyClusterAttributeResponse) ToJsonString() string { +func (r *ModifyClusterAttributeResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyClusterAttributeResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyClusterEndpointSPRequest struct { + *tchttp.BaseRequest + + // 集群ID + ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` + + // 安全策略放通单个IP或CIDR(例如: "192.168.1.0/24",默认为拒绝所有) + SecurityPolicies []*string `json:"SecurityPolicies,omitempty" name:"SecurityPolicies" list` +} + +func (r *ModifyClusterEndpointSPRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyClusterEndpointSPRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyClusterEndpointSPResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ModifyClusterEndpointSPResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyClusterEndpointSPResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyClusterNodePoolRequest struct { + *tchttp.BaseRequest + + // 集群ID + ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` + + // 节点池ID + NodePoolId *string `json:"NodePoolId,omitempty" name:"NodePoolId"` + + // 名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 最大节点数 + MaxNodesNum *int64 `json:"MaxNodesNum,omitempty" name:"MaxNodesNum"` + + // 最小节点数 + MinNodesNum *int64 `json:"MinNodesNum,omitempty" name:"MinNodesNum"` + + // 标签 + Labels []*Label `json:"Labels,omitempty" name:"Labels" list` + + // 污点 + Taints []*Taint `json:"Taints,omitempty" name:"Taints" list` + + // 是否开启伸缩 + EnableAutoscale *bool `json:"EnableAutoscale,omitempty" name:"EnableAutoscale"` + + // 操作系统名称 + OsName *string `json:"OsName,omitempty" name:"OsName"` + + // 镜像版本,"DOCKER_CUSTOMIZE"(容器定制版),"GENERAL"(普通版本,默认值) + OsCustomizeType *string `json:"OsCustomizeType,omitempty" name:"OsCustomizeType"` +} + +func (r *ModifyClusterNodePoolRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyClusterNodePoolRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyClusterNodePoolResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ModifyClusterNodePoolResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *ModifyClusterAttributeResponse) FromJsonString(s string) error { +func (r *ModifyClusterNodePoolResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type ModifyClusterEndpointSPRequest struct { +type ModifyNodePoolDesiredCapacityAboutAsgRequest struct { *tchttp.BaseRequest - // 集群ID + // 集群id ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` - // 安全策略放通单个IP或CIDR(例如: "192.168.1.0/24",默认为拒绝所有) - SecurityPolicies []*string `json:"SecurityPolicies,omitempty" name:"SecurityPolicies" list` + // 节点池id + NodePoolId *string `json:"NodePoolId,omitempty" name:"NodePoolId"` + + // 节点池所关联的伸缩组的期望实例数 + DesiredCapacity *int64 `json:"DesiredCapacity,omitempty" name:"DesiredCapacity"` } -func (r *ModifyClusterEndpointSPRequest) ToJsonString() string { +func (r *ModifyNodePoolDesiredCapacityAboutAsgRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *ModifyClusterEndpointSPRequest) FromJsonString(s string) error { +func (r *ModifyNodePoolDesiredCapacityAboutAsgRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type ModifyClusterEndpointSPResponse struct { +type ModifyNodePoolDesiredCapacityAboutAsgResponse struct { *tchttp.BaseResponse Response *struct { @@ -2483,53 +3012,35 @@ type ModifyClusterEndpointSPResponse struct { } `json:"Response"` } -func (r *ModifyClusterEndpointSPResponse) ToJsonString() string { +func (r *ModifyNodePoolDesiredCapacityAboutAsgResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *ModifyClusterEndpointSPResponse) FromJsonString(s string) error { +func (r *ModifyNodePoolDesiredCapacityAboutAsgResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type ModifyClusterNodePoolRequest struct { +type ModifyPrometheusTemplateRequest struct { *tchttp.BaseRequest - // 集群ID - ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` - - // 节点池ID - NodePoolId *string `json:"NodePoolId,omitempty" name:"NodePoolId"` - - // 名称 - Name *string `json:"Name,omitempty" name:"Name"` - - // 最大节点数 - MaxNodesNum *int64 `json:"MaxNodesNum,omitempty" name:"MaxNodesNum"` - - // 最小节点数 - MinNodesNum *int64 `json:"MinNodesNum,omitempty" name:"MinNodesNum"` - - // 标签 - Labels []*Label `json:"Labels,omitempty" name:"Labels" list` - - // 污点 - Taints []*Taint `json:"Taints,omitempty" name:"Taints" list` + // 模板ID + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` - // 是否开启伸缩 - EnableAutoscale *bool `json:"EnableAutoscale,omitempty" name:"EnableAutoscale"` + // 修改内容 + Template *PrometheusTemplateModify `json:"Template,omitempty" name:"Template"` } -func (r *ModifyClusterNodePoolRequest) ToJsonString() string { +func (r *ModifyPrometheusTemplateRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *ModifyClusterNodePoolRequest) FromJsonString(s string) error { +func (r *ModifyPrometheusTemplateRequest) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type ModifyClusterNodePoolResponse struct { +type ModifyPrometheusTemplateResponse struct { *tchttp.BaseResponse Response *struct { @@ -2538,12 +3049,12 @@ type ModifyClusterNodePoolResponse struct { } `json:"Response"` } -func (r *ModifyClusterNodePoolResponse) ToJsonString() string { +func (r *ModifyPrometheusTemplateResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } -func (r *ModifyClusterNodePoolResponse) FromJsonString(s string) error { +func (r *ModifyPrometheusTemplateResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } @@ -2602,6 +3113,358 @@ type NodePool struct { // 期望的节点数量 // 注意:此字段可能返回 null,表示取不到有效值。 DesiredNodesNum *int64 `json:"DesiredNodesNum,omitempty" name:"DesiredNodesNum"` + + // 节点池osName + // 注意:此字段可能返回 null,表示取不到有效值。 + NodePoolOs *string `json:"NodePoolOs,omitempty" name:"NodePoolOs"` + + // 容器的镜像版本,"DOCKER_CUSTOMIZE"(容器定制版),"GENERAL"(普通版本,默认值) + // 注意:此字段可能返回 null,表示取不到有效值。 + OsCustomizeType *string `json:"OsCustomizeType,omitempty" name:"OsCustomizeType"` + + // 镜像id + // 注意:此字段可能返回 null,表示取不到有效值。 + ImageId *string `json:"ImageId,omitempty" name:"ImageId"` +} + +type NodePoolOption struct { + + // 是否加入节点池 + AddToNodePool *bool `json:"AddToNodePool,omitempty" name:"AddToNodePool"` + + // 节点池id + NodePoolId *string `json:"NodePoolId,omitempty" name:"NodePoolId"` + + // 是否继承节点池相关配置 + InheritConfigurationFromNodePool *bool `json:"InheritConfigurationFromNodePool,omitempty" name:"InheritConfigurationFromNodePool"` +} + +type PrometheusAgentOverview struct { + + // 集群类型 + ClusterType *string `json:"ClusterType,omitempty" name:"ClusterType"` + + // 集群id + ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` + + // agent状态 + // normal = 正常 + // abnormal = 异常 + Status *string `json:"Status,omitempty" name:"Status"` + + // 集群名称 + ClusterName *string `json:"ClusterName,omitempty" name:"ClusterName"` +} + +type PrometheusAlertRule struct { + + // 规则名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // prometheus语句 + Rule *string `json:"Rule,omitempty" name:"Rule"` + + // 额外标签 + Labels []*Label `json:"Labels,omitempty" name:"Labels" list` + + // 告警发送模板 + Template *string `json:"Template,omitempty" name:"Template"` + + // 持续时间 + For *string `json:"For,omitempty" name:"For"` + + // 该条规则的描述信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Describe *string `json:"Describe,omitempty" name:"Describe"` +} + +type PrometheusAlertRuleDetail struct { + + // 规则名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 规则列表 + Rules []*PrometheusAlertRule `json:"Rules,omitempty" name:"Rules" list` + + // 最后修改时间 + UpdatedAt *string `json:"UpdatedAt,omitempty" name:"UpdatedAt"` + + // 告警渠道 + Notification *PrometheusNotification `json:"Notification,omitempty" name:"Notification"` + + // 告警 id + Id *string `json:"Id,omitempty" name:"Id"` + + // 如果该告警来至模板下发,则TemplateId为模板id + // 注意:此字段可能返回 null,表示取不到有效值。 + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` +} + +type PrometheusConfigItem struct { + + // 名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 配置内容 + Config *string `json:"Config,omitempty" name:"Config"` + + // 用于出参,如果该配置来至模板,则为模板id + // 注意:此字段可能返回 null,表示取不到有效值。 + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` +} + +type PrometheusInstanceOverview struct { + + // 实例id + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 实例名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 实例vpcId + VpcId *string `json:"VpcId,omitempty" name:"VpcId"` + + // 实例子网Id + SubnetId *string `json:"SubnetId,omitempty" name:"SubnetId"` + + // 实例当前的状态 + // prepare_env = 初始化环境 + // install_suit = 安装组件 + // running = 运行中 + Status *string `json:"Status,omitempty" name:"Status"` + + // COS桶存储 + COSBucket *string `json:"COSBucket,omitempty" name:"COSBucket"` +} + +type PrometheusJobTargets struct { + + // 该Job的targets列表 + Targets []*PrometheusTarget `json:"Targets,omitempty" name:"Targets" list` + + // job的名称 + JobName *string `json:"JobName,omitempty" name:"JobName"` + + // targets总数 + Total *uint64 `json:"Total,omitempty" name:"Total"` + + // 健康的target总数 + Up *uint64 `json:"Up,omitempty" name:"Up"` +} + +type PrometheusNotification struct { + + // 是否启用 + Enabled *bool `json:"Enabled,omitempty" name:"Enabled"` + + // 收敛时间 + RepeatInterval *string `json:"RepeatInterval,omitempty" name:"RepeatInterval"` + + // 生效起始时间 + TimeRangeStart *string `json:"TimeRangeStart,omitempty" name:"TimeRangeStart"` + + // 生效结束时间 + TimeRangeEnd *string `json:"TimeRangeEnd,omitempty" name:"TimeRangeEnd"` + + // 告警通知方式。目前有SMS、EMAIL、CALL、WECHAT方式。 + // 分别代表:短信、邮件、电话、微信 + // 注意:此字段可能返回 null,表示取不到有效值。 + NotifyWay []*string `json:"NotifyWay,omitempty" name:"NotifyWay" list` + + // 告警接收组(用户组) + // 注意:此字段可能返回 null,表示取不到有效值。 + ReceiverGroups []*uint64 `json:"ReceiverGroups,omitempty" name:"ReceiverGroups" list` + + // 电话告警顺序。 + // 注:NotifyWay选择CALL,采用该参数。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneNotifyOrder []*uint64 `json:"PhoneNotifyOrder,omitempty" name:"PhoneNotifyOrder" list` + + // 电话告警次数。 + // 注:NotifyWay选择CALL,采用该参数。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneCircleTimes *int64 `json:"PhoneCircleTimes,omitempty" name:"PhoneCircleTimes"` + + // 电话告警轮内间隔。单位:秒 + // 注:NotifyWay选择CALL,采用该参数。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneInnerInterval *int64 `json:"PhoneInnerInterval,omitempty" name:"PhoneInnerInterval"` + + // 电话告警轮外间隔。单位:秒 + // 注:NotifyWay选择CALL,采用该参数。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneCircleInterval *int64 `json:"PhoneCircleInterval,omitempty" name:"PhoneCircleInterval"` + + // 电话告警触达通知 + // 注:NotifyWay选择CALL,采用该参数。 + // 注意:此字段可能返回 null,表示取不到有效值。 + PhoneArriveNotice *bool `json:"PhoneArriveNotice,omitempty" name:"PhoneArriveNotice"` + + // 通道类型,默认为amp,支持以下 + // amp + // webhook + // 注意:此字段可能返回 null,表示取不到有效值。 + Type *string `json:"Type,omitempty" name:"Type"` + + // 如果Type为webhook, 则该字段为必填项 + // 注意:此字段可能返回 null,表示取不到有效值。 + WebHook *string `json:"WebHook,omitempty" name:"WebHook"` +} + +type PrometheusTarget struct { + + // 抓取目标的URL + Url *string `json:"Url,omitempty" name:"Url"` + + // target当前状态,当前支持 + // up = 健康 + // down = 不健康 + // unknown = 未知 + State *string `json:"State,omitempty" name:"State"` + + // target的元label + Labels []*Label `json:"Labels,omitempty" name:"Labels" list` + + // 上一次抓取的时间 + LastScrape *string `json:"LastScrape,omitempty" name:"LastScrape"` + + // 上一次抓取的耗时,单位是s + ScrapeDuration *float64 `json:"ScrapeDuration,omitempty" name:"ScrapeDuration"` + + // 上一次抓取如果错误,该字段存储错误信息 + Error *string `json:"Error,omitempty" name:"Error"` +} + +type PrometheusTemplate struct { + + // 模板名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 模板维度,支持以下类型 + // instance 实例级别 + // cluster 集群级别 + Level *string `json:"Level,omitempty" name:"Level"` + + // 模板描述 + // 注意:此字段可能返回 null,表示取不到有效值。 + Describe *string `json:"Describe,omitempty" name:"Describe"` + + // 当Level为instance时有效, + // 模板中的告警配置列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + AlertRules []*PrometheusAlertRule `json:"AlertRules,omitempty" name:"AlertRules" list` + + // 当Level为instance时有效, + // 模板中的聚合规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + RecordRules []*PrometheusConfigItem `json:"RecordRules,omitempty" name:"RecordRules" list` + + // 当Level为cluster时有效, + // 模板中的ServiceMonitor规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + ServiceMonitors []*PrometheusConfigItem `json:"ServiceMonitors,omitempty" name:"ServiceMonitors" list` + + // 当Level为cluster时有效, + // 模板中的PodMonitors规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + PodMonitors []*PrometheusConfigItem `json:"PodMonitors,omitempty" name:"PodMonitors" list` + + // 当Level为cluster时有效, + // 模板中的RawJobs规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + RawJobs []*PrometheusConfigItem `json:"RawJobs,omitempty" name:"RawJobs" list` + + // 模板的ID, 用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` + + // 最近更新时间,用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpdateTime *string `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 当前版本,用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + Version *string `json:"Version,omitempty" name:"Version"` + + // 是否系统提供的默认模板,用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + IsDefault *bool `json:"IsDefault,omitempty" name:"IsDefault"` + + // 当Level为instance时有效, + // 模板中的告警配置列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + AlertDetailRules []*PrometheusAlertRuleDetail `json:"AlertDetailRules,omitempty" name:"AlertDetailRules" list` +} + +type PrometheusTemplateModify struct { + + // 修改名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 修改描述 + // 注意:此字段可能返回 null,表示取不到有效值。 + Describe *string `json:"Describe,omitempty" name:"Describe"` + + // 修改内容,只有当模板类型是Alert时生效 + // 注意:此字段可能返回 null,表示取不到有效值。 + AlertRules []*PrometheusAlertRule `json:"AlertRules,omitempty" name:"AlertRules" list` + + // 当Level为instance时有效, + // 模板中的聚合规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + RecordRules []*PrometheusConfigItem `json:"RecordRules,omitempty" name:"RecordRules" list` + + // 当Level为cluster时有效, + // 模板中的ServiceMonitor规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + ServiceMonitors []*PrometheusConfigItem `json:"ServiceMonitors,omitempty" name:"ServiceMonitors" list` + + // 当Level为cluster时有效, + // 模板中的PodMonitors规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + PodMonitors []*PrometheusConfigItem `json:"PodMonitors,omitempty" name:"PodMonitors" list` + + // 当Level为cluster时有效, + // 模板中的RawJobs规则列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + RawJobs []*PrometheusConfigItem `json:"RawJobs,omitempty" name:"RawJobs" list` + + // 修改内容,只有当模板类型是Alert时生效 + // 注意:此字段可能返回 null,表示取不到有效值。 + AlertDetailRules []*PrometheusAlertRuleDetail `json:"AlertDetailRules,omitempty" name:"AlertDetailRules" list` +} + +type PrometheusTemplateSyncTarget struct { + + // 目标所在地域 + Region *string `json:"Region,omitempty" name:"Region"` + + // 目标实例 + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 集群id,只有当采集模板的Level为cluster的时候需要 + // 注意:此字段可能返回 null,表示取不到有效值。 + ClusterId *string `json:"ClusterId,omitempty" name:"ClusterId"` + + // 最后一次同步时间, 用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + SyncTime *string `json:"SyncTime,omitempty" name:"SyncTime"` + + // 当前使用的模板版本,用于出参 + // 注意:此字段可能返回 null,表示取不到有效值。 + Version *string `json:"Version,omitempty" name:"Version"` + + // 集群类型,只有当采集模板的Level为cluster的时候需要 + // 注意:此字段可能返回 null,表示取不到有效值。 + ClusterType *string `json:"ClusterType,omitempty" name:"ClusterType"` + + // 用于出参,实例名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceName *string `json:"InstanceName,omitempty" name:"InstanceName"` + + // 用于出参,集群名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + ClusterName *string `json:"ClusterName,omitempty" name:"ClusterName"` } type RegionInstance struct { @@ -2746,6 +3609,43 @@ type RunSecurityServiceEnabled struct { Enabled *bool `json:"Enabled,omitempty" name:"Enabled"` } +type SyncPrometheusTemplateRequest struct { + *tchttp.BaseRequest + + // 实例id + TemplateId *string `json:"TemplateId,omitempty" name:"TemplateId"` + + // 同步目标 + Targets []*PrometheusTemplateSyncTarget `json:"Targets,omitempty" name:"Targets" list` +} + +func (r *SyncPrometheusTemplateRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *SyncPrometheusTemplateRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type SyncPrometheusTemplateResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *SyncPrometheusTemplateResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *SyncPrometheusTemplateResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type Tag struct { // 标签键 diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/client.go index 524f720826..3703bf9018 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/client.go @@ -296,7 +296,7 @@ func NewCreateContentReviewTemplateResponse() (response *CreateContentReviewTemp return } -// 创建用户自定义视频内容审核模板,数量上限:50。 +// 创建用户自定义视频内容智能识别模板,数量上限:50。 func (c *Client) CreateContentReviewTemplate(request *CreateContentReviewTemplateRequest) (response *CreateContentReviewTemplateResponse, err error) { if request == nil { request = NewCreateContentReviewTemplateRequest() @@ -371,7 +371,7 @@ func NewCreatePersonSampleResponse() (response *CreatePersonSampleResponse) { return } -// 该接口用于创建人物样本,用于通过人脸识别等技术,进行内容识别、内容审核等视频处理。 +// 该接口用于创建素材样本,用于通过五官定位等技术,进行内容识别、不适宜视频识别等视频处理。 func (c *Client) CreatePersonSample(request *CreatePersonSampleRequest) (response *CreatePersonSampleResponse, err error) { if request == nil { request = NewCreatePersonSampleRequest() @@ -571,7 +571,7 @@ func NewCreateWordSamplesResponse() (response *CreateWordSamplesResponse) { return } -// 该接口用于批量创建关键词样本,样本用于通过OCR、ASR技术,进行内容审核、内容识别等视频处理。 +// 该接口用于批量创建关键词样本,样本用于通过OCR、ASR技术,进行不适宜内容识别、内容识别等视频处理。 func (c *Client) CreateWordSamples(request *CreateWordSamplesRequest) (response *CreateWordSamplesResponse, err error) { if request == nil { request = NewCreateWordSamplesRequest() @@ -724,7 +724,7 @@ func NewDeleteContentReviewTemplateResponse() (response *DeleteContentReviewTemp return } -// 删除用户自定义视频内容审核模板。 +// 删除用户自定义视频内容智能识别模板。 func (c *Client) DeleteContentReviewTemplate(request *DeleteContentReviewTemplateRequest) (response *DeleteContentReviewTemplateResponse, err error) { if request == nil { request = NewDeleteContentReviewTemplateRequest() @@ -825,7 +825,7 @@ func NewDeletePersonSampleResponse() (response *DeletePersonSampleResponse) { return } -// 该接口用于根据人物 ID,删除人物样本。 +// 该接口用于根据人物 ID,删除素材样本。 func (c *Client) DeletePersonSample(request *DeletePersonSampleRequest) (response *DeletePersonSampleResponse, err error) { if request == nil { request = NewDeletePersonSampleRequest() @@ -1236,7 +1236,7 @@ func NewDescribeContentReviewTemplatesResponse() (response *DescribeContentRevie return } -// 根据视频内容审核模板唯一标识,获取视频内容审核模板详情列表。返回结果包含符合条件的所有用户自定义模板及[系统预置内容审核模板](https://cloud.tencent.com/document/product/266/33476#.E9.A2.84.E7.BD.AE.E8.A7.86.E9.A2.91.E5.86.85.E5.AE.B9.E5.AE.A1.E6.A0.B8.E6.A8.A1.E6.9D.BF)。 +// 根据视频内容智能识别模板唯一标识,获取视频内容智能识别模板详情列表。返回结果包含符合条件的所有用户自定义模板及[系统预置内容智能识别模板](https://cloud.tencent.com/document/product/266/33476#.E9.A2.84.E7.BD.AE.E8.A7.86.E9.A2.91.E5.86.85.E5.AE.B9.E5.AE.A1.E6.A0.B8.E6.A8.A1.E6.9D.BF)。 func (c *Client) DescribeContentReviewTemplates(request *DescribeContentReviewTemplatesRequest) (response *DescribeContentReviewTemplatesResponse, err error) { if request == nil { request = NewDescribeContentReviewTemplatesRequest() @@ -1246,6 +1246,38 @@ func (c *Client) DescribeContentReviewTemplates(request *DescribeContentReviewTe return } +func NewDescribeDailyPlayStatFileListRequest() (request *DescribeDailyPlayStatFileListRequest) { + request = &DescribeDailyPlayStatFileListRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vod", APIVersion, "DescribeDailyPlayStatFileList") + return +} + +func NewDescribeDailyPlayStatFileListResponse() (response *DescribeDailyPlayStatFileListResponse) { + response = &DescribeDailyPlayStatFileListResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 该接口用于查询播放统计文件的下载地址。 +// * 可以查询最近30天的播放统计文件下载地址。 +// * 云点播每天对前一天的 CDN 请求日志进行分析处理,生成播放统计文件。 +// * 播放统计文件内容包含媒体文件的播放次数、播放流量等统计信息。 +// * 播放次数统计说明: +// 1. HLS 文件:访问M3U8 文件时统计播放次数;访问TS 文件不统计播放次数。 +// 2. 其它文件文件(如 MP4 文件):播放请求带有 range 参数且 range 的 start 参数不等于0时不统计播放次数,其它情况统计播放次数。 +// * 播放设备的统计:播放请求带了 UserAgent 参数,并且 UserAgent 包含 Android 或者 iPhone 等标识,会统计为移动端播放次数,否则统计为 PC 端播放次数。 +func (c *Client) DescribeDailyPlayStatFileList(request *DescribeDailyPlayStatFileListRequest) (response *DescribeDailyPlayStatFileListResponse, err error) { + if request == nil { + request = NewDescribeDailyPlayStatFileListRequest() + } + response = NewDescribeDailyPlayStatFileListResponse() + err = c.Send(request, response) + return +} + func NewDescribeEventsStateRequest() (request *DescribeEventsStateRequest) { request = &DescribeEventsStateRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1398,7 +1430,7 @@ func NewDescribePersonSamplesResponse() (response *DescribePersonSamplesResponse return } -// 该接口用于查询人物样本信息,支持根据人物 ID、名称、标签,分页查询。 +// 该接口用于查询素材样本信息,支持根据素材 ID、名称、标签,分页查询。 func (c *Client) DescribePersonSamples(request *DescribePersonSamplesRequest) (response *DescribePersonSamplesResponse, err error) { if request == nil { request = NewDescribePersonSamplesRequest() @@ -1450,9 +1482,9 @@ func NewDescribeReviewDetailsResponse() (response *DescribeReviewDetailsResponse // 本接口已不推荐使用,用 [DescribeMediaProcessUsageData](/document/product/266/41464) 替代 // -// 该接口返回查询时间范围内每天使用的视频内容审核时长数据,单位: 秒。 +// 该接口返回查询时间范围内每天使用的视频内容智能识别时长数据,单位: 秒。 // -// 1. 可以查询最近365天内的视频内容审核时长统计数据。 +// 1. 可以查询最近365天内的视频内容智能识别时长统计数据。 // 2. 查询时间跨度不超过90天。 func (c *Client) DescribeReviewDetails(request *DescribeReviewDetailsRequest) (response *DescribeReviewDetailsResponse, err error) { if request == nil { @@ -1882,6 +1914,31 @@ func (c *Client) LiveRealTimeClip(request *LiveRealTimeClipRequest) (response *L return } +func NewManageTaskRequest() (request *ManageTaskRequest) { + request = &ManageTaskRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vod", APIVersion, "ManageTask") + return +} + +func NewManageTaskResponse() (response *ManageTaskResponse) { + response = &ManageTaskResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 对已发起的任务进行管理。 +func (c *Client) ManageTask(request *ManageTaskRequest) (response *ManageTaskResponse, err error) { + if request == nil { + request = NewManageTaskRequest() + } + response = NewManageTaskResponse() + err = c.Send(request, response) + return +} + func NewModifyAIAnalysisTemplateRequest() (request *ModifyAIAnalysisTemplateRequest) { request = &ModifyAIAnalysisTemplateRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -2024,7 +2081,7 @@ func NewModifyContentReviewTemplateResponse() (response *ModifyContentReviewTemp return } -// 修改用户自定义视频内容审核模板。 +// 修改用户自定义视频内容智能识别模板。 func (c *Client) ModifyContentReviewTemplate(request *ModifyContentReviewTemplateRequest) (response *ModifyContentReviewTemplateResponse, err error) { if request == nil { request = NewModifyContentReviewTemplateRequest() @@ -2099,7 +2156,7 @@ func NewModifyPersonSampleResponse() (response *ModifyPersonSampleResponse) { return } -// 该接口用于根据人物 ID,修改人物样本信息,包括名称、描述的修改,以及人脸、标签的添加、删除、重置操作。人脸删除操作需保证至少剩余 1 张图片,否则,请使用重置操作。 +// 该接口用于根据素材 ID,修改素材样本信息,包括名称、描述的修改,以及五官、标签的添加、删除、重置操作。五官删除操作需保证至少剩余 1 张图片,否则,请使用重置操作。 func (c *Client) ModifyPersonSample(request *ModifyPersonSampleRequest) (response *ModifyPersonSampleResponse, err error) { if request == nil { request = NewModifyPersonSampleRequest() @@ -2636,6 +2693,31 @@ func (c *Client) SimpleHlsClip(request *SimpleHlsClipRequest) (response *SimpleH return } +func NewSplitMediaRequest() (request *SplitMediaRequest) { + request = &SplitMediaRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vod", APIVersion, "SplitMedia") + return +} + +func NewSplitMediaResponse() (response *SplitMediaResponse) { + response = &SplitMediaResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 对点播视频进行拆条,生成多个新的点播视频。 +func (c *Client) SplitMedia(request *SplitMediaRequest) (response *SplitMediaResponse, err error) { + if request == nil { + request = NewSplitMediaRequest() + } + response = NewSplitMediaResponse() + err = c.Send(request, response) + return +} + func NewWeChatMiniProgramPublishRequest() (request *WeChatMiniProgramPublishRequest) { request = &WeChatMiniProgramPublishRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/models.go index 0c14801c97..12bd613b90 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717/models.go @@ -2608,24 +2608,24 @@ func (r *CreateClassResponse) FromJsonString(s string) error { type CreateContentReviewTemplateRequest struct { *tchttp.BaseRequest - // 审核结果是否进入审核墙(对审核结果进行人工复核)的开关。 + // 智能识别结果是否进入智能识别墙(对识别结果进行人工复核)的开关。 //
  • ON:是;
  • //
  • OFF:否。
  • ReviewWallSwitch *string `json:"ReviewWallSwitch,omitempty" name:"ReviewWallSwitch"` - // 内容审核模板名称,长度限制:64 个字符。 + // 内容智能识别模板名称,长度限制:64 个字符。 Name *string `json:"Name,omitempty" name:"Name"` - // 内容审核模板描述信息,长度限制:256 个字符。 + // 内容智能识别模板描述信息,长度限制:256 个字符。 Comment *string `json:"Comment,omitempty" name:"Comment"` - // 鉴黄控制参数。 + // 令人反感的信息的控制参数。 PornConfigure *PornConfigureInfo `json:"PornConfigure,omitempty" name:"PornConfigure"` - // 鉴恐控制参数。 + // 令人不安全的信息的控制参数。 TerrorismConfigure *TerrorismConfigureInfo `json:"TerrorismConfigure,omitempty" name:"TerrorismConfigure"` - // 鉴政控制参数。 + // 令人不适宜的控制参数。 PoliticalConfigure *PoliticalConfigureInfo `json:"PoliticalConfigure,omitempty" name:"PoliticalConfigure"` // 违禁控制参数。违禁内容包括: @@ -2633,7 +2633,7 @@ type CreateContentReviewTemplateRequest struct { //
  • 涉毒违法。
  • ProhibitedConfigure *ProhibitedConfigureInfo `json:"ProhibitedConfigure,omitempty" name:"ProhibitedConfigure"` - // 用户自定义内容审核控制参数。 + // 用户自定义内容智能识别控制参数。 UserDefineConfigure *UserDefineConfigureInfo `json:"UserDefineConfigure,omitempty" name:"UserDefineConfigure"` // 截帧间隔,单位为秒。当不填时,默认截帧间隔为 1 秒,最小值为 0.5 秒。 @@ -2656,7 +2656,7 @@ type CreateContentReviewTemplateResponse struct { *tchttp.BaseResponse Response *struct { - // 内容审核模板唯一标识。 + // 内容智能识别模板唯一标识。 Definition *int64 `json:"Definition,omitempty" name:"Definition"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -2839,23 +2839,23 @@ func (r *CreateImageSpriteTemplateResponse) FromJsonString(s string) error { type CreatePersonSampleRequest struct { *tchttp.BaseRequest - // 人物名称,长度限制:20 个字符。 + // 素材名称,长度限制:20 个字符。 Name *string `json:"Name,omitempty" name:"Name"` - // 人物应用场景,可选值: + // 素材应用场景,可选值: // 1. Recognition:用于内容识别,等价于 Recognition.Face。 - // 2. Review:用于内容审核,等价于 Review.Face。 - // 3. All:用于内容识别、内容审核,等价于 1+2。 + // 2. Review:用于内容不适宜,等价于 Review.Face。 + // 3. All:包含以上全部,等价于 1+2。 Usages []*string `json:"Usages,omitempty" name:"Usages" list` - // 人物描述,长度限制:1024 个字符。 + // 素材描述,长度限制:1024 个字符。 Description *string `json:"Description,omitempty" name:"Description"` - // 人脸图片 [Base64](https://tools.ietf.org/html/rfc4648) 编码后的字符串,仅支持 jpeg、png 图片格式。数组长度限制:5 张图片。 - // 注意:图片必须是单人像正面人脸较清晰的照片,像素不低于 200*200。 + // 素材图片 [Base64](https://tools.ietf.org/html/rfc4648) 编码后的字符串,仅支持 jpeg、png 图片格式。数组长度限制:5 张图片。 + // 注意:图片必须是单人像五官较清晰的照片,像素不低于 200*200。 FaceContents []*string `json:"FaceContents,omitempty" name:"FaceContents" list` - // 人物标签 + // 素材标签 //
  • 数组长度限制:20 个标签;
  • //
  • 单个标签长度限制:128 个字符。
  • Tags []*string `json:"Tags,omitempty" name:"Tags" list` @@ -2877,10 +2877,10 @@ type CreatePersonSampleResponse struct { *tchttp.BaseResponse Response *struct { - // 人物信息。 + // 素材信息。 Person *AiSamplePerson `json:"Person,omitempty" name:"Person"` - // 处理失败的人脸信息。 + // 处理失败的五官定位信息。 FailFaceInfoSet []*AiSampleFailFaceInfo `json:"FailFaceInfoSet,omitempty" name:"FailFaceInfoSet" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -3377,13 +3377,13 @@ type CreateWordSamplesRequest struct { // 关键词应用场景,可选值: // 1. Recognition.Ocr:通过光学字符识别技术,进行内容识别; - // 2. Recognition.Asr:通过语音识别技术,进行内容识别; - // 3. Review.Ocr:通过光学字符识别技术,进行内容审核; - // 4. Review.Asr:通过语音识别技术,进行内容审核; + // 2. Recognition.Asr:通过音频识别技术,进行内容识别; + // 3. Review.Ocr:通过光学字符识别技术,进行不适宜内容识别; + // 4. Review.Asr:通过音频识别技术,进行不适宜内容识别; // 可合并简写为: - // 5. Recognition:通过光学字符识别技术、语音识别技术,进行内容识别,等价于 1+2; - // 6. Review:通过光学字符识别技术、语音识别技术,进行内容审核,等价于 3+4; - // 7. All:通过光学字符识别技术、语音识别技术,进行内容识别、内容审核,等价于 1+2+3+4。 + // 5. Recognition:通过光学字符识别技术、音频识别技术,进行内容识别,等价于 1+2; + // 6. Review:通过光学字符识别技术、音频识别技术,进行不适宜内容识别,等价于 3+4; + // 7. All:通过光学字符识别技术、音频识别技术,进行内容识别、不适宜内容识别,等价于 1+2+3+4。 Usages []*string `json:"Usages,omitempty" name:"Usages" list` // 关键词,数组长度限制:100。 @@ -3608,7 +3608,7 @@ func (r *DeleteClassResponse) FromJsonString(s string) error { type DeleteContentReviewTemplateRequest struct { *tchttp.BaseRequest - // 内容审核模板唯一标识。 + // 内容智能识别模板唯一标识。 Definition *int64 `json:"Definition,omitempty" name:"Definition"` // 点播[子应用](/document/product/266/14574) ID。如果要访问子应用中的资源,则将该字段填写为子应用 ID;否则无需填写该字段。 @@ -3759,7 +3759,7 @@ func (r *DeleteMediaResponse) FromJsonString(s string) error { type DeletePersonSampleRequest struct { *tchttp.BaseRequest - // 人物 ID。 + // 素材 ID。 PersonId *string `json:"PersonId,omitempty" name:"PersonId"` // 点播[子应用](/document/product/266/14574) ID。如果要访问子应用中的资源,则将该字段填写为子应用 ID;否则无需填写该字段。 @@ -4533,7 +4533,7 @@ func (r *DescribeCdnLogsResponse) FromJsonString(s string) error { type DescribeContentReviewTemplatesRequest struct { *tchttp.BaseRequest - // 内容审核模板唯一标识过滤条件,数组长度限制:100。 + // 内容智能识别模板唯一标识过滤条件,数组长度限制:100。 Definitions []*int64 `json:"Definitions,omitempty" name:"Definitions" list` // 分页偏移量,默认值:0。 @@ -4562,7 +4562,7 @@ type DescribeContentReviewTemplatesResponse struct { // 符合过滤条件的记录总数。 TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` - // 内容审核模板详情列表。 + // 内容智能识别模板详情列表。 ContentReviewTemplateSet []*ContentReviewTemplateItem `json:"ContentReviewTemplateSet,omitempty" name:"ContentReviewTemplateSet" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -4579,6 +4579,49 @@ func (r *DescribeContentReviewTemplatesResponse) FromJsonString(s string) error return json.Unmarshal([]byte(s), &r) } +type DescribeDailyPlayStatFileListRequest struct { + *tchttp.BaseRequest + + // 起始日期,使用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。 + StartTime *string `json:"StartTime,omitempty" name:"StartTime"` + + // 结束日期,使用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。 + EndTime *string `json:"EndTime,omitempty" name:"EndTime"` + + // 点播[子应用](/document/product/266/14574) ID。如果要访问子应用中的资源,则将该字段填写为子应用 ID;否则无需填写该字段。 + SubAppId *uint64 `json:"SubAppId,omitempty" name:"SubAppId"` +} + +func (r *DescribeDailyPlayStatFileListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeDailyPlayStatFileListRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeDailyPlayStatFileListResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 播放统计文件列表。 + PlayStatFileSet []*PlayStatFileInfo `json:"PlayStatFileSet,omitempty" name:"PlayStatFileSet" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeDailyPlayStatFileListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeDailyPlayStatFileListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DescribeEventsStateRequest struct { *tchttp.BaseRequest @@ -4835,21 +4878,21 @@ func (r *DescribeMediaProcessUsageDataResponse) FromJsonString(s string) error { type DescribePersonSamplesRequest struct { *tchttp.BaseRequest - // 拉取的人物类型,可选值: - //
  • UserDefine:用户自定义人物库;
  • - //
  • Default:系统默认人物库。
  • + // 拉取的素材类型,可选值: + //
  • UserDefine:用户自定义素材库;
  • + //
  • Default:系统默认素材库。
  • // - // 默认值:UserDefine,拉取用户自定义人物库人物。 - // 说明:如果是拉取系统默认人物库,只能使用人物名字或者人物 ID + 人物名字的方式进行拉取,且人脸图片只返回一张。 + // 默认值:UserDefine,拉取用户自定义素材库素材。 + // 说明:如果是拉取系统默认素材库,只能使用素材名字或者素材 ID + 素材名字的方式进行拉取,且五官图片只返回一张。 Type *string `json:"Type,omitempty" name:"Type"` - // 人物 ID,数组长度限制:100。 + // 素材 ID,数组长度限制:100。 PersonIds []*string `json:"PersonIds,omitempty" name:"PersonIds" list` - // 人物名称,数组长度限制:20。 + // 素材名称,数组长度限制:20。 Names []*string `json:"Names,omitempty" name:"Names" list` - // 人物标签,数组长度限制:20。 + // 素材标签,数组长度限制:20。 Tags []*string `json:"Tags,omitempty" name:"Tags" list` // 分页偏移量,默认值:0。 @@ -4975,13 +5018,13 @@ type DescribeReviewDetailsResponse struct { *tchttp.BaseResponse Response *struct { - // 发起内容审核次数。 + // 发起内容智能识别次数。 TotalCount *int64 `json:"TotalCount,omitempty" name:"TotalCount"` - // 内容审核总时长。 + // 内容智能识别总时长。 TotalDuration *int64 `json:"TotalDuration,omitempty" name:"TotalDuration"` - // 内容审核时长统计数据,每天一个数据。 + // 内容智能识别时长统计数据,每天一个数据。 Data []*StatDataItem `json:"Data,omitempty" name:"Data" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -5221,6 +5264,12 @@ func (r *DescribeStorageDetailsResponse) FromJsonString(s string) error { type DescribeSubAppIdsRequest struct { *tchttp.BaseRequest + // 分页拉取的最大返回结果数。默认值:200;最大值:200。 + Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + + // 分页拉取的起始偏移量。默认值:0。 + Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + // 标签信息,查询指定标签的子应用列表。 Tags []*ResourceTag `json:"Tags,omitempty" name:"Tags" list` } @@ -5241,6 +5290,9 @@ type DescribeSubAppIdsResponse struct { // 子应用信息集合。 SubAppIdInfoSet []*SubAppIdInfo `json:"SubAppIdInfoSet,omitempty" name:"SubAppIdInfoSet" list` + // 子应用总数量。 + TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` @@ -5335,9 +5387,10 @@ type DescribeTaskDetailResponse struct { // 任务类型,取值: //
  • Procedure:视频处理任务;
  • //
  • EditMedia:视频编辑任务;
  • + //
  • SplitMedia:视频拆条任务;
  • + //
  • ComposeMedia:制作媒体文件任务;
  • //
  • WechatPublish:微信发布任务;
  • //
  • WechatMiniProgramPublish:微信小程序视频发布任务;
  • - //
  • ComposeMedia:制作媒体文件任务;
  • //
  • PullUpload:拉取上传媒体文件任务。
  • // // 兼容 2017 版的任务类型: @@ -5379,6 +5432,14 @@ type DescribeTaskDetailResponse struct { // 注意:此字段可能返回 null,表示取不到有效值。 ComposeMediaTask *ComposeMediaTask `json:"ComposeMediaTask,omitempty" name:"ComposeMediaTask"` + // 视频拆条任务信息,仅当 TaskType 为 SplitMedia,该字段有值。 + // 注意:此字段可能返回 null,表示取不到有效值。 + SplitMediaTask *SplitMediaTask `json:"SplitMediaTask,omitempty" name:"SplitMediaTask"` + + // 微信小程序发布任务信息,仅当 TaskType 为 WechatMiniProgramPublish,该字段有值。 + // 注意:此字段可能返回 null,表示取不到有效值。 + WechatMiniProgramPublishTask *WechatMiniProgramPublishTask `json:"WechatMiniProgramPublishTask,omitempty" name:"WechatMiniProgramPublishTask"` + // 拉取上传媒体文件任务信息,仅当 TaskType 为 PullUpload,该字段有值。 // 注意:此字段可能返回 null,表示取不到有效值。 PullUploadTask *PullUploadTask `json:"PullUploadTask,omitempty" name:"PullUploadTask"` @@ -5387,10 +5448,6 @@ type DescribeTaskDetailResponse struct { // 注意:此字段可能返回 null,表示取不到有效值。 TranscodeTask *TranscodeTask2017 `json:"TranscodeTask,omitempty" name:"TranscodeTask"` - // 视频指定时间点截图任务信息,仅当 TaskType 为 SnapshotByTimeOffset,该字段有值。 - // 注意:此字段可能返回 null,表示取不到有效值。 - SnapshotByTimeOffsetTask *SnapshotByTimeOffsetTask2017 `json:"SnapshotByTimeOffsetTask,omitempty" name:"SnapshotByTimeOffsetTask"` - // 视频拼接任务信息,仅当 TaskType 为 Concat,该字段有值。 // 注意:此字段可能返回 null,表示取不到有效值。 ConcatTask *ConcatTask2017 `json:"ConcatTask,omitempty" name:"ConcatTask"` @@ -5403,9 +5460,9 @@ type DescribeTaskDetailResponse struct { // 注意:此字段可能返回 null,表示取不到有效值。 CreateImageSpriteTask *CreateImageSpriteTask2017 `json:"CreateImageSpriteTask,omitempty" name:"CreateImageSpriteTask"` - // 微信小程序发布任务信息,仅当 TaskType 为 WechatMiniProgramPublish,该字段有值。 + // 视频指定时间点截图任务信息,仅当 TaskType 为 SnapshotByTimeOffset,该字段有值。 // 注意:此字段可能返回 null,表示取不到有效值。 - WechatMiniProgramPublishTask *WechatMiniProgramPublishTask `json:"WechatMiniProgramPublishTask,omitempty" name:"WechatMiniProgramPublishTask"` + SnapshotByTimeOffsetTask *SnapshotByTimeOffsetTask2017 `json:"SnapshotByTimeOffsetTask,omitempty" name:"SnapshotByTimeOffsetTask"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` @@ -5601,12 +5658,12 @@ type DescribeWordSamplesRequest struct { // 关键词应用场景过滤条件,可选值: // 1. Recognition.Ocr:通过光学字符识别技术,进行内容识别; - // 2. Recognition.Asr:通过语音识别技术,进行内容识别; - // 3. Review.Ocr:通过光学字符识别技术,进行内容审核; - // 4. Review.Asr:通过语音识别技术,进行内容审核; + // 2. Recognition.Asr:通过音频识别技术,进行内容识别; + // 3. Review.Ocr:通过光学字符识别技术,进行不适宜的内容识别; + // 4. Review.Asr:通过音频识别技术,进行不适宜的内容识别; // 可合并简写为: - // 5. Recognition:通过光学字符识别技术、语音识别技术,进行内容识别,等价于 1+2; - // 6. Review:通过光学字符识别技术、语音识别技术,进行内容审核,等价于 3+4; + // 5. Recognition:通过光学字符识别技术、音频识别技术,进行内容识别,等价于 1+2; + // 6. Review:通过光学字符识别技术、音频识别技术,进行不适宜的内容识别,等价于 3+4; // 可多选,元素间关系为 or,即关键词的应用场景包含该字段集合中任意元素的记录,均符合该条件。 Usages []*string `json:"Usages,omitempty" name:"Usages" list` @@ -5868,6 +5925,7 @@ type EventContent struct { //
  • FileDeleted:视频删除完成;
  • //
  • PullComplete:视频转拉完成;
  • //
  • EditMediaComplete:视频编辑完成;
  • + //
  • SplitMediaComplete:视频拆分完成;
  • //
  • WechatPublishComplete:微信发布完成;
  • //
  • ComposeMediaComplete:制作媒体文件完成;
  • //
  • WechatMiniProgramPublishComplete:微信小程序发布完成。
  • @@ -5899,33 +5957,37 @@ type EventContent struct { // 注意:此字段可能返回 null,表示取不到有效值。 EditMediaCompleteEvent *EditMediaTask `json:"EditMediaCompleteEvent,omitempty" name:"EditMediaCompleteEvent"` - // 微信发布完成事件,当事件类型为 WechatPublishComplete 时有效。 - // 注意:此字段可能返回 null,表示取不到有效值。 - WechatPublishCompleteEvent *WechatPublishTask `json:"WechatPublishCompleteEvent,omitempty" name:"WechatPublishCompleteEvent"` - - // 视频转码完成事件,当事件类型为 TranscodeComplete 时有效。 + // 视频拆条完成事件,当事件类型为 SplitMediaComplete 时有效。 // 注意:此字段可能返回 null,表示取不到有效值。 - TranscodeCompleteEvent *TranscodeTask2017 `json:"TranscodeCompleteEvent,omitempty" name:"TranscodeCompleteEvent"` + SplitMediaCompleteEvent *SplitMediaTask `json:"SplitMediaCompleteEvent,omitempty" name:"SplitMediaCompleteEvent"` - // 视频拼接完成事件,当事件类型为 ConcatComplete 时有效。 + // 制作媒体文件任务完成事件,当事件类型为 ComposeMediaComplete 时有效。 // 注意:此字段可能返回 null,表示取不到有效值。 - ConcatCompleteEvent *ConcatTask2017 `json:"ConcatCompleteEvent,omitempty" name:"ConcatCompleteEvent"` + ComposeMediaCompleteEvent *ComposeMediaTask `json:"ComposeMediaCompleteEvent,omitempty" name:"ComposeMediaCompleteEvent"` // 视频剪辑完成事件,当事件类型为 ClipComplete 时有效。 // 注意:此字段可能返回 null,表示取不到有效值。 ClipCompleteEvent *ClipTask2017 `json:"ClipCompleteEvent,omitempty" name:"ClipCompleteEvent"` + // 视频转码完成事件,当事件类型为 TranscodeComplete 时有效。 + // 注意:此字段可能返回 null,表示取不到有效值。 + TranscodeCompleteEvent *TranscodeTask2017 `json:"TranscodeCompleteEvent,omitempty" name:"TranscodeCompleteEvent"` + // 视频截取雪碧图完成事件,当事件类型为 CreateImageSpriteComplete 时有效。 // 注意:此字段可能返回 null,表示取不到有效值。 CreateImageSpriteCompleteEvent *CreateImageSpriteTask2017 `json:"CreateImageSpriteCompleteEvent,omitempty" name:"CreateImageSpriteCompleteEvent"` + // 视频拼接完成事件,当事件类型为 ConcatComplete 时有效。 + // 注意:此字段可能返回 null,表示取不到有效值。 + ConcatCompleteEvent *ConcatTask2017 `json:"ConcatCompleteEvent,omitempty" name:"ConcatCompleteEvent"` + // 视频按时间点截图完成事件,当事件类型为 CreateSnapshotByTimeOffsetComplete 时有效。 // 注意:此字段可能返回 null,表示取不到有效值。 SnapshotByTimeOffsetCompleteEvent *SnapshotByTimeOffsetTask2017 `json:"SnapshotByTimeOffsetCompleteEvent,omitempty" name:"SnapshotByTimeOffsetCompleteEvent"` - // 制作媒体文件任务完成事件,当事件类型为 ComposeMediaComplete 时有效。 + // 微信发布完成事件,当事件类型为 WechatPublishComplete 时有效。 // 注意:此字段可能返回 null,表示取不到有效值。 - ComposeMediaCompleteEvent *ComposeMediaTask `json:"ComposeMediaCompleteEvent,omitempty" name:"ComposeMediaCompleteEvent"` + WechatPublishCompleteEvent *WechatPublishTask `json:"WechatPublishCompleteEvent,omitempty" name:"WechatPublishCompleteEvent"` // 微信小程序发布任务完成事件,当事件类型为 WechatMiniProgramPublishComplete 时有效。 // 注意:此字段可能返回 null,表示取不到有效值。 @@ -6456,6 +6518,47 @@ func (r *LiveRealTimeClipResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ManageTaskRequest struct { + *tchttp.BaseRequest + + // 视频处理的任务 ID。 + TaskId *string `json:"TaskId,omitempty" name:"TaskId"` + + // 操作类型,取值范围: + //
  • Abort:终止任务。只能终止已发起且状态为等待中(WAITING)的任务。
  • + OperationType *string `json:"OperationType,omitempty" name:"OperationType"` + + // 点播[子应用](/document/product/266/14574) ID。如果要访问子应用中的资源,则将该字段填写为子应用 ID;否则无需填写该字段。 + SubAppId *uint64 `json:"SubAppId,omitempty" name:"SubAppId"` +} + +func (r *ManageTaskRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ManageTaskRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ManageTaskResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ManageTaskResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ManageTaskResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type MediaAdaptiveDynamicStreamingInfo struct { // 转自适应码流信息数组。 @@ -7227,6 +7330,9 @@ type MediaProcessTaskTranscodeResult struct { // 转码任务的输出。 // 注意:此字段可能返回 null,表示取不到有效值。 Output *MediaTranscodeItem `json:"Output,omitempty" name:"Output"` + + // 转码进度,取值范围 [0-100] 。 + Progress *int64 `json:"Progress,omitempty" name:"Progress"` } type MediaSampleSnapshotInfo struct { @@ -7718,22 +7824,22 @@ func (r *ModifyClassResponse) FromJsonString(s string) error { type ModifyContentReviewTemplateRequest struct { *tchttp.BaseRequest - // 内容审核模板唯一标识。 + // 内容智能识别模板唯一标识。 Definition *int64 `json:"Definition,omitempty" name:"Definition"` - // 内容审核模板名称,长度限制:64 个字符。 + // 内容智能识别模板名称,长度限制:64 个字符。 Name *string `json:"Name,omitempty" name:"Name"` - // 内容审核模板描述信息,长度限制:256 个字符。 + // 内容智能识别模板描述信息,长度限制:256 个字符。 Comment *string `json:"Comment,omitempty" name:"Comment"` - // 鉴黄控制参数。 - PornConfigure *PornConfigureInfoForUpdate `json:"PornConfigure,omitempty" name:"PornConfigure"` - - // 鉴恐控制参数。 + // 令人不安全的信息的控制参数。 TerrorismConfigure *TerrorismConfigureInfoForUpdate `json:"TerrorismConfigure,omitempty" name:"TerrorismConfigure"` - // 鉴政控制参数。 + // 令人反感的信息的控制参数。 + PornConfigure *PornConfigureInfoForUpdate `json:"PornConfigure,omitempty" name:"PornConfigure"` + + // 令人不适宜的信息控制参数。 PoliticalConfigure *PoliticalConfigureInfoForUpdate `json:"PoliticalConfigure,omitempty" name:"PoliticalConfigure"` // 违禁控制参数。违禁内容包括: @@ -7741,13 +7847,13 @@ type ModifyContentReviewTemplateRequest struct { //
  • 涉毒违法。
  • ProhibitedConfigure *ProhibitedConfigureInfoForUpdate `json:"ProhibitedConfigure,omitempty" name:"ProhibitedConfigure"` - // 用户自定义内容审核控制参数。 + // 用户自定义内容智能识别控制参数。 UserDefineConfigure *UserDefineConfigureInfoForUpdate `json:"UserDefineConfigure,omitempty" name:"UserDefineConfigure"` // 截帧间隔,单位为秒,最小值为 0.5 秒。 ScreenshotInterval *float64 `json:"ScreenshotInterval,omitempty" name:"ScreenshotInterval"` - // 审核结果是否进入审核墙(对审核结果进行人工复核)的开关。 + // 智能识别结果是否进入智能识别墙(对智能识别结果进行人工识别)的开关。 //
  • ON:是;
  • //
  • OFF:否。
  • ReviewWallSwitch *string `json:"ReviewWallSwitch,omitempty" name:"ReviewWallSwitch"` @@ -7939,7 +8045,7 @@ func (r *ModifyMediaInfoResponse) FromJsonString(s string) error { type ModifyPersonSampleRequest struct { *tchttp.BaseRequest - // 人物 ID。 + // 素材 ID。 PersonId *string `json:"PersonId,omitempty" name:"PersonId"` // 名称,长度限制:128 个字符。 @@ -7948,13 +8054,13 @@ type ModifyPersonSampleRequest struct { // 描述,长度限制:1024 个字符。 Description *string `json:"Description,omitempty" name:"Description"` - // 人物应用场景,可选值: + // 素材应用场景,可选值: // 1. Recognition:用于内容识别,等价于 Recognition.Face。 - // 2. Review:用于内容审核,等价于 Review.Face。 - // 3. All:用于内容识别、内容审核,等价于 1+2。 + // 2. Review:用于不适宜的内容识别,等价于 Review.Face。 + // 3. All:用于内容识别、不适宜的内容识别,等价于 1+2。 Usages []*string `json:"Usages,omitempty" name:"Usages" list` - // 人脸操作信息。 + // 五官操作信息。 FaceOperationInfo *AiSampleFaceOperation `json:"FaceOperationInfo,omitempty" name:"FaceOperationInfo"` // 标签操作信息。 @@ -7977,10 +8083,10 @@ type ModifyPersonSampleResponse struct { *tchttp.BaseResponse Response *struct { - // 人物信息。 + // 素材信息。 Person *AiSamplePerson `json:"Person,omitempty" name:"Person"` - // 处理失败的人脸信息。 + // 处理失败的五官信息。 // 注意:此字段可能返回 null,表示取不到有效值。 FailFaceInfoSet []*AiSampleFailFaceInfo `json:"FailFaceInfoSet,omitempty" name:"FailFaceInfoSet" list` @@ -8452,13 +8558,13 @@ type ModifyWordSampleRequest struct { // 关键词应用场景,可选值: // 1. Recognition.Ocr:通过光学字符识别技术,进行内容识别; - // 2. Recognition.Asr:通过语音识别技术,进行内容识别; - // 3. Review.Ocr:通过光学字符识别技术,进行内容审核; - // 4. Review.Asr:通过语音识别技术,进行内容审核; + // 2. Recognition.Asr:通过音频识别技术,进行内容识别; + // 3. Review.Ocr:通过光学字符识别技术,进行不适宜的内容识别; + // 4. Review.Asr:通过音频识别技术,进行不适宜的内容识别; // 可合并简写为: - // 5. Recognition:通过光学字符识别技术、语音识别技术,进行内容识别,等价于 1+2; - // 6. Review:通过光学字符识别技术、语音识别技术,进行内容审核,等价于 3+4; - // 7. All:通过光学字符识别技术、语音识别技术,进行内容识别、内容审核,等价于 1+2+3+4。 + // 5. Recognition:通过光学字符识别技术、音频识别技术,进行内容识别,等价于 1+2; + // 6. Review:通过光学字符识别技术、音频识别技术,进行不适宜的内容识别,等价于 3+4; + // 7. All:包含以上全部,等价于 1+2+3+4。 Usages []*string `json:"Usages,omitempty" name:"Usages" list` // 标签操作信息。 @@ -8685,6 +8791,25 @@ func (r *ParseStreamingManifestResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type PlayStatFileInfo struct { + + // 播放统计数据所属日期,使用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。 + Date *string `json:"Date,omitempty" name:"Date"` + + // 播放统计文件的 URL 地址。播放统计文件内容为: + //
  • date:播放日期。
  • + //
  • file_id:视频文件 ID。
  • + //
  • ip_count:去重后的客户端 IP 数。
  • + //
  • flux:播放流量,单位:字节。
  • + //
  • play_times:总的播放次数。
  • + //
  • pc_play_times:PC 端播放次数。
  • + //
  • mobile_play_times:移动端播放次数。
  • + //
  • iphone_play_times:iPhone 端播放次数。
  • + //
  • android_play_times:Android 端播放次数。
  • + //
  • host_name 域名。
  • + Url *string `json:"Url,omitempty" name:"Url"` +} + type PlayerConfig struct { // 播放器配置名字。 @@ -10029,6 +10154,161 @@ type SpecificationDataItem struct { Data []*TaskStatDataItem `json:"Data,omitempty" name:"Data" list` } +type SplitMediaOutputConfig struct { + + // 输出文件名,最长 64 个字符。缺省由系统指定生成文件名。 + MediaName *string `json:"MediaName,omitempty" name:"MediaName"` + + // 输出文件格式,可选值:mp4、hls。默认是 mp4。 + Type *string `json:"Type,omitempty" name:"Type"` + + // 分类ID,用于对媒体进行分类管理,可通过 [创建分类](/document/product/266/7812) 接口,创建分类,获得分类 ID。 + //
  • 默认值:0,表示其他分类。
  • + ClassId *int64 `json:"ClassId,omitempty" name:"ClassId"` + + // 输出文件的过期时间,超过该时间文件将被删除,默认为永久不过期,格式按照 ISO 8601标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + ExpireTime *string `json:"ExpireTime,omitempty" name:"ExpireTime"` +} + +type SplitMediaRequest struct { + *tchttp.BaseRequest + + // 视频的 ID。 + FileId *string `json:"FileId,omitempty" name:"FileId"` + + // 视频拆条任务信息列表,最多同时支持100个拆条信息。 + Segments []*SplitMediaTaskConfig `json:"Segments,omitempty" name:"Segments" list` + + // 标识来源上下文,用于透传用户请求信息,在 SplitMediaComplete 回调和任务流状态变更回调将返回该字段值,最长 1000个字符。 + SessionContext *string `json:"SessionContext,omitempty" name:"SessionContext"` + + // 用于任务去重的识别码,如果三天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 + SessionId *string `json:"SessionId,omitempty" name:"SessionId"` + + // 任务的优先级,数值越大优先级越高,取值范围是 -10 到 10,不填代表 0。 + TasksPriority *int64 `json:"TasksPriority,omitempty" name:"TasksPriority"` + + // 点播[子应用](/document/product/266/14574) ID。如果要访问子应用中的资源,则将该字段填写为子应用 ID;否则无需填写该字段。 + SubAppId *uint64 `json:"SubAppId,omitempty" name:"SubAppId"` +} + +func (r *SplitMediaRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *SplitMediaRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type SplitMediaResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 视频拆条的任务 ID,可以通过该 ID 查询拆条任务(任务类型为 SplitMedia)的状态。 + TaskId *string `json:"TaskId,omitempty" name:"TaskId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *SplitMediaResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *SplitMediaResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type SplitMediaTask struct { + + // 任务 ID。 + TaskId *string `json:"TaskId,omitempty" name:"TaskId"` + + // 任务流状态,取值: + //
  • PROCESSING:处理中;
  • + //
  • FINISH:已完成。
  • + Status *string `json:"Status,omitempty" name:"Status"` + + // 错误码,空字符串表示成功,其他值表示失败,取值请参考 [视频处理类错误码](https://cloud.tencent.com/document/product/266/50368#.E8.A7.86.E9.A2.91.E5.A4.84.E7.90.86.E7.B1.BB.E9.94.99.E8.AF.AF.E7.A0.81) 列表。 + ErrCodeExt *string `json:"ErrCodeExt,omitempty" name:"ErrCodeExt"` + + // 错误码,0 表示成功,其他值表示失败(该字段已不推荐使用,建议使用新的错误码字段 ErrCodeExt)。 + ErrCode *int64 `json:"ErrCode,omitempty" name:"ErrCode"` + + // 错误信息。 + Message *string `json:"Message,omitempty" name:"Message"` + + // 视频拆条任务详细信息列表。 + FileInfoSet []*SplitMediaTaskSegmentInfo `json:"FileInfoSet,omitempty" name:"FileInfoSet" list` + + // 来源上下文,用于透传用户请求信息,任务流状态变更回调将返回该字段值,最长 1000 个字符。 + SessionContext *string `json:"SessionContext,omitempty" name:"SessionContext"` + + // 用于去重的识别码,如果七天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 + SessionId *string `json:"SessionId,omitempty" name:"SessionId"` +} + +type SplitMediaTaskConfig struct { + + // 视频拆条起始的偏移时间,单位:秒。 + //
  • 不填或填0,表示转码后的视频从原始视频的起始位置开始;
  • + //
  • 当数值大于0时(假设为 n),表示转码后的视频从原始视频的第 n 秒位置开始;
  • + //
  • 当数值小于0时(假设为 -n),表示转码后的视频从原始视频结束 n 秒前的位置开始。
  • + StartTimeOffset *float64 `json:"StartTimeOffset,omitempty" name:"StartTimeOffset"` + + // 视频拆条结束的偏移时间,单位:秒。 + //
  • 不填或填0,表示转码后的视频持续到原始视频的末尾终止;
  • + //
  • 当数值大于0时(假设为 n),表示转码后的视频持续到原始视频第 n 秒时终止;
  • + //
  • 当数值小于0时(假设为 -n),表示转码后的视频持续到原始视频结束 n 秒前终止。
  • + EndTimeOffset *float64 `json:"EndTimeOffset,omitempty" name:"EndTimeOffset"` + + // [任务流模板](/document/product/266/11700#.E4.BB.BB.E5.8A.A1.E6.B5.81.E6.A8.A1.E6.9D.BF)名字,如果要对生成的新视频执行任务流时填写。 + ProcedureName *string `json:"ProcedureName,omitempty" name:"ProcedureName"` + + // 视频拆条输出信息。 + OutputConfig *SplitMediaOutputConfig `json:"OutputConfig,omitempty" name:"OutputConfig"` +} + +type SplitMediaTaskInput struct { + + // 视频的 ID。 + FileId *string `json:"FileId,omitempty" name:"FileId"` + + // 视频拆条起始的偏移时间,单位:秒。 + //
  • 不填或填0,表示转码后的视频从原始视频的起始位置开始;
  • + //
  • 当数值大于0时(假设为 n),表示转码后的视频从原始视频的第 n 秒位置开始;
  • + //
  • 当数值小于0时(假设为 -n),表示转码后的视频从原始视频结束 n 秒前的位置开始。
  • + StartTimeOffset *float64 `json:"StartTimeOffset,omitempty" name:"StartTimeOffset"` + + // 视频拆条结束的偏移时间,单位:秒。 + //
  • 不填或填0,表示转码后的视频持续到原始视频的末尾终止;
  • + //
  • 当数值大于0时(假设为 n),表示转码后的视频持续到原始视频第 n 秒时终止;
  • + //
  • 当数值小于0时(假设为 -n),表示转码后的视频持续到原始视频结束 n 秒前终止。
  • + EndTimeOffset *float64 `json:"EndTimeOffset,omitempty" name:"EndTimeOffset"` + + // [任务流模板](/document/product/266/11700#.E4.BB.BB.E5.8A.A1.E6.B5.81.E6.A8.A1.E6.9D.BF)名字,如果要对生成的新视频执行任务流时填写。 + ProcedureName *string `json:"ProcedureName,omitempty" name:"ProcedureName"` + + // 视频拆条输出信息。 + OutputConfig *SplitMediaOutputConfig `json:"OutputConfig,omitempty" name:"OutputConfig"` +} + +type SplitMediaTaskSegmentInfo struct { + + // 视频拆条任务输入信息。 + Input *SplitMediaTaskInput `json:"Input,omitempty" name:"Input"` + + // 视频拆条任务输出信息。 + // 注意:此字段可能返回 null,表示取不到有效值。 + Output *TaskOutputMediaInfo `json:"Output,omitempty" name:"Output"` + + // 若发起视频拆条任务时指定了视频处理流程,则该字段为流程任务 ID。 + ProcedureTaskId *string `json:"ProcedureTaskId,omitempty" name:"ProcedureTaskId"` +} + type StatDataItem struct { // 数据所在时间区间的开始时间,使用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。如:当时间粒度为天,2018-12-01T00:00:00+08:00,表示2018年12月1日(含)到2018年12月2日(不含)区间。 @@ -10230,6 +10510,15 @@ type TagConfigureInfoForUpdate struct { Switch *string `json:"Switch,omitempty" name:"Switch"` } +type TaskOutputMediaInfo struct { + + // 媒体文件 ID。 + FileId *string `json:"FileId,omitempty" name:"FileId"` + + // 转拉完成后生成的媒体文件基础信息。 + MediaBasicInfo *MediaBasicInfo `json:"MediaBasicInfo,omitempty" name:"MediaBasicInfo"` +} + type TaskSimpleInfo struct { // 任务 ID。 diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go index e8f7d6c893..261171397f 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go @@ -628,6 +628,31 @@ func (c *Client) CheckNetDetectState(request *CheckNetDetectStateRequest) (respo return } +func NewCloneSecurityGroupRequest() (request *CloneSecurityGroupRequest) { + request = &CloneSecurityGroupRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vpc", APIVersion, "CloneSecurityGroup") + return +} + +func NewCloneSecurityGroupResponse() (response *CloneSecurityGroupResponse) { + response = &CloneSecurityGroupResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(CloneSecurityGroup)用于根据存量的安全组,克隆创建出同样规则配置的安全组。仅克隆安全组及其规则信息,不会克隆安全组标签信息。 +func (c *Client) CloneSecurityGroup(request *CloneSecurityGroupRequest) (response *CloneSecurityGroupResponse, err error) { + if request == nil { + request = NewCloneSecurityGroupRequest() + } + response = NewCloneSecurityGroupResponse() + err = c.Send(request, response) + return +} + func NewCreateAddressTemplateRequest() (request *CreateAddressTemplateRequest) { request = &CreateAddressTemplateRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -827,7 +852,7 @@ func NewCreateDefaultSecurityGroupResponse() (response *CreateDefaultSecurityGro // 本接口(CreateDefaultSecurityGroup)用于创建(如果项目下未存在默认安全组,则创建;已存在则获取。)默认安全组(SecurityGroup)。 // * 每个账户下每个地域的每个项目的安全组数量限制。 -// * 新建的安全组的入站和出站规则默认都是全部拒绝,在创建后通常您需要再调用CreateSecurityGroupPolicies将安全组的规则设置为需要的规则。 +// * 默认安全组会放通所有IPv4规则,在创建后通常您需要再调用CreateSecurityGroupPolicies将安全组的规则设置为需要的规则。 // * 创建安全组同时可以绑定标签, 应答里的标签列表代表添加成功的标签。 func (c *Client) CreateDefaultSecurityGroup(request *CreateDefaultSecurityGroupRequest) (response *CreateDefaultSecurityGroupResponse, err error) { if request == nil { @@ -1439,8 +1464,8 @@ func NewCreateVpcResponse() (response *CreateVpcResponse) { } // 本接口(CreateVpc)用于创建私有网络(VPC)。 -// * 用户可以创建的最小网段子网掩码为28(有16个IP地址),最大网段子网掩码为16(65,536个IP地址),如果规划VPC网段请参见VPC网段规划说明。 -// * 同一个地域能创建的VPC资源个数也是有限制的,详见 VPC使用限制,如果需要扩充请联系在线客服。 +// * 用户可以创建的最小网段子网掩码为28(有16个IP地址),最大网段子网掩码为16(65,536个IP地址),如果需要规划VPC网段请参见[网络规划](https://cloud.tencent.com/document/product/215/30313)。 +// * 同一个地域能创建的VPC资源个数也是有限制的,详见 VPC使用限制,如果需要申请更多资源,请提交[工单申请](https://console.cloud.tencent.com/workorder/category)。 // * 创建VPC同时可以绑定标签, 应答里的标签列表代表添加成功的标签。 func (c *Client) CreateVpc(request *CreateVpcRequest) (response *CreateVpcResponse, err error) { if request == nil { @@ -2786,7 +2811,7 @@ func NewDescribeGatewayFlowMonitorDetailResponse() (response *DescribeGatewayFlo } // 本接口(DescribeGatewayFlowMonitorDetail)用于查询网关流量监控明细。 -// * 只支持单个网关实例查询。即入参 `VpnId` `DirectConnectGatewayId` `PeeringConnectionId` `NatId` 最多只支持传一个,且必须传一个。 +// * 只支持单个网关实例查询。即入参 `VpnId`、 `DirectConnectGatewayId`、 `PeeringConnectionId`、 `NatId` 最多只支持传一个,且必须传一个。 // * 如果网关有流量,但调用本接口没有返回数据,请在控制台对应网关详情页确认是否开启网关流量监控。 func (c *Client) DescribeGatewayFlowMonitorDetail(request *DescribeGatewayFlowMonitorDetailRequest) (response *DescribeGatewayFlowMonitorDetailResponse, err error) { if request == nil { @@ -2938,7 +2963,7 @@ func NewDescribeIpGeolocationDatabaseUrlResponse() (response *DescribeIpGeolocat return } -// 该接口用于获取ip地理位置库下载链接 +// 本接口(DescribeIpGeolocationDatabaseUrl)用于获取IP地理位置库下载链接。 func (c *Client) DescribeIpGeolocationDatabaseUrl(request *DescribeIpGeolocationDatabaseUrlRequest) (response *DescribeIpGeolocationDatabaseUrlResponse, err error) { if request == nil { request = NewDescribeIpGeolocationDatabaseUrlRequest() diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go index a0c2e880cb..9cc0a87719 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go @@ -379,6 +379,9 @@ type AllocateIp6AddressesBandwidthRequest struct { // 网络计费模式。IPV6当前对标准账户类型支持"TRAFFIC_POSTPAID_BY_HOUR",对传统账户类型支持"BANDWIDTH_PACKAGE"。默认网络计费模式是"TRAFFIC_POSTPAID_BY_HOUR"。 InternetChargeType *string `json:"InternetChargeType,omitempty" name:"InternetChargeType"` + + // 带宽包id,上移账号,申请带宽包计费模式的ipv6地址需要传入. + BandwidthPackageId *string `json:"BandwidthPackageId,omitempty" name:"BandwidthPackageId"` } func (r *AllocateIp6AddressesBandwidthRequest) ToJsonString() string { @@ -1364,6 +1367,56 @@ type ClassicLinkInstance struct { InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` } +type CloneSecurityGroupRequest struct { + *tchttp.BaseRequest + + // 安全组实例ID,例如sg-33ocnj9n,可通过DescribeSecurityGroups获取。 + SecurityGroupId *string `json:"SecurityGroupId,omitempty" name:"SecurityGroupId"` + + // 安全组名称,可任意命名,但不得超过60个字符。未提供参数时,克隆后的安全组名称和SecurityGroupId对应的安全组名称相同。 + GroupName *string `json:"GroupName,omitempty" name:"GroupName"` + + // 安全组备注,最多100个字符。未提供参数时,克隆后的安全组备注和SecurityGroupId对应的安全组备注相同。 + GroupDescription *string `json:"GroupDescription,omitempty" name:"GroupDescription"` + + // 项目ID,默认0。可在qcloud控制台项目管理页面查询到。 + ProjectId *string `json:"ProjectId,omitempty" name:"ProjectId"` + + // 源Region,跨地域克隆安全组时,需要传入源安全组所属地域信息,例如:克隆广州的安全组到上海,则这里需要传入广州安全的地域信息:ap-guangzhou。 + RemoteRegion *string `json:"RemoteRegion,omitempty" name:"RemoteRegion"` +} + +func (r *CloneSecurityGroupRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CloneSecurityGroupRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CloneSecurityGroupResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 安全组对象。 + // 注意:此字段可能返回 null,表示取不到有效值。 + SecurityGroup *SecurityGroup `json:"SecurityGroup,omitempty" name:"SecurityGroup"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CloneSecurityGroupResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CloneSecurityGroupResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type ConflictItem struct { // 冲突资源的ID @@ -1760,10 +1813,10 @@ func (r *CreateDefaultSecurityGroupResponse) FromJsonString(s string) error { type CreateDefaultVpcRequest struct { *tchttp.BaseRequest - // 子网所在的可用区ID,不指定将随机选择可用区 + // 子网所在的可用区,该参数可通过[DescribeZones](https://cloud.tencent.com/document/product/213/15707)接口获取,例如ap-guangzhou-1,不指定时将随机选择可用区。 Zone *string `json:"Zone,omitempty" name:"Zone"` - // 是否强制返回默认VPC + // 是否强制返回默认VPC。 Force *bool `json:"Force,omitempty" name:"Force"` } @@ -2738,19 +2791,19 @@ type CreateVpcRequest struct { // vpc名称,最大长度不能超过60个字节。 VpcName *string `json:"VpcName,omitempty" name:"VpcName"` - // vpc的cidr,只能为10.0.0.0/16,172.16.0.0/16,192.168.0.0/16这三个内网网段内。 + // vpc的cidr,仅能在10.0.0.0/16,172.16.0.0/16,192.168.0.0/16这三个内网网段内。 CidrBlock *string `json:"CidrBlock,omitempty" name:"CidrBlock"` // 是否开启组播。true: 开启, false: 不开启。 EnableMulticast *string `json:"EnableMulticast,omitempty" name:"EnableMulticast"` - // DNS地址,最多支持4个 + // DNS地址,最多支持4个。 DnsServers []*string `json:"DnsServers,omitempty" name:"DnsServers" list` - // 域名 + // DHCP使用的域名。 DomainName *string `json:"DomainName,omitempty" name:"DomainName"` - // 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}] + // 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。 Tags []*Tag `json:"Tags,omitempty" name:"Tags" list` } @@ -2848,7 +2901,7 @@ func (r *CreateVpnConnectionResponse) FromJsonString(s string) error { type CreateVpnGatewayRequest struct { *tchttp.BaseRequest - // VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。 + // VPC实例ID。可通过[DescribeVpcs](https://cloud.tencent.com/document/product/215/15778)接口返回值中的VpcId获取。 VpcId *string `json:"VpcId,omitempty" name:"VpcId"` // VPN网关名称,最大长度不能超过60个字节。 @@ -5464,7 +5517,7 @@ func (r *DescribeIp6TranslatorsResponse) FromJsonString(s string) error { type DescribeIpGeolocationDatabaseUrlRequest struct { *tchttp.BaseRequest - // ip地址库协议类型,目前支持"ipv4"和"ipv6"。 + // IP地理位置库协议类型,目前支持"ipv4"和"ipv6"。 Type *string `json:"Type,omitempty" name:"Type"` } @@ -5481,7 +5534,7 @@ type DescribeIpGeolocationDatabaseUrlResponse struct { *tchttp.BaseResponse Response *struct { - // IP地址库下载链接地址 + // IP地理位置库下载链接地址。 DownLoadUrl *string `json:"DownLoadUrl,omitempty" name:"DownLoadUrl"` // 链接到期时间。按照`ISO8601`标准表示,并且使用`UTC`时间。 @@ -7221,10 +7274,10 @@ type DisableRoutesRequest struct { // 路由表唯一ID。 RouteTableId *string `json:"RouteTableId,omitempty" name:"RouteTableId"` - // 路由策略ID。不能和RouteItemIds同时使用。 + // 路由策略ID。不能和RouteItemIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。 RouteIds []*uint64 `json:"RouteIds,omitempty" name:"RouteIds" list` - // 路由策略唯一ID。不能和RouteIds同时使用。 + // 路由策略唯一ID。不能和RouteIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。 RouteItemIds []*string `json:"RouteItemIds,omitempty" name:"RouteItemIds" list` } @@ -7606,10 +7659,10 @@ type EnableRoutesRequest struct { // 路由表唯一ID。 RouteTableId *string `json:"RouteTableId,omitempty" name:"RouteTableId"` - // 路由策略ID。不能和RouteItemIds同时使用。 + // 路由策略ID。不能和RouteItemIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。 RouteIds []*uint64 `json:"RouteIds,omitempty" name:"RouteIds" list` - // 路由策略唯一ID。不能和RouteIds同时使用。 + // 路由策略唯一ID。不能和RouteIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。 RouteItemIds []*string `json:"RouteItemIds,omitempty" name:"RouteItemIds" list` } @@ -8611,10 +8664,10 @@ type ModifyAssistantCidrRequest struct { // `VPC`实例`ID`。形如:`vpc-6v2ht8q5` VpcId *string `json:"VpcId,omitempty" name:"VpcId"` - // 待添加的负载CIDR。CIDR数组,格式如["10.0.0.0/16", "172.16.0.0/16"] + // 待添加的负载CIDR。CIDR数组,格式如["10.0.0.0/16", "172.16.0.0/16"],入参NewCidrBlocks和OldCidrBlocks至少需要其一。 NewCidrBlocks []*string `json:"NewCidrBlocks,omitempty" name:"NewCidrBlocks" list` - // 待删除的负载CIDR。CIDR数组,格式如["10.0.0.0/16", "172.16.0.0/16"] + // 待删除的负载CIDR。CIDR数组,格式如["10.0.0.0/16", "172.16.0.0/16"],入参NewCidrBlocks和OldCidrBlocks至少需要其一。 OldCidrBlocks []*string `json:"OldCidrBlocks,omitempty" name:"OldCidrBlocks" list` } @@ -9177,6 +9230,12 @@ type ModifyNatGatewayAttributeRequest struct { // NAT网关最大外网出带宽(单位:Mbps)。 InternetMaxBandwidthOut *uint64 `json:"InternetMaxBandwidthOut,omitempty" name:"InternetMaxBandwidthOut"` + + // 是否修改NAT网关绑定的安全组。 + ModifySecurityGroup *bool `json:"ModifySecurityGroup,omitempty" name:"ModifySecurityGroup"` + + // NAT网关绑定的安全组列表,最终状态,空列表表示删除所有安全组,形如: `['sg-1n232323', 'sg-o4242424']` + SecurityGroupIds []*string `json:"SecurityGroupIds,omitempty" name:"SecurityGroupIds" list` } func (r *ModifyNatGatewayAttributeRequest) ToJsonString() string { @@ -9915,6 +9974,10 @@ type NatGateway struct { // 标签键值对。 TagSet []*Tag `json:"TagSet,omitempty" name:"TagSet" list` + + // NAT网关绑定的安全组列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + SecurityGroupSet []*string `json:"SecurityGroupSet,omitempty" name:"SecurityGroupSet" list` } type NatGatewayAddress struct { @@ -11126,7 +11189,7 @@ type SecurityGroupAssociationStatistics struct { // 云服务器实例数。 CVM *uint64 `json:"CVM,omitempty" name:"CVM"` - // 数据库实例数。 + // MySQL数据库实例数。 CDB *uint64 `json:"CDB,omitempty" name:"CDB"` // 弹性网卡实例数。 diff --git a/vendor/modules.txt b/vendor/modules.txt index 40f24b9a01..bb84824ddd 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -525,7 +525,7 @@ github.com/stretchr/testify/mock github.com/subosito/gotenv # github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2 github.com/tdakkota/asciicheck -# github.com/tencentcloud/tencentcloud-sdk-go v1.0.67 +# github.com/tencentcloud/tencentcloud-sdk-go v1.0.76 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway/v20180808 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as/v20180419 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam/v20190116 diff --git a/website/docs/r/kubernetes_as_scaling_group.html.markdown b/website/docs/r/kubernetes_as_scaling_group.html.markdown index ca0d8776ef..2eca90b2bc 100644 --- a/website/docs/r/kubernetes_as_scaling_group.html.markdown +++ b/website/docs/r/kubernetes_as_scaling_group.html.markdown @@ -5,12 +5,14 @@ page_title: "TencentCloud: tencentcloud_kubernetes_as_scaling_group" sidebar_current: "docs-tencentcloud-resource-kubernetes_as_scaling_group" description: |- Provide a resource to create an auto scaling group for kubernetes cluster. +~> **NOTE:** It has been deprecated and replaced by `tencentcloud_cluster_node_pool`. +~> **NOTE:** To use the custom Kubernetes component startup parameter function (parameter `extra_args`), you need to submit a ticket for application. --- # tencentcloud_kubernetes_as_scaling_group Provide a resource to create an auto scaling group for kubernetes cluster. - +~> **NOTE:** It has been deprecated and replaced by `tencentcloud_cluster_node_pool`. ~> **NOTE:** To use the custom Kubernetes component startup parameter function (parameter `extra_args`), you need to submit a ticket for application. ## Example Usage diff --git a/website/docs/r/kubernetes_cluster.html.markdown b/website/docs/r/kubernetes_cluster.html.markdown index a670742e72..c63f46aa51 100644 --- a/website/docs/r/kubernetes_cluster.html.markdown +++ b/website/docs/r/kubernetes_cluster.html.markdown @@ -12,6 +12,7 @@ description: |- Provide a resource to create a kubernetes cluster. ~> **NOTE:** To use the custom Kubernetes component startup parameter function (parameter `extra_args`), you need to submit a ticket for application. +~> **NOTE:** We recommend the usage of one cluster without worker config + node pool to manage cluster and nodes. It's a more flexible way than manage worker config with tencentcloud_kubernetes_cluster, tencentcloud_kubernetes_scale_worker or exist node management of `tencentcloud_kubernetes_attachment`. Cause some unchangeable parameters of `worker_config` may cause the whole cluster resource `force new`. ## Example Usage @@ -209,7 +210,7 @@ The following arguments are supported: * `claim_expired_seconds` - (Optional) Claim expired seconds to recycle ENI. This field can only set when field `network_type` is 'VPC-CNI'. `claim_expired_seconds` must greater or equal than 300 and less than 15768000. * `cluster_as_enabled` - (Optional, ForceNew) Indicates whether to enable cluster node auto scaler. * `cluster_cidr` - (Optional, ForceNew) A network address block of the cluster. Different from vpc cidr and cidr of other clusters within this vpc. Must be in 10./192.168/172.[16-31] segments. -* `cluster_deploy_type` - (Optional, ForceNew) Deployment type of the cluster, the available values include: 'MANAGED_CLUSTER' and 'INDEPENDENT_CLUSTER', Default is 'MANAGED_CLUSTER'. +* `cluster_deploy_type` - (Optional, ForceNew) Deployment type of the cluster, the available values include: 'MANAGED_CLUSTER' and 'INDEPENDENT_CLUSTER'. Default is 'MANAGED_CLUSTER'. * `cluster_desc` - (Optional) Description of the cluster. * `cluster_extra_args` - (Optional, ForceNew) Customized parameters for master component,such as kube-apiserver, kube-controller-manager, kube-scheduler. * `cluster_internet` - (Optional) Open internet access or not. diff --git a/website/docs/r/kubernetes_node_pool.html.markdown b/website/docs/r/kubernetes_node_pool.html.markdown new file mode 100644 index 0000000000..8b46b3956c --- /dev/null +++ b/website/docs/r/kubernetes_node_pool.html.markdown @@ -0,0 +1,167 @@ +--- +subcategory: "Tencent Kubernetes Engine(TKE)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_kubernetes_node_pool" +sidebar_current: "docs-tencentcloud-resource-kubernetes_node_pool" +description: |- + Provide a resource to create an auto scaling group for kubernetes cluster. +--- + +# tencentcloud_kubernetes_node_pool + +Provide a resource to create an auto scaling group for kubernetes cluster. + +~> **NOTE:** We recommend the usage of one cluster without worker config + node pool to manage cluster and nodes. Its a more flexible way than manage worker config with tencentcloud_kubernetes_cluster, tencentcloud_kubernetes_scale_worker or exist node management of `tencentcloud_kubernetes_attachment`. Cause some unchangeable parameters of `worker_config` may cause the whole cluster resource `force new`. + +## Example Usage + +```hcl +variable "availability_zone" { + default = "ap-guangzhou-3" +} + +variable "cluster_cidr" { + default = "172.31.0.0/16" +} + +data "tencentcloud_vpc_subnets" "vpc" { + is_default = true + availability_zone = var.availability_zone +} + +variable "default_instance_type" { + default = "S1.SMALL1" +} + +//this is the cluster with empty worker config +resource "tencentcloud_kubernetes_cluster" "managed_cluster" { + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + cluster_cidr = var.cluster_cidr + cluster_max_pod_num = 32 + cluster_name = "tf-tke-unit-test" + cluster_desc = "test cluster desc" + cluster_max_service_num = 32 + cluster_version = "1.18.4" + cluster_deploy_type = "MANAGED_CLUSTER" +} + +//this is one example of managing node using node pool +resource "tencentcloud_kubernetes_node_pool" "mynodepool" { + name = "mynodepool" + cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id + max_size = 6 + min_size = 1 + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + retry_policy = "INCREMENTAL_INTERVALS" + desired_capacity = 4 + enable_auto_scale = true + + auto_scaling_config { + instance_type = var.default_instance_type + system_disk_type = "CLOUD_PREMIUM" + system_disk_size = "50" + security_group_ids = ["sg-24vswocp"] + + data_disk { + disk_type = "CLOUD_PREMIUM" + disk_size = 50 + } + + internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" + password = "test123#" + enhanced_security_service = false + enhanced_monitor_service = false + + } + + labels = { + "test1" = "test1", + "test2" = "test2", + } + + taints { + key = "test_taint" + value = "taint_value" + effect = "PreferNoSchedule" + } + + node_config { + extra_args = [ + "root-dir=/var/lib/kubelet" + ] + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `auto_scaling_config` - (Required, ForceNew) Auto scaling config parameters. +* `cluster_id` - (Required, ForceNew) ID of the cluster. +* `max_size` - (Required) Maximum number of node. +* `min_size` - (Required) Minimum number of node. +* `name` - (Required, ForceNew) Name of the node pool. The name does not exceed 25 characters, and only supports Chinese, English, numbers, underscores, separators (`-`) and decimal points. +* `node_config` - (Required) Node config. +* `vpc_id` - (Required, ForceNew) ID of VPC network. +* `delete_keep_instance` - (Optional) Indicate to keep the CVM instance when delete the node pool. Default is `true`. +* `desired_capacity` - (Optional) Desired capacity ot the node. If `enable_auto_scale` is set `true`, this will be a computed parameter. +* `enable_auto_scale` - (Optional) Indicate whether to enable auto scaling or not. +* `labels` - (Optional) Labels of kubernetes node pool created nodes. The label key name does not exceed 63 characters, only supports English, numbers,'/','-', and does not allow beginning with ('/'). +* `node_os_type` - (Optional) The image version of the node. Valida values are `DOCKER_CUSTOMIZE` and `GENERAL`. Default is `GENERAL`. This parameter will only affect new nodes, not including the existing nodes. +* `node_os` - (Optional) Operating system of the cluster, the available values include: `tlinux2.4x86_64`, `ubuntu18.04.1x86_64`, `ubuntu16.04.1 LTSx86_64`, `centos7.6.0_x64` and `centos7.2x86_64`. Default is 'tlinux2.4x86_64'. This parameter will only affect new nodes, not including the existing nodes. +* `retry_policy` - (Optional, ForceNew) Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. +* `subnet_ids` - (Optional, ForceNew) ID list of subnet, and for VPC it is required. +* `taints` - (Optional) Taints of kubernetes node pool created nodes. + +The `auto_scaling_config` object supports the following: + +* `instance_type` - (Required, ForceNew) Specified types of CVM instance. +* `data_disk` - (Optional, ForceNew) Configurations of data disk. +* `enhanced_monitor_service` - (Optional, ForceNew) To specify whether to enable cloud monitor service. Default is TRUE. +* `enhanced_security_service` - (Optional, ForceNew) To specify whether to enable cloud security service. Default is TRUE. +* `internet_charge_type` - (Optional, ForceNew) Charge types for network traffic. Valid value: `BANDWIDTH_PREPAID`, `TRAFFIC_POSTPAID_BY_HOUR`, `TRAFFIC_POSTPAID_BY_HOUR` and `BANDWIDTH_PACKAGE`. +* `key_ids` - (Optional, ForceNew) ID list of keys. +* `password` - (Optional, ForceNew) Password to access. +* `security_group_ids` - (Optional, ForceNew) Security groups to which a CVM instance belongs. +* `system_disk_size` - (Optional, ForceNew) Volume of system disk in GB. Default is `50`. +* `system_disk_type` - (Optional, ForceNew) Type of a CVM disk. Valid value: `CLOUD_PREMIUM` and `CLOUD_SSD`. Default is `CLOUD_PREMIUM`. + +The `data_disk` object supports the following: + +* `disk_size` - (Optional, ForceNew) Volume of disk in GB. Default is `0`. +* `disk_type` - (Optional, ForceNew) Types of disk, available values: `CLOUD_PREMIUM` and `CLOUD_SSD`. + +The `data_disk` object supports the following: + +* `disk_size` - (Optional, ForceNew) Volume of disk in GB. Default is `0`. +* `disk_type` - (Optional, ForceNew) Types of disk. Valid value: `CLOUD_PREMIUM` and `CLOUD_SSD`. +* `snapshot_id` - (Optional, ForceNew) Data disk snapshot ID. + +The `node_config` object supports the following: + +* `data_disk` - (Optional, ForceNew) Configurations of data disk. +* `docker_graph_path` - (Optional, ForceNew) Docker graph path. Default is `/var/lib/docker`. +* `extra_args` - (Optional, ForceNew) Custom parameter information related to the node. This is a white-list parameter. +* `is_schedule` - (Optional, ForceNew) Indicate to schedule the adding node or not. Default is true. +* `mount_target` - (Optional, ForceNew) Mount target. Default is not mounting. +* `user_data` - (Optional, ForceNew) Base64-encoded User Data text, the length limit is 16KB. + +The `taints` object supports the following: + +* `effect` - (Required) Effect of the taint. Valid values are: `NoSchedule`, `PreferNoSchedule`, `NoExecute`. +* `key` - (Required) Key of the taint. The taint key name does not exceed 63 characters, only supports English, numbers,'/','-', and does not allow beginning with ('/'). +* `value` - (Required) Value of the taint. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. +* `auto_scaling_group_id` - The auto scaling group ID. +* `launch_config_id` - The launch config ID. +* `node_count` - The total node count. +* `status` - Status of the node pool. + + diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index 89a5731794..47faf95cff 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -1196,6 +1196,9 @@
  • tencentcloud_kubernetes_cluster_attachment
  • +
  • + tencentcloud_kubernetes_node_pool +
  • tencentcloud_kubernetes_scale_worker