tencentcloud-sdk-python 3.0.1491__py2.py3-none-any.whl → 3.1.6__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tencentcloud/__init__.py +1 -1
- tencentcloud/aai/v20180522/aai_client_async.py +100 -0
- tencentcloud/aca/v20210323/aca_client_async.py +170 -0
- tencentcloud/acp/v20220105/acp_client_async.py +170 -0
- tencentcloud/advisor/v20200721/advisor_client_async.py +62 -0
- tencentcloud/af/v20200226/af_client_async.py +86 -0
- tencentcloud/afc/v20200226/afc_client_async.py +82 -0
- tencentcloud/ags/v20250920/ags_client_async.py +243 -0
- tencentcloud/ai3d/v20250513/ai3d_client_async.py +102 -0
- tencentcloud/aiart/v20221229/aiart_client_async.py +513 -0
- tencentcloud/ame/v20190916/ame_client_async.py +586 -0
- tencentcloud/ams/v20200608/ams_client_async.py +179 -0
- tencentcloud/ams/v20201229/ams_client_async.py +169 -0
- tencentcloud/anicloud/v20220923/anicloud_client_async.py +80 -0
- tencentcloud/antiddos/v20200309/antiddos_client_async.py +1718 -0
- tencentcloud/ape/v20200513/ape_client_async.py +170 -0
- tencentcloud/api/v20201106/api_client_async.py +80 -0
- tencentcloud/apigateway/v20180808/apigateway_client_async.py +1830 -0
- tencentcloud/apm/v20210622/apm_client_async.py +495 -0
- tencentcloud/asr/v20190614/asr_client_async.py +647 -0
- tencentcloud/asw/v20200722/asw_client_async.py +188 -0
- tencentcloud/autoscaling/v20180419/autoscaling_client.py +1 -0
- tencentcloud/autoscaling/v20180419/autoscaling_client_async.py +1230 -0
- tencentcloud/autoscaling/v20180419/models.py +36 -0
- tencentcloud/ba/v20200720/ba_client_async.py +81 -0
- tencentcloud/batch/v20170312/batch_client_async.py +582 -0
- tencentcloud/bda/v20200324/bda_client_async.py +116 -0
- tencentcloud/bh/v20230418/bh_client.py +230 -0
- tencentcloud/bh/v20230418/bh_client_async.py +1844 -0
- tencentcloud/bh/v20230418/models.py +1677 -216
- tencentcloud/bi/v20220105/bi_client_async.py +548 -0
- tencentcloud/billing/v20180709/billing_client_async.py +1149 -0
- tencentcloud/bizlive/v20190313/bizlive_client_async.py +134 -0
- tencentcloud/bm/v20180423/bm_client_async.py +1012 -0
- tencentcloud/bma/v20210624/bma_client_async.py +530 -0
- tencentcloud/bma/v20221115/bma_client_async.py +224 -0
- tencentcloud/bmeip/v20180625/bmeip_client_async.py +386 -0
- tencentcloud/bmlb/v20180625/bmlb_client_async.py +908 -0
- tencentcloud/bmvpc/v20180625/bmvpc_client_async.py +1171 -0
- tencentcloud/bpaas/v20181217/bpaas_client_async.py +62 -0
- tencentcloud/bri/v20190328/bri_client_async.py +58 -0
- tencentcloud/bsca/v20210811/bsca_client_async.py +152 -0
- tencentcloud/btoe/v20210303/btoe_client_async.py +267 -0
- tencentcloud/btoe/v20210514/btoe_client_async.py +287 -0
- tencentcloud/ca/v20230228/ca_client_async.py +80 -0
- tencentcloud/cam/v20190116/cam_client_async.py +1684 -0
- tencentcloud/captcha/v20190722/captcha_client_async.py +350 -0
- tencentcloud/car/v20220110/car_client_async.py +134 -0
- tencentcloud/cat/v20180409/cat_client_async.py +279 -0
- tencentcloud/cbs/v20170312/cbs_client_async.py +959 -0
- tencentcloud/ccc/v20200210/ccc_client_async.py +1494 -0
- tencentcloud/ccc/v20200210/models.py +15 -0
- tencentcloud/cdb/v20170320/cdb_client_async.py +3254 -0
- tencentcloud/cdb/v20170320/models.py +74 -44
- tencentcloud/cdc/v20201214/cdc_client_async.py +440 -0
- tencentcloud/cdn/v20180606/cdn_client_async.py +1090 -0
- tencentcloud/cds/v20180420/cds_client_async.py +116 -0
- tencentcloud/cdwch/v20200915/cdwch_client_async.py +548 -0
- tencentcloud/cdwch/v20200915/models.py +34 -4
- tencentcloud/cdwdoris/v20211228/cdwdoris_client_async.py +1106 -0
- tencentcloud/cdwpg/v20201230/cdwpg_client_async.py +458 -0
- tencentcloud/cdz/v20221123/cdz_client_async.py +62 -0
- tencentcloud/cfg/v20210820/cfg_client_async.py +332 -0
- tencentcloud/cfs/v20190719/cfs_client_async.py +1054 -0
- tencentcloud/cfs/v20190719/models.py +40 -0
- tencentcloud/cfw/v20190904/cfw_client.py +23 -0
- tencentcloud/cfw/v20190904/cfw_client_async.py +2067 -0
- tencentcloud/cfw/v20190904/models.py +784 -8
- tencentcloud/chc/v20230418/chc_client_async.py +710 -0
- tencentcloud/chdfs/v20190718/chdfs_client_async.py +546 -0
- tencentcloud/chdfs/v20201112/chdfs_client_async.py +548 -0
- tencentcloud/ciam/v20220331/ciam_client_async.py +440 -0
- tencentcloud/cii/v20201210/cii_client_async.py +80 -0
- tencentcloud/cii/v20210408/cii_client_async.py +262 -0
- tencentcloud/cim/v20190318/cim_client_async.py +44 -0
- tencentcloud/ckafka/v20190819/ckafka_client.py +92 -0
- tencentcloud/ckafka/v20190819/ckafka_client_async.py +1701 -0
- tencentcloud/ckafka/v20190819/errorcodes.py +3 -0
- tencentcloud/ckafka/v20190819/models.py +741 -62
- tencentcloud/clb/v20180317/clb_client_async.py +1683 -0
- tencentcloud/cloudapp/v20220530/cloudapp_client_async.py +175 -0
- tencentcloud/cloudaudit/v20190319/cloudaudit_client_async.py +372 -0
- tencentcloud/cloudhsm/v20191112/cloudhsm_client_async.py +278 -0
- tencentcloud/cloudhsm/v20191112/models.py +49 -0
- tencentcloud/cloudstudio/v20230508/cloudstudio_client_async.py +188 -0
- tencentcloud/cls/v20201016/cls_client.py +92 -0
- tencentcloud/cls/v20201016/cls_client_async.py +2362 -0
- tencentcloud/cls/v20201016/models.py +1427 -74
- tencentcloud/cme/v20191029/cme_client_async.py +983 -0
- tencentcloud/cmq/v20190304/cmq_client_async.py +62 -0
- tencentcloud/cms/v20190321/cms_client_async.py +134 -0
- tencentcloud/common/abstract_client_async.py +654 -0
- tencentcloud/common/common_client_async.py +45 -0
- tencentcloud/common/http/request_async.py +62 -0
- tencentcloud/common/retry_async.py +87 -0
- tencentcloud/config/v20220802/config_client_async.py +152 -0
- tencentcloud/controlcenter/v20230110/controlcenter_client_async.py +116 -0
- tencentcloud/cpdp/v20190820/cpdp_client_async.py +3979 -0
- tencentcloud/csip/v20221121/csip_client.py +1 -1
- tencentcloud/csip/v20221121/csip_client_async.py +1502 -0
- tencentcloud/csip/v20221121/models.py +105 -0
- tencentcloud/csxg/v20230303/csxg_client_async.py +116 -0
- tencentcloud/ctem/v20231128/ctem_client.py +644 -0
- tencentcloud/ctem/v20231128/ctem_client_async.py +1124 -0
- tencentcloud/ctem/v20231128/models.py +4999 -711
- tencentcloud/ctsdb/v20230202/ctsdb_client_async.py +69 -0
- tencentcloud/cvm/v20170312/cvm_client.py +1 -1
- tencentcloud/cvm/v20170312/cvm_client_async.py +2025 -0
- tencentcloud/cvm/v20170312/errorcodes.py +3 -0
- tencentcloud/cvm/v20170312/models.py +14 -14
- tencentcloud/cwp/v20180228/cwp_client_async.py +9288 -0
- tencentcloud/cws/v20180312/cws_client_async.py +368 -0
- tencentcloud/cynosdb/v20190107/cynosdb_client_async.py +3068 -0
- tencentcloud/cynosdb/v20190107/models.py +99 -2
- tencentcloud/dasb/v20191018/dasb_client_async.py +1160 -0
- tencentcloud/dataagent/v20250513/dataagent_client_async.py +224 -0
- tencentcloud/dataagent/v20250513/models.py +15 -0
- tencentcloud/dayu/v20180709/dayu_client_async.py +2042 -0
- tencentcloud/dbbrain/v20191016/dbbrain_client_async.py +530 -0
- tencentcloud/dbbrain/v20210527/dbbrain_client.py +23 -0
- tencentcloud/dbbrain/v20210527/dbbrain_client_async.py +1538 -0
- tencentcloud/dbbrain/v20210527/models.py +463 -12
- tencentcloud/dbdc/v20201029/dbdc_client_async.py +134 -0
- tencentcloud/dc/v20180410/dc_client_async.py +425 -0
- tencentcloud/dcdb/v20180411/dcdb_client_async.py +1541 -0
- tencentcloud/dlc/v20210125/dlc_client.py +23 -0
- tencentcloud/dlc/v20210125/dlc_client_async.py +3322 -0
- tencentcloud/dlc/v20210125/errorcodes.py +9 -0
- tencentcloud/dlc/v20210125/models.py +1424 -17
- tencentcloud/dnspod/v20210323/dnspod_client_async.py +1710 -0
- tencentcloud/dnspod/v20210323/errorcodes.py +3 -0
- tencentcloud/dnspod/v20210323/models.py +2 -2
- tencentcloud/domain/v20180808/domain_client_async.py +1022 -0
- tencentcloud/drm/v20181115/drm_client_async.py +231 -0
- tencentcloud/ds/v20180523/ds_client_async.py +244 -0
- tencentcloud/dsgc/v20190723/dsgc_client_async.py +2452 -0
- tencentcloud/dsgc/v20190723/models.py +36 -36
- tencentcloud/dts/v20180330/dts_client_async.py +438 -0
- tencentcloud/dts/v20211206/dts_client.py +184 -0
- tencentcloud/dts/v20211206/dts_client_async.py +1480 -0
- tencentcloud/dts/v20211206/models.py +1275 -98
- tencentcloud/eb/v20210416/eb_client_async.py +602 -0
- tencentcloud/ecc/v20181213/ecc_client_async.py +100 -0
- tencentcloud/ecdn/v20191012/ecdn_client_async.py +162 -0
- tencentcloud/ecm/v20190719/ecm_client_async.py +2602 -0
- tencentcloud/eiam/v20210420/eiam_client_async.py +782 -0
- tencentcloud/eis/v20200715/eis_client_async.py +80 -0
- tencentcloud/eis/v20210601/eis_client_async.py +116 -0
- tencentcloud/emr/v20190103/emr_client.py +23 -0
- tencentcloud/emr/v20190103/emr_client_async.py +1659 -0
- tencentcloud/emr/v20190103/models.py +395 -0
- tencentcloud/es/v20180416/es_client_async.py +1209 -0
- tencentcloud/es/v20250101/es_client.py +6 -5
- tencentcloud/es/v20250101/es_client_async.py +216 -0
- tencentcloud/es/v20250101/models.py +6 -6
- tencentcloud/ess/v20201111/ess_client.py +6 -2
- tencentcloud/ess/v20201111/ess_client_async.py +3406 -0
- tencentcloud/ess/v20201111/models.py +468 -19
- tencentcloud/essbasic/v20201222/essbasic_client_async.py +1029 -0
- tencentcloud/essbasic/v20210526/essbasic_client.py +1 -1
- tencentcloud/essbasic/v20210526/essbasic_client_async.py +2757 -0
- tencentcloud/essbasic/v20210526/models.py +320 -6
- tencentcloud/evt/__init__.py +0 -0
- tencentcloud/evt/v20250217/__init__.py +0 -0
- tencentcloud/evt/v20250217/errorcodes.py +15 -0
- tencentcloud/evt/v20250217/evt_client.py +49 -0
- tencentcloud/evt/v20250217/evt_client_async.py +44 -0
- tencentcloud/evt/v20250217/models.py +228 -0
- tencentcloud/facefusion/v20181201/facefusion_client_async.py +86 -0
- tencentcloud/facefusion/v20220927/facefusion_client_async.py +83 -0
- tencentcloud/faceid/v20180301/errorcodes.py +0 -6
- tencentcloud/faceid/v20180301/faceid_client.py +0 -23
- tencentcloud/faceid/v20180301/faceid_client_async.py +674 -0
- tencentcloud/faceid/v20180301/models.py +45 -195
- tencentcloud/fmu/v20191213/fmu_client_async.py +161 -0
- tencentcloud/ft/v20200304/ft_client_async.py +134 -0
- tencentcloud/gaap/v20180529/gaap_client_async.py +1865 -0
- tencentcloud/gme/v20180711/gme_client_async.py +865 -0
- tencentcloud/goosefs/v20220519/goosefs_client_async.py +514 -0
- tencentcloud/gs/v20191118/gs_client.py +46 -0
- tencentcloud/gs/v20191118/gs_client_async.py +1527 -0
- tencentcloud/gs/v20191118/models.py +227 -0
- tencentcloud/gwlb/v20240906/gwlb_client_async.py +373 -0
- tencentcloud/habo/v20181203/habo_client_async.py +62 -0
- tencentcloud/hai/v20230812/hai_client_async.py +316 -0
- tencentcloud/hasim/v20210716/hasim_client_async.py +422 -0
- tencentcloud/hcm/v20181106/hcm_client_async.py +44 -0
- tencentcloud/hunyuan/v20230901/hunyuan_client_async.py +469 -0
- tencentcloud/iai/v20180301/iai_client.py +0 -44
- tencentcloud/iai/v20180301/iai_client_async.py +728 -0
- tencentcloud/iai/v20180301/models.py +0 -171
- tencentcloud/iai/v20200303/iai_client.py +1 -35
- tencentcloud/iai/v20200303/iai_client_async.py +802 -0
- tencentcloud/iai/v20200303/models.py +0 -175
- tencentcloud/iap/v20240713/iap_client_async.py +134 -0
- tencentcloud/ic/v20190307/ic_client_async.py +193 -0
- tencentcloud/icr/v20211014/icr_client_async.py +44 -0
- tencentcloud/ie/v20200304/ie_client_async.py +206 -0
- tencentcloud/ig/v20210518/ig_client_async.py +44 -0
- tencentcloud/igtm/v20231024/igtm_client_async.py +494 -0
- tencentcloud/igtm/v20231024/models.py +110 -0
- tencentcloud/ims/v20200713/ims_client_async.py +60 -0
- tencentcloud/ims/v20201229/ims_client_async.py +132 -0
- tencentcloud/ioa/v20220601/ioa_client_async.py +512 -0
- tencentcloud/iot/v20180123/iot_client_async.py +838 -0
- tencentcloud/iotcloud/v20180614/iotcloud_client_async.py +1268 -0
- tencentcloud/iotcloud/v20210408/iotcloud_client_async.py +1340 -0
- tencentcloud/iotexplorer/v20190423/iotexplorer_client.py +161 -0
- tencentcloud/iotexplorer/v20190423/iotexplorer_client_async.py +3632 -0
- tencentcloud/iotexplorer/v20190423/models.py +1669 -337
- tencentcloud/iotvideo/v20191126/iotvideo_client_async.py +1278 -0
- tencentcloud/iotvideo/v20201215/iotvideo_client_async.py +1448 -0
- tencentcloud/iotvideo/v20211125/iotvideo_client_async.py +1970 -0
- tencentcloud/iotvideoindustry/v20201201/iotvideoindustry_client_async.py +1921 -0
- tencentcloud/irp/v20220324/irp_client_async.py +98 -0
- tencentcloud/irp/v20220805/irp_client_async.py +152 -0
- tencentcloud/iss/v20230517/iss_client_async.py +1686 -0
- tencentcloud/iss/v20230517/models.py +2 -2
- tencentcloud/ivld/v20210903/ivld_client_async.py +636 -0
- tencentcloud/keewidb/v20220308/keewidb_client_async.py +711 -0
- tencentcloud/kms/v20190118/kms_client_async.py +1252 -0
- tencentcloud/lcic/v20220817/lcic_client_async.py +1331 -0
- tencentcloud/lighthouse/v20200324/lighthouse_client_async.py +2331 -0
- tencentcloud/live/v20180801/live_client.py +0 -25
- tencentcloud/live/v20180801/live_client_async.py +3758 -0
- tencentcloud/live/v20180801/models.py +0 -282
- tencentcloud/lke/v20231130/lke_client_async.py +1923 -0
- tencentcloud/lke/v20231130/models.py +82 -0
- tencentcloud/lkeap/v20240522/lkeap_client.py +3 -13
- tencentcloud/lkeap/v20240522/lkeap_client_async.py +618 -0
- tencentcloud/lowcode/v20210108/lowcode_client_async.py +332 -0
- tencentcloud/mall/v20230518/mall_client_async.py +44 -0
- tencentcloud/mariadb/v20170312/mariadb_client_async.py +1505 -0
- tencentcloud/market/v20191010/market_client_async.py +62 -0
- tencentcloud/memcached/v20190318/memcached_client_async.py +44 -0
- tencentcloud/mmps/v20200710/mmps_client_async.py +296 -0
- tencentcloud/mna/v20210119/mna_client_async.py +764 -0
- tencentcloud/mongodb/v20180408/mongodb_client_async.py +260 -0
- tencentcloud/mongodb/v20190725/errorcodes.py +3 -0
- tencentcloud/mongodb/v20190725/models.py +390 -2
- tencentcloud/mongodb/v20190725/mongodb_client.py +46 -0
- tencentcloud/mongodb/v20190725/mongodb_client_async.py +1220 -0
- tencentcloud/monitor/v20180724/monitor_client_async.py +3099 -0
- tencentcloud/monitor/v20230616/monitor_client_async.py +44 -0
- tencentcloud/mps/v20190612/errorcodes.py +9 -0
- tencentcloud/mps/v20190612/models.py +2329 -290
- tencentcloud/mps/v20190612/mps_client.py +232 -0
- tencentcloud/mps/v20190612/mps_client_async.py +2729 -0
- tencentcloud/mqtt/v20240516/mqtt_client_async.py +1153 -0
- tencentcloud/mrs/v20200910/mrs_client_async.py +231 -0
- tencentcloud/ms/v20180408/ms_client_async.py +450 -0
- tencentcloud/msp/v20180319/msp_client_async.py +154 -0
- tencentcloud/nlp/v20190408/nlp_client_async.py +140 -0
- tencentcloud/npp/v20190823/npp_client_async.py +170 -0
- tencentcloud/oceanus/v20190422/oceanus_client_async.py +844 -0
- tencentcloud/ocr/v20181119/models.py +232 -0
- tencentcloud/ocr/v20181119/ocr_client_async.py +2228 -0
- tencentcloud/omics/v20221128/omics_client_async.py +386 -0
- tencentcloud/organization/v20181225/organization_client_async.py +386 -0
- tencentcloud/organization/v20210331/organization_client_async.py +2348 -0
- tencentcloud/partners/v20180321/partners_client_async.py +444 -0
- tencentcloud/postgres/v20170312/errorcodes.py +6 -0
- tencentcloud/postgres/v20170312/postgres_client_async.py +1908 -0
- tencentcloud/privatedns/v20201028/errorcodes.py +9 -0
- tencentcloud/privatedns/v20201028/models.py +783 -17
- tencentcloud/privatedns/v20201028/privatedns_client.py +93 -1
- tencentcloud/privatedns/v20201028/privatedns_client_async.py +746 -0
- tencentcloud/pts/v20210728/pts_client_async.py +890 -0
- tencentcloud/rce/v20201103/rce_client_async.py +224 -0
- tencentcloud/redis/v20180412/redis_client_async.py +2008 -0
- tencentcloud/region/v20220627/region_client_async.py +80 -0
- tencentcloud/rum/v20210622/rum_client_async.py +999 -0
- tencentcloud/scf/v20180416/errorcodes.py +6 -0
- tencentcloud/scf/v20180416/models.py +263 -0
- tencentcloud/scf/v20180416/scf_client_async.py +984 -0
- tencentcloud/securitylake/v20240117/securitylake_client_async.py +44 -0
- tencentcloud/ses/v20201002/ses_client_async.py +657 -0
- tencentcloud/smh/v20210712/smh_client_async.py +296 -0
- tencentcloud/smop/v20201203/smop_client_async.py +46 -0
- tencentcloud/sms/v20190711/sms_client_async.py +326 -0
- tencentcloud/sms/v20210111/sms_client_async.py +365 -0
- tencentcloud/soe/v20180724/soe_client_async.py +98 -0
- tencentcloud/sqlserver/v20180328/sqlserver_client_async.py +2693 -0
- tencentcloud/ssa/v20180608/ssa_client_async.py +440 -0
- tencentcloud/ssl/v20191205/ssl_client_async.py +1257 -0
- tencentcloud/sslpod/v20190605/sslpod_client_async.py +206 -0
- tencentcloud/ssm/v20190923/ssm_client_async.py +468 -0
- tencentcloud/sts/v20180813/sts_client_async.py +205 -0
- tencentcloud/svp/v20240125/svp_client_async.py +116 -0
- tencentcloud/taf/v20200210/taf_client_async.py +44 -0
- tencentcloud/tag/v20180813/tag_client_async.py +584 -0
- tencentcloud/tat/v20201028/tat_client_async.py +565 -0
- tencentcloud/tbaas/v20180416/tbaas_client_async.py +458 -0
- tencentcloud/tbp/v20190311/tbp_client_async.py +98 -0
- tencentcloud/tbp/v20190627/tbp_client_async.py +62 -0
- tencentcloud/tcaplusdb/v20190823/tcaplusdb_client_async.py +986 -0
- tencentcloud/tcb/v20180608/tcb_client_async.py +1632 -0
- tencentcloud/tcbr/v20220217/models.py +15 -0
- tencentcloud/tcbr/v20220217/tcbr_client_async.py +206 -0
- tencentcloud/tccatalog/v20241024/tccatalog_client_async.py +98 -0
- tencentcloud/tchd/v20230306/tchd_client_async.py +65 -0
- tencentcloud/tcm/v20210413/tcm_client_async.py +242 -0
- tencentcloud/tcr/v20190924/tcr_client_async.py +2008 -0
- tencentcloud/tcss/v20201101/tcss_client_async.py +6169 -0
- tencentcloud/tdai/v20250717/models.py +55 -10
- tencentcloud/tdai/v20250717/tdai_client.py +1 -1
- tencentcloud/tdai/v20250717/tdai_client_async.py +350 -0
- tencentcloud/tdcpg/v20211118/tdcpg_client_async.py +482 -0
- tencentcloud/tdid/v20210519/tdid_client_async.py +353 -0
- tencentcloud/tdmq/v20200217/errorcodes.py +3 -0
- tencentcloud/tdmq/v20200217/models.py +636 -904
- tencentcloud/tdmq/v20200217/tdmq_client.py +44 -73
- tencentcloud/tdmq/v20200217/tdmq_client_async.py +2732 -0
- tencentcloud/tds/v20220801/tds_client_async.py +116 -0
- tencentcloud/tem/v20201221/tem_client_async.py +332 -0
- tencentcloud/tem/v20210701/tem_client_async.py +949 -0
- tencentcloud/teo/v20220106/teo_client_async.py +120 -0
- tencentcloud/teo/v20220901/models.py +267 -4
- tencentcloud/teo/v20220901/teo_client_async.py +3609 -0
- tencentcloud/thpc/v20211109/thpc_client_async.py +98 -0
- tencentcloud/thpc/v20220401/thpc_client_async.py +321 -0
- tencentcloud/thpc/v20230321/models.py +30 -0
- tencentcloud/thpc/v20230321/thpc_client_async.py +591 -0
- tencentcloud/tia/v20180226/tia_client_async.py +206 -0
- tencentcloud/tiia/v20190529/tiia_client_async.py +536 -0
- tencentcloud/tione/v20191022/tione_client_async.py +422 -0
- tencentcloud/tione/v20211111/tione_client_async.py +1003 -0
- tencentcloud/tiw/v20190919/tiw_client_async.py +656 -0
- tencentcloud/tke/v20180525/errorcodes.py +3 -0
- tencentcloud/tke/v20180525/models.py +3129 -288
- tencentcloud/tke/v20180525/tke_client.py +414 -0
- tencentcloud/tke/v20180525/tke_client_async.py +4562 -0
- tencentcloud/tke/v20220501/tke_client_async.py +343 -0
- tencentcloud/tkgdq/v20190411/tkgdq_client_async.py +80 -0
- tencentcloud/tms/v20200713/tms_client_async.py +98 -0
- tencentcloud/tms/v20201229/tms_client_async.py +97 -0
- tencentcloud/tmt/v20180321/tmt_client_async.py +183 -0
- tencentcloud/tourism/v20230215/tourism_client_async.py +44 -0
- tencentcloud/trabbit/v20230418/trabbit_client_async.py +548 -0
- tencentcloud/trocket/v20230308/trocket_client_async.py +1390 -0
- tencentcloud/trp/v20210515/trp_client_async.py +1002 -0
- tencentcloud/trro/v20220325/trro_client_async.py +588 -0
- tencentcloud/trtc/v20190722/errorcodes.py +3 -0
- tencentcloud/trtc/v20190722/models.py +21 -6
- tencentcloud/trtc/v20190722/trtc_client.py +1 -0
- tencentcloud/trtc/v20190722/trtc_client_async.py +1516 -0
- tencentcloud/tse/v20201207/tse_client_async.py +2240 -0
- tencentcloud/tsf/v20180326/models.py +4 -4
- tencentcloud/tsf/v20180326/tsf_client_async.py +4143 -0
- tencentcloud/tsi/v20210325/tsi_client_async.py +104 -0
- tencentcloud/tsw/v20200924/tsw_client_async.py +44 -0
- tencentcloud/tsw/v20210412/tsw_client_async.py +80 -0
- tencentcloud/tts/v20190823/tts_client_async.py +107 -0
- tencentcloud/vcg/v20240404/vcg_client_async.py +62 -0
- tencentcloud/vclm/v20240523/errorcodes.py +27 -0
- tencentcloud/vclm/v20240523/models.py +415 -16
- tencentcloud/vclm/v20240523/vclm_client.py +47 -0
- tencentcloud/vclm/v20240523/vclm_client_async.py +263 -0
- tencentcloud/vcube/v20220410/models.py +98 -0
- tencentcloud/vcube/v20220410/vcube_client.py +46 -0
- tencentcloud/vcube/v20220410/vcube_client_async.py +674 -0
- tencentcloud/vdb/v20230616/vdb_client_async.py +278 -0
- tencentcloud/vm/v20200709/vm_client_async.py +120 -0
- tencentcloud/vm/v20201229/vm_client_async.py +139 -0
- tencentcloud/vm/v20210922/models.py +2 -2
- tencentcloud/vm/v20210922/vm_client_async.py +148 -0
- tencentcloud/vms/v20200902/vms_client_async.py +62 -0
- tencentcloud/vod/v20180717/models.py +6 -2
- tencentcloud/vod/v20180717/vod_client_async.py +3712 -0
- tencentcloud/vod/v20240718/vod_client_async.py +160 -0
- tencentcloud/vpc/v20170312/vpc_client_async.py +8139 -0
- tencentcloud/vrs/v20200824/vrs_client_async.py +182 -0
- tencentcloud/vtc/v20240223/vtc_client_async.py +132 -0
- tencentcloud/waf/v20180125/models.py +3924 -0
- tencentcloud/waf/v20180125/waf_client.py +230 -0
- tencentcloud/waf/v20180125/waf_client_async.py +3542 -0
- tencentcloud/wav/v20210129/wav_client_async.py +494 -0
- tencentcloud/wedata/v20210820/wedata_client_async.py +5384 -0
- tencentcloud/wedata/v20250806/wedata_client_async.py +2168 -0
- tencentcloud/weilingwith/v20230427/weilingwith_client_async.py +1180 -0
- tencentcloud/wsa/v20250508/wsa_client_async.py +44 -0
- tencentcloud/wss/v20180426/wss_client_async.py +80 -0
- tencentcloud/yinsuda/v20220527/yinsuda_client_async.py +386 -0
- tencentcloud/yunjing/v20180228/yunjing_client_async.py +1826 -0
- tencentcloud/yunsou/v20180504/yunsou_client_async.py +62 -0
- tencentcloud/yunsou/v20191115/yunsou_client_async.py +62 -0
- {tencentcloud_sdk_python-3.0.1491.dist-info → tencentcloud_sdk_python-3.1.6.dist-info}/METADATA +3 -1
- {tencentcloud_sdk_python-3.0.1491.dist-info → tencentcloud_sdk_python-3.1.6.dist-info}/RECORD +391 -103
- {tencentcloud_sdk_python-3.0.1491.dist-info → tencentcloud_sdk_python-3.1.6.dist-info}/LICENSE +0 -0
- {tencentcloud_sdk_python-3.0.1491.dist-info → tencentcloud_sdk_python-3.1.6.dist-info}/WHEEL +0 -0
- {tencentcloud_sdk_python-3.0.1491.dist-info → tencentcloud_sdk_python-3.1.6.dist-info}/top_level.txt +0 -0
|
@@ -1381,6 +1381,40 @@ class AddAttackWhiteRuleResponse(AbstractModel):
|
|
|
1381
1381
|
self._RequestId = params.get("RequestId")
|
|
1382
1382
|
|
|
1383
1383
|
|
|
1384
|
+
class AddBypassAllRuleRequest(AbstractModel):
|
|
1385
|
+
r"""AddBypassAllRule请求参数结构体
|
|
1386
|
+
|
|
1387
|
+
"""
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
class AddBypassAllRuleResponse(AbstractModel):
|
|
1391
|
+
r"""AddBypassAllRule返回参数结构体
|
|
1392
|
+
|
|
1393
|
+
"""
|
|
1394
|
+
|
|
1395
|
+
def __init__(self):
|
|
1396
|
+
r"""
|
|
1397
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
1398
|
+
:type RequestId: str
|
|
1399
|
+
"""
|
|
1400
|
+
self._RequestId = None
|
|
1401
|
+
|
|
1402
|
+
@property
|
|
1403
|
+
def RequestId(self):
|
|
1404
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
1405
|
+
:rtype: str
|
|
1406
|
+
"""
|
|
1407
|
+
return self._RequestId
|
|
1408
|
+
|
|
1409
|
+
@RequestId.setter
|
|
1410
|
+
def RequestId(self, RequestId):
|
|
1411
|
+
self._RequestId = RequestId
|
|
1412
|
+
|
|
1413
|
+
|
|
1414
|
+
def _deserialize(self, params):
|
|
1415
|
+
self._RequestId = params.get("RequestId")
|
|
1416
|
+
|
|
1417
|
+
|
|
1384
1418
|
class AddCustomRuleRequest(AbstractModel):
|
|
1385
1419
|
r"""AddCustomRule请求参数结构体
|
|
1386
1420
|
|
|
@@ -3458,6 +3492,158 @@ class ApiDetailSampleHistory(AbstractModel):
|
|
|
3458
3492
|
|
|
3459
3493
|
|
|
3460
3494
|
|
|
3495
|
+
class ApiNameMethod(AbstractModel):
|
|
3496
|
+
r"""带有请求方式的apiname结构体
|
|
3497
|
+
|
|
3498
|
+
"""
|
|
3499
|
+
|
|
3500
|
+
def __init__(self):
|
|
3501
|
+
r"""
|
|
3502
|
+
:param _ApiName: api名称
|
|
3503
|
+
:type ApiName: str
|
|
3504
|
+
:param _Method: api请求方式
|
|
3505
|
+
:type Method: str
|
|
3506
|
+
:param _Count: api近30天请求数量
|
|
3507
|
+
:type Count: int
|
|
3508
|
+
:param _Label: api标签
|
|
3509
|
+
:type Label: list of str
|
|
3510
|
+
"""
|
|
3511
|
+
self._ApiName = None
|
|
3512
|
+
self._Method = None
|
|
3513
|
+
self._Count = None
|
|
3514
|
+
self._Label = None
|
|
3515
|
+
|
|
3516
|
+
@property
|
|
3517
|
+
def ApiName(self):
|
|
3518
|
+
r"""api名称
|
|
3519
|
+
:rtype: str
|
|
3520
|
+
"""
|
|
3521
|
+
return self._ApiName
|
|
3522
|
+
|
|
3523
|
+
@ApiName.setter
|
|
3524
|
+
def ApiName(self, ApiName):
|
|
3525
|
+
self._ApiName = ApiName
|
|
3526
|
+
|
|
3527
|
+
@property
|
|
3528
|
+
def Method(self):
|
|
3529
|
+
r"""api请求方式
|
|
3530
|
+
:rtype: str
|
|
3531
|
+
"""
|
|
3532
|
+
return self._Method
|
|
3533
|
+
|
|
3534
|
+
@Method.setter
|
|
3535
|
+
def Method(self, Method):
|
|
3536
|
+
self._Method = Method
|
|
3537
|
+
|
|
3538
|
+
@property
|
|
3539
|
+
def Count(self):
|
|
3540
|
+
r"""api近30天请求数量
|
|
3541
|
+
:rtype: int
|
|
3542
|
+
"""
|
|
3543
|
+
return self._Count
|
|
3544
|
+
|
|
3545
|
+
@Count.setter
|
|
3546
|
+
def Count(self, Count):
|
|
3547
|
+
self._Count = Count
|
|
3548
|
+
|
|
3549
|
+
@property
|
|
3550
|
+
def Label(self):
|
|
3551
|
+
r"""api标签
|
|
3552
|
+
:rtype: list of str
|
|
3553
|
+
"""
|
|
3554
|
+
return self._Label
|
|
3555
|
+
|
|
3556
|
+
@Label.setter
|
|
3557
|
+
def Label(self, Label):
|
|
3558
|
+
self._Label = Label
|
|
3559
|
+
|
|
3560
|
+
|
|
3561
|
+
def _deserialize(self, params):
|
|
3562
|
+
self._ApiName = params.get("ApiName")
|
|
3563
|
+
self._Method = params.get("Method")
|
|
3564
|
+
self._Count = params.get("Count")
|
|
3565
|
+
self._Label = params.get("Label")
|
|
3566
|
+
memeber_set = set(params.keys())
|
|
3567
|
+
for name, value in vars(self).items():
|
|
3568
|
+
property_name = name[1:]
|
|
3569
|
+
if property_name in memeber_set:
|
|
3570
|
+
memeber_set.remove(property_name)
|
|
3571
|
+
if len(memeber_set) > 0:
|
|
3572
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
3573
|
+
|
|
3574
|
+
|
|
3575
|
+
|
|
3576
|
+
class ApiNameOp(AbstractModel):
|
|
3577
|
+
r"""带有匹配方式的apiname列表
|
|
3578
|
+
|
|
3579
|
+
"""
|
|
3580
|
+
|
|
3581
|
+
def __init__(self):
|
|
3582
|
+
r"""
|
|
3583
|
+
:param _Value: 匹配值列表
|
|
3584
|
+
:type Value: list of str
|
|
3585
|
+
:param _Op: 匹配方式,如属于和正则等
|
|
3586
|
+
:type Op: str
|
|
3587
|
+
:param _ApiNameMethod: 手动筛选的时候,要传该结构体
|
|
3588
|
+
:type ApiNameMethod: list of ApiNameMethod
|
|
3589
|
+
"""
|
|
3590
|
+
self._Value = None
|
|
3591
|
+
self._Op = None
|
|
3592
|
+
self._ApiNameMethod = None
|
|
3593
|
+
|
|
3594
|
+
@property
|
|
3595
|
+
def Value(self):
|
|
3596
|
+
r"""匹配值列表
|
|
3597
|
+
:rtype: list of str
|
|
3598
|
+
"""
|
|
3599
|
+
return self._Value
|
|
3600
|
+
|
|
3601
|
+
@Value.setter
|
|
3602
|
+
def Value(self, Value):
|
|
3603
|
+
self._Value = Value
|
|
3604
|
+
|
|
3605
|
+
@property
|
|
3606
|
+
def Op(self):
|
|
3607
|
+
r"""匹配方式,如属于和正则等
|
|
3608
|
+
:rtype: str
|
|
3609
|
+
"""
|
|
3610
|
+
return self._Op
|
|
3611
|
+
|
|
3612
|
+
@Op.setter
|
|
3613
|
+
def Op(self, Op):
|
|
3614
|
+
self._Op = Op
|
|
3615
|
+
|
|
3616
|
+
@property
|
|
3617
|
+
def ApiNameMethod(self):
|
|
3618
|
+
r"""手动筛选的时候,要传该结构体
|
|
3619
|
+
:rtype: list of ApiNameMethod
|
|
3620
|
+
"""
|
|
3621
|
+
return self._ApiNameMethod
|
|
3622
|
+
|
|
3623
|
+
@ApiNameMethod.setter
|
|
3624
|
+
def ApiNameMethod(self, ApiNameMethod):
|
|
3625
|
+
self._ApiNameMethod = ApiNameMethod
|
|
3626
|
+
|
|
3627
|
+
|
|
3628
|
+
def _deserialize(self, params):
|
|
3629
|
+
self._Value = params.get("Value")
|
|
3630
|
+
self._Op = params.get("Op")
|
|
3631
|
+
if params.get("ApiNameMethod") is not None:
|
|
3632
|
+
self._ApiNameMethod = []
|
|
3633
|
+
for item in params.get("ApiNameMethod"):
|
|
3634
|
+
obj = ApiNameMethod()
|
|
3635
|
+
obj._deserialize(item)
|
|
3636
|
+
self._ApiNameMethod.append(obj)
|
|
3637
|
+
memeber_set = set(params.keys())
|
|
3638
|
+
for name, value in vars(self).items():
|
|
3639
|
+
property_name = name[1:]
|
|
3640
|
+
if property_name in memeber_set:
|
|
3641
|
+
memeber_set.remove(property_name)
|
|
3642
|
+
if len(memeber_set) > 0:
|
|
3643
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
3644
|
+
|
|
3645
|
+
|
|
3646
|
+
|
|
3461
3647
|
class ApiParameterType(AbstractModel):
|
|
3462
3648
|
r"""api请求参数类型
|
|
3463
3649
|
|
|
@@ -3785,6 +3971,414 @@ class ApiPkg(AbstractModel):
|
|
|
3785
3971
|
|
|
3786
3972
|
|
|
3787
3973
|
|
|
3974
|
+
class ApiSecCustomEventRule(AbstractModel):
|
|
3975
|
+
r"""api安全自定义事件规则结构体
|
|
3976
|
+
|
|
3977
|
+
"""
|
|
3978
|
+
|
|
3979
|
+
def __init__(self):
|
|
3980
|
+
r"""
|
|
3981
|
+
:param _RuleName: 规则名称
|
|
3982
|
+
:type RuleName: str
|
|
3983
|
+
:param _Status: 开关,1:开,0:关
|
|
3984
|
+
:type Status: int
|
|
3985
|
+
:param _ApiNameOp: api匹配列表
|
|
3986
|
+
:type ApiNameOp: list of ApiNameOp
|
|
3987
|
+
:param _Description: 事件详情
|
|
3988
|
+
:type Description: str
|
|
3989
|
+
:param _UpdateTime: 时间戳,出参有该值,入参不需要传没有
|
|
3990
|
+
:type UpdateTime: int
|
|
3991
|
+
:param _MatchRuleList: 匹配规则列表
|
|
3992
|
+
:type MatchRuleList: list of ApiSecSceneRuleEntry
|
|
3993
|
+
:param _StatRuleList: 统计规则列表
|
|
3994
|
+
:type StatRuleList: list of ApiSecSceneRuleEntry
|
|
3995
|
+
:param _ReqFrequency: 访问频次,第一个字段表示次数,第二个字段表示分钟
|
|
3996
|
+
:type ReqFrequency: list of int
|
|
3997
|
+
:param _RiskLevel: 风险等级,取值为100,200,300,分别表示低位、中危、高危
|
|
3998
|
+
:type RiskLevel: str
|
|
3999
|
+
:param _Source: 规则来源
|
|
4000
|
+
:type Source: str
|
|
4001
|
+
"""
|
|
4002
|
+
self._RuleName = None
|
|
4003
|
+
self._Status = None
|
|
4004
|
+
self._ApiNameOp = None
|
|
4005
|
+
self._Description = None
|
|
4006
|
+
self._UpdateTime = None
|
|
4007
|
+
self._MatchRuleList = None
|
|
4008
|
+
self._StatRuleList = None
|
|
4009
|
+
self._ReqFrequency = None
|
|
4010
|
+
self._RiskLevel = None
|
|
4011
|
+
self._Source = None
|
|
4012
|
+
|
|
4013
|
+
@property
|
|
4014
|
+
def RuleName(self):
|
|
4015
|
+
r"""规则名称
|
|
4016
|
+
:rtype: str
|
|
4017
|
+
"""
|
|
4018
|
+
return self._RuleName
|
|
4019
|
+
|
|
4020
|
+
@RuleName.setter
|
|
4021
|
+
def RuleName(self, RuleName):
|
|
4022
|
+
self._RuleName = RuleName
|
|
4023
|
+
|
|
4024
|
+
@property
|
|
4025
|
+
def Status(self):
|
|
4026
|
+
r"""开关,1:开,0:关
|
|
4027
|
+
:rtype: int
|
|
4028
|
+
"""
|
|
4029
|
+
return self._Status
|
|
4030
|
+
|
|
4031
|
+
@Status.setter
|
|
4032
|
+
def Status(self, Status):
|
|
4033
|
+
self._Status = Status
|
|
4034
|
+
|
|
4035
|
+
@property
|
|
4036
|
+
def ApiNameOp(self):
|
|
4037
|
+
r"""api匹配列表
|
|
4038
|
+
:rtype: list of ApiNameOp
|
|
4039
|
+
"""
|
|
4040
|
+
return self._ApiNameOp
|
|
4041
|
+
|
|
4042
|
+
@ApiNameOp.setter
|
|
4043
|
+
def ApiNameOp(self, ApiNameOp):
|
|
4044
|
+
self._ApiNameOp = ApiNameOp
|
|
4045
|
+
|
|
4046
|
+
@property
|
|
4047
|
+
def Description(self):
|
|
4048
|
+
r"""事件详情
|
|
4049
|
+
:rtype: str
|
|
4050
|
+
"""
|
|
4051
|
+
return self._Description
|
|
4052
|
+
|
|
4053
|
+
@Description.setter
|
|
4054
|
+
def Description(self, Description):
|
|
4055
|
+
self._Description = Description
|
|
4056
|
+
|
|
4057
|
+
@property
|
|
4058
|
+
def UpdateTime(self):
|
|
4059
|
+
r"""时间戳,出参有该值,入参不需要传没有
|
|
4060
|
+
:rtype: int
|
|
4061
|
+
"""
|
|
4062
|
+
return self._UpdateTime
|
|
4063
|
+
|
|
4064
|
+
@UpdateTime.setter
|
|
4065
|
+
def UpdateTime(self, UpdateTime):
|
|
4066
|
+
self._UpdateTime = UpdateTime
|
|
4067
|
+
|
|
4068
|
+
@property
|
|
4069
|
+
def MatchRuleList(self):
|
|
4070
|
+
r"""匹配规则列表
|
|
4071
|
+
:rtype: list of ApiSecSceneRuleEntry
|
|
4072
|
+
"""
|
|
4073
|
+
return self._MatchRuleList
|
|
4074
|
+
|
|
4075
|
+
@MatchRuleList.setter
|
|
4076
|
+
def MatchRuleList(self, MatchRuleList):
|
|
4077
|
+
self._MatchRuleList = MatchRuleList
|
|
4078
|
+
|
|
4079
|
+
@property
|
|
4080
|
+
def StatRuleList(self):
|
|
4081
|
+
r"""统计规则列表
|
|
4082
|
+
:rtype: list of ApiSecSceneRuleEntry
|
|
4083
|
+
"""
|
|
4084
|
+
return self._StatRuleList
|
|
4085
|
+
|
|
4086
|
+
@StatRuleList.setter
|
|
4087
|
+
def StatRuleList(self, StatRuleList):
|
|
4088
|
+
self._StatRuleList = StatRuleList
|
|
4089
|
+
|
|
4090
|
+
@property
|
|
4091
|
+
def ReqFrequency(self):
|
|
4092
|
+
r"""访问频次,第一个字段表示次数,第二个字段表示分钟
|
|
4093
|
+
:rtype: list of int
|
|
4094
|
+
"""
|
|
4095
|
+
return self._ReqFrequency
|
|
4096
|
+
|
|
4097
|
+
@ReqFrequency.setter
|
|
4098
|
+
def ReqFrequency(self, ReqFrequency):
|
|
4099
|
+
self._ReqFrequency = ReqFrequency
|
|
4100
|
+
|
|
4101
|
+
@property
|
|
4102
|
+
def RiskLevel(self):
|
|
4103
|
+
r"""风险等级,取值为100,200,300,分别表示低位、中危、高危
|
|
4104
|
+
:rtype: str
|
|
4105
|
+
"""
|
|
4106
|
+
return self._RiskLevel
|
|
4107
|
+
|
|
4108
|
+
@RiskLevel.setter
|
|
4109
|
+
def RiskLevel(self, RiskLevel):
|
|
4110
|
+
self._RiskLevel = RiskLevel
|
|
4111
|
+
|
|
4112
|
+
@property
|
|
4113
|
+
def Source(self):
|
|
4114
|
+
r"""规则来源
|
|
4115
|
+
:rtype: str
|
|
4116
|
+
"""
|
|
4117
|
+
return self._Source
|
|
4118
|
+
|
|
4119
|
+
@Source.setter
|
|
4120
|
+
def Source(self, Source):
|
|
4121
|
+
self._Source = Source
|
|
4122
|
+
|
|
4123
|
+
|
|
4124
|
+
def _deserialize(self, params):
|
|
4125
|
+
self._RuleName = params.get("RuleName")
|
|
4126
|
+
self._Status = params.get("Status")
|
|
4127
|
+
if params.get("ApiNameOp") is not None:
|
|
4128
|
+
self._ApiNameOp = []
|
|
4129
|
+
for item in params.get("ApiNameOp"):
|
|
4130
|
+
obj = ApiNameOp()
|
|
4131
|
+
obj._deserialize(item)
|
|
4132
|
+
self._ApiNameOp.append(obj)
|
|
4133
|
+
self._Description = params.get("Description")
|
|
4134
|
+
self._UpdateTime = params.get("UpdateTime")
|
|
4135
|
+
if params.get("MatchRuleList") is not None:
|
|
4136
|
+
self._MatchRuleList = []
|
|
4137
|
+
for item in params.get("MatchRuleList"):
|
|
4138
|
+
obj = ApiSecSceneRuleEntry()
|
|
4139
|
+
obj._deserialize(item)
|
|
4140
|
+
self._MatchRuleList.append(obj)
|
|
4141
|
+
if params.get("StatRuleList") is not None:
|
|
4142
|
+
self._StatRuleList = []
|
|
4143
|
+
for item in params.get("StatRuleList"):
|
|
4144
|
+
obj = ApiSecSceneRuleEntry()
|
|
4145
|
+
obj._deserialize(item)
|
|
4146
|
+
self._StatRuleList.append(obj)
|
|
4147
|
+
self._ReqFrequency = params.get("ReqFrequency")
|
|
4148
|
+
self._RiskLevel = params.get("RiskLevel")
|
|
4149
|
+
self._Source = params.get("Source")
|
|
4150
|
+
memeber_set = set(params.keys())
|
|
4151
|
+
for name, value in vars(self).items():
|
|
4152
|
+
property_name = name[1:]
|
|
4153
|
+
if property_name in memeber_set:
|
|
4154
|
+
memeber_set.remove(property_name)
|
|
4155
|
+
if len(memeber_set) > 0:
|
|
4156
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4157
|
+
|
|
4158
|
+
|
|
4159
|
+
|
|
4160
|
+
class ApiSecCustomSensitiveRule(AbstractModel):
|
|
4161
|
+
r"""api安全客户自定义敏感检测规则
|
|
4162
|
+
|
|
4163
|
+
"""
|
|
4164
|
+
|
|
4165
|
+
def __init__(self):
|
|
4166
|
+
r"""
|
|
4167
|
+
:param _Position: 参数位置
|
|
4168
|
+
:type Position: list of str
|
|
4169
|
+
:param _MatchKey: 匹配条件
|
|
4170
|
+
:type MatchKey: str
|
|
4171
|
+
:param _MatchValue: 匹配值
|
|
4172
|
+
:type MatchValue: list of str
|
|
4173
|
+
:param _Level: 风险等级
|
|
4174
|
+
:type Level: str
|
|
4175
|
+
:param _MatchCond: 匹配符号,当匹配条件为关键字匹配和字符匹配的时候传该值,可传多个
|
|
4176
|
+
:type MatchCond: list of str
|
|
4177
|
+
:param _IsPan: 规则是否泛化,默认0表示不泛化
|
|
4178
|
+
:type IsPan: int
|
|
4179
|
+
"""
|
|
4180
|
+
self._Position = None
|
|
4181
|
+
self._MatchKey = None
|
|
4182
|
+
self._MatchValue = None
|
|
4183
|
+
self._Level = None
|
|
4184
|
+
self._MatchCond = None
|
|
4185
|
+
self._IsPan = None
|
|
4186
|
+
|
|
4187
|
+
@property
|
|
4188
|
+
def Position(self):
|
|
4189
|
+
r"""参数位置
|
|
4190
|
+
:rtype: list of str
|
|
4191
|
+
"""
|
|
4192
|
+
return self._Position
|
|
4193
|
+
|
|
4194
|
+
@Position.setter
|
|
4195
|
+
def Position(self, Position):
|
|
4196
|
+
self._Position = Position
|
|
4197
|
+
|
|
4198
|
+
@property
|
|
4199
|
+
def MatchKey(self):
|
|
4200
|
+
r"""匹配条件
|
|
4201
|
+
:rtype: str
|
|
4202
|
+
"""
|
|
4203
|
+
return self._MatchKey
|
|
4204
|
+
|
|
4205
|
+
@MatchKey.setter
|
|
4206
|
+
def MatchKey(self, MatchKey):
|
|
4207
|
+
self._MatchKey = MatchKey
|
|
4208
|
+
|
|
4209
|
+
@property
|
|
4210
|
+
def MatchValue(self):
|
|
4211
|
+
r"""匹配值
|
|
4212
|
+
:rtype: list of str
|
|
4213
|
+
"""
|
|
4214
|
+
return self._MatchValue
|
|
4215
|
+
|
|
4216
|
+
@MatchValue.setter
|
|
4217
|
+
def MatchValue(self, MatchValue):
|
|
4218
|
+
self._MatchValue = MatchValue
|
|
4219
|
+
|
|
4220
|
+
@property
|
|
4221
|
+
def Level(self):
|
|
4222
|
+
r"""风险等级
|
|
4223
|
+
:rtype: str
|
|
4224
|
+
"""
|
|
4225
|
+
return self._Level
|
|
4226
|
+
|
|
4227
|
+
@Level.setter
|
|
4228
|
+
def Level(self, Level):
|
|
4229
|
+
self._Level = Level
|
|
4230
|
+
|
|
4231
|
+
@property
|
|
4232
|
+
def MatchCond(self):
|
|
4233
|
+
r"""匹配符号,当匹配条件为关键字匹配和字符匹配的时候传该值,可传多个
|
|
4234
|
+
:rtype: list of str
|
|
4235
|
+
"""
|
|
4236
|
+
return self._MatchCond
|
|
4237
|
+
|
|
4238
|
+
@MatchCond.setter
|
|
4239
|
+
def MatchCond(self, MatchCond):
|
|
4240
|
+
self._MatchCond = MatchCond
|
|
4241
|
+
|
|
4242
|
+
@property
|
|
4243
|
+
def IsPan(self):
|
|
4244
|
+
r"""规则是否泛化,默认0表示不泛化
|
|
4245
|
+
:rtype: int
|
|
4246
|
+
"""
|
|
4247
|
+
return self._IsPan
|
|
4248
|
+
|
|
4249
|
+
@IsPan.setter
|
|
4250
|
+
def IsPan(self, IsPan):
|
|
4251
|
+
self._IsPan = IsPan
|
|
4252
|
+
|
|
4253
|
+
|
|
4254
|
+
def _deserialize(self, params):
|
|
4255
|
+
self._Position = params.get("Position")
|
|
4256
|
+
self._MatchKey = params.get("MatchKey")
|
|
4257
|
+
self._MatchValue = params.get("MatchValue")
|
|
4258
|
+
self._Level = params.get("Level")
|
|
4259
|
+
self._MatchCond = params.get("MatchCond")
|
|
4260
|
+
self._IsPan = params.get("IsPan")
|
|
4261
|
+
memeber_set = set(params.keys())
|
|
4262
|
+
for name, value in vars(self).items():
|
|
4263
|
+
property_name = name[1:]
|
|
4264
|
+
if property_name in memeber_set:
|
|
4265
|
+
memeber_set.remove(property_name)
|
|
4266
|
+
if len(memeber_set) > 0:
|
|
4267
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4268
|
+
|
|
4269
|
+
|
|
4270
|
+
|
|
4271
|
+
class ApiSecExtractRule(AbstractModel):
|
|
4272
|
+
r"""api提取规则内容
|
|
4273
|
+
|
|
4274
|
+
"""
|
|
4275
|
+
|
|
4276
|
+
def __init__(self):
|
|
4277
|
+
r"""
|
|
4278
|
+
:param _RuleName: 规则名称
|
|
4279
|
+
:type RuleName: str
|
|
4280
|
+
:param _ApiName: api名称
|
|
4281
|
+
:type ApiName: str
|
|
4282
|
+
:param _Methods: 请求方法列表
|
|
4283
|
+
:type Methods: list of str
|
|
4284
|
+
:param _Status: 开关状态,0是关,1是开
|
|
4285
|
+
:type Status: int
|
|
4286
|
+
:param _Regex: 正则匹配内容
|
|
4287
|
+
:type Regex: str
|
|
4288
|
+
:param _UpdateTime: 10更新时间戳
|
|
4289
|
+
:type UpdateTime: int
|
|
4290
|
+
"""
|
|
4291
|
+
self._RuleName = None
|
|
4292
|
+
self._ApiName = None
|
|
4293
|
+
self._Methods = None
|
|
4294
|
+
self._Status = None
|
|
4295
|
+
self._Regex = None
|
|
4296
|
+
self._UpdateTime = None
|
|
4297
|
+
|
|
4298
|
+
@property
|
|
4299
|
+
def RuleName(self):
|
|
4300
|
+
r"""规则名称
|
|
4301
|
+
:rtype: str
|
|
4302
|
+
"""
|
|
4303
|
+
return self._RuleName
|
|
4304
|
+
|
|
4305
|
+
@RuleName.setter
|
|
4306
|
+
def RuleName(self, RuleName):
|
|
4307
|
+
self._RuleName = RuleName
|
|
4308
|
+
|
|
4309
|
+
@property
|
|
4310
|
+
def ApiName(self):
|
|
4311
|
+
r"""api名称
|
|
4312
|
+
:rtype: str
|
|
4313
|
+
"""
|
|
4314
|
+
return self._ApiName
|
|
4315
|
+
|
|
4316
|
+
@ApiName.setter
|
|
4317
|
+
def ApiName(self, ApiName):
|
|
4318
|
+
self._ApiName = ApiName
|
|
4319
|
+
|
|
4320
|
+
@property
|
|
4321
|
+
def Methods(self):
|
|
4322
|
+
r"""请求方法列表
|
|
4323
|
+
:rtype: list of str
|
|
4324
|
+
"""
|
|
4325
|
+
return self._Methods
|
|
4326
|
+
|
|
4327
|
+
@Methods.setter
|
|
4328
|
+
def Methods(self, Methods):
|
|
4329
|
+
self._Methods = Methods
|
|
4330
|
+
|
|
4331
|
+
@property
|
|
4332
|
+
def Status(self):
|
|
4333
|
+
r"""开关状态,0是关,1是开
|
|
4334
|
+
:rtype: int
|
|
4335
|
+
"""
|
|
4336
|
+
return self._Status
|
|
4337
|
+
|
|
4338
|
+
@Status.setter
|
|
4339
|
+
def Status(self, Status):
|
|
4340
|
+
self._Status = Status
|
|
4341
|
+
|
|
4342
|
+
@property
|
|
4343
|
+
def Regex(self):
|
|
4344
|
+
r"""正则匹配内容
|
|
4345
|
+
:rtype: str
|
|
4346
|
+
"""
|
|
4347
|
+
return self._Regex
|
|
4348
|
+
|
|
4349
|
+
@Regex.setter
|
|
4350
|
+
def Regex(self, Regex):
|
|
4351
|
+
self._Regex = Regex
|
|
4352
|
+
|
|
4353
|
+
@property
|
|
4354
|
+
def UpdateTime(self):
|
|
4355
|
+
r"""10更新时间戳
|
|
4356
|
+
:rtype: int
|
|
4357
|
+
"""
|
|
4358
|
+
return self._UpdateTime
|
|
4359
|
+
|
|
4360
|
+
@UpdateTime.setter
|
|
4361
|
+
def UpdateTime(self, UpdateTime):
|
|
4362
|
+
self._UpdateTime = UpdateTime
|
|
4363
|
+
|
|
4364
|
+
|
|
4365
|
+
def _deserialize(self, params):
|
|
4366
|
+
self._RuleName = params.get("RuleName")
|
|
4367
|
+
self._ApiName = params.get("ApiName")
|
|
4368
|
+
self._Methods = params.get("Methods")
|
|
4369
|
+
self._Status = params.get("Status")
|
|
4370
|
+
self._Regex = params.get("Regex")
|
|
4371
|
+
self._UpdateTime = params.get("UpdateTime")
|
|
4372
|
+
memeber_set = set(params.keys())
|
|
4373
|
+
for name, value in vars(self).items():
|
|
4374
|
+
property_name = name[1:]
|
|
4375
|
+
if property_name in memeber_set:
|
|
4376
|
+
memeber_set.remove(property_name)
|
|
4377
|
+
if len(memeber_set) > 0:
|
|
4378
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4379
|
+
|
|
4380
|
+
|
|
4381
|
+
|
|
3788
4382
|
class ApiSecKey(AbstractModel):
|
|
3789
4383
|
r"""api列表
|
|
3790
4384
|
|
|
@@ -3851,6 +4445,351 @@ class ApiSecKey(AbstractModel):
|
|
|
3851
4445
|
|
|
3852
4446
|
|
|
3853
4447
|
|
|
4448
|
+
class ApiSecPrivilegeRule(AbstractModel):
|
|
4449
|
+
r"""自定义api鉴权规则
|
|
4450
|
+
|
|
4451
|
+
"""
|
|
4452
|
+
|
|
4453
|
+
def __init__(self):
|
|
4454
|
+
r"""
|
|
4455
|
+
:param _RuleName: 规则名称,不可重复
|
|
4456
|
+
:type RuleName: str
|
|
4457
|
+
:param _Status: 1:开,0:关
|
|
4458
|
+
:type Status: int
|
|
4459
|
+
:param _ApiName: 最多输入20个api
|
|
4460
|
+
:type ApiName: list of str
|
|
4461
|
+
:param _Position: 鉴权位置
|
|
4462
|
+
:type Position: str
|
|
4463
|
+
:param _ParameterList: 鉴权参数列表
|
|
4464
|
+
:type ParameterList: list of str
|
|
4465
|
+
:param _UpdateTime: 更新时间戳
|
|
4466
|
+
:type UpdateTime: int
|
|
4467
|
+
:param _Source: 规则来源
|
|
4468
|
+
:type Source: str
|
|
4469
|
+
:param _ApiNameOp: 带有匹配方式的api列表
|
|
4470
|
+
:type ApiNameOp: list of ApiNameOp
|
|
4471
|
+
:param _Option: 应用对象取值,1表示手动填写,2表示从api资产中获取
|
|
4472
|
+
:type Option: int
|
|
4473
|
+
"""
|
|
4474
|
+
self._RuleName = None
|
|
4475
|
+
self._Status = None
|
|
4476
|
+
self._ApiName = None
|
|
4477
|
+
self._Position = None
|
|
4478
|
+
self._ParameterList = None
|
|
4479
|
+
self._UpdateTime = None
|
|
4480
|
+
self._Source = None
|
|
4481
|
+
self._ApiNameOp = None
|
|
4482
|
+
self._Option = None
|
|
4483
|
+
|
|
4484
|
+
@property
|
|
4485
|
+
def RuleName(self):
|
|
4486
|
+
r"""规则名称,不可重复
|
|
4487
|
+
:rtype: str
|
|
4488
|
+
"""
|
|
4489
|
+
return self._RuleName
|
|
4490
|
+
|
|
4491
|
+
@RuleName.setter
|
|
4492
|
+
def RuleName(self, RuleName):
|
|
4493
|
+
self._RuleName = RuleName
|
|
4494
|
+
|
|
4495
|
+
@property
|
|
4496
|
+
def Status(self):
|
|
4497
|
+
r"""1:开,0:关
|
|
4498
|
+
:rtype: int
|
|
4499
|
+
"""
|
|
4500
|
+
return self._Status
|
|
4501
|
+
|
|
4502
|
+
@Status.setter
|
|
4503
|
+
def Status(self, Status):
|
|
4504
|
+
self._Status = Status
|
|
4505
|
+
|
|
4506
|
+
@property
|
|
4507
|
+
def ApiName(self):
|
|
4508
|
+
r"""最多输入20个api
|
|
4509
|
+
:rtype: list of str
|
|
4510
|
+
"""
|
|
4511
|
+
return self._ApiName
|
|
4512
|
+
|
|
4513
|
+
@ApiName.setter
|
|
4514
|
+
def ApiName(self, ApiName):
|
|
4515
|
+
self._ApiName = ApiName
|
|
4516
|
+
|
|
4517
|
+
@property
|
|
4518
|
+
def Position(self):
|
|
4519
|
+
r"""鉴权位置
|
|
4520
|
+
:rtype: str
|
|
4521
|
+
"""
|
|
4522
|
+
return self._Position
|
|
4523
|
+
|
|
4524
|
+
@Position.setter
|
|
4525
|
+
def Position(self, Position):
|
|
4526
|
+
self._Position = Position
|
|
4527
|
+
|
|
4528
|
+
@property
|
|
4529
|
+
def ParameterList(self):
|
|
4530
|
+
r"""鉴权参数列表
|
|
4531
|
+
:rtype: list of str
|
|
4532
|
+
"""
|
|
4533
|
+
return self._ParameterList
|
|
4534
|
+
|
|
4535
|
+
@ParameterList.setter
|
|
4536
|
+
def ParameterList(self, ParameterList):
|
|
4537
|
+
self._ParameterList = ParameterList
|
|
4538
|
+
|
|
4539
|
+
@property
|
|
4540
|
+
def UpdateTime(self):
|
|
4541
|
+
r"""更新时间戳
|
|
4542
|
+
:rtype: int
|
|
4543
|
+
"""
|
|
4544
|
+
return self._UpdateTime
|
|
4545
|
+
|
|
4546
|
+
@UpdateTime.setter
|
|
4547
|
+
def UpdateTime(self, UpdateTime):
|
|
4548
|
+
self._UpdateTime = UpdateTime
|
|
4549
|
+
|
|
4550
|
+
@property
|
|
4551
|
+
def Source(self):
|
|
4552
|
+
r"""规则来源
|
|
4553
|
+
:rtype: str
|
|
4554
|
+
"""
|
|
4555
|
+
return self._Source
|
|
4556
|
+
|
|
4557
|
+
@Source.setter
|
|
4558
|
+
def Source(self, Source):
|
|
4559
|
+
self._Source = Source
|
|
4560
|
+
|
|
4561
|
+
@property
|
|
4562
|
+
def ApiNameOp(self):
|
|
4563
|
+
r"""带有匹配方式的api列表
|
|
4564
|
+
:rtype: list of ApiNameOp
|
|
4565
|
+
"""
|
|
4566
|
+
return self._ApiNameOp
|
|
4567
|
+
|
|
4568
|
+
@ApiNameOp.setter
|
|
4569
|
+
def ApiNameOp(self, ApiNameOp):
|
|
4570
|
+
self._ApiNameOp = ApiNameOp
|
|
4571
|
+
|
|
4572
|
+
@property
|
|
4573
|
+
def Option(self):
|
|
4574
|
+
r"""应用对象取值,1表示手动填写,2表示从api资产中获取
|
|
4575
|
+
:rtype: int
|
|
4576
|
+
"""
|
|
4577
|
+
return self._Option
|
|
4578
|
+
|
|
4579
|
+
@Option.setter
|
|
4580
|
+
def Option(self, Option):
|
|
4581
|
+
self._Option = Option
|
|
4582
|
+
|
|
4583
|
+
|
|
4584
|
+
def _deserialize(self, params):
|
|
4585
|
+
self._RuleName = params.get("RuleName")
|
|
4586
|
+
self._Status = params.get("Status")
|
|
4587
|
+
self._ApiName = params.get("ApiName")
|
|
4588
|
+
self._Position = params.get("Position")
|
|
4589
|
+
self._ParameterList = params.get("ParameterList")
|
|
4590
|
+
self._UpdateTime = params.get("UpdateTime")
|
|
4591
|
+
self._Source = params.get("Source")
|
|
4592
|
+
if params.get("ApiNameOp") is not None:
|
|
4593
|
+
self._ApiNameOp = []
|
|
4594
|
+
for item in params.get("ApiNameOp"):
|
|
4595
|
+
obj = ApiNameOp()
|
|
4596
|
+
obj._deserialize(item)
|
|
4597
|
+
self._ApiNameOp.append(obj)
|
|
4598
|
+
self._Option = params.get("Option")
|
|
4599
|
+
memeber_set = set(params.keys())
|
|
4600
|
+
for name, value in vars(self).items():
|
|
4601
|
+
property_name = name[1:]
|
|
4602
|
+
if property_name in memeber_set:
|
|
4603
|
+
memeber_set.remove(property_name)
|
|
4604
|
+
if len(memeber_set) > 0:
|
|
4605
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4606
|
+
|
|
4607
|
+
|
|
4608
|
+
|
|
4609
|
+
class ApiSecSceneRule(AbstractModel):
|
|
4610
|
+
r"""api安全自定义场景规则
|
|
4611
|
+
|
|
4612
|
+
"""
|
|
4613
|
+
|
|
4614
|
+
def __init__(self):
|
|
4615
|
+
r"""
|
|
4616
|
+
:param _RuleName: 场景名称
|
|
4617
|
+
:type RuleName: str
|
|
4618
|
+
:param _Status: 开关状态,1表示开,0表示关
|
|
4619
|
+
:type Status: int
|
|
4620
|
+
:param _UpdateTime: 更新时间,10位时间戳
|
|
4621
|
+
:type UpdateTime: int
|
|
4622
|
+
:param _RuleList: 规则列表
|
|
4623
|
+
:type RuleList: list of ApiSecSceneRuleEntry
|
|
4624
|
+
:param _Source: 规则来源,系统内置:OS
|
|
4625
|
+
客户自定义:custom
|
|
4626
|
+
:type Source: str
|
|
4627
|
+
"""
|
|
4628
|
+
self._RuleName = None
|
|
4629
|
+
self._Status = None
|
|
4630
|
+
self._UpdateTime = None
|
|
4631
|
+
self._RuleList = None
|
|
4632
|
+
self._Source = None
|
|
4633
|
+
|
|
4634
|
+
@property
|
|
4635
|
+
def RuleName(self):
|
|
4636
|
+
r"""场景名称
|
|
4637
|
+
:rtype: str
|
|
4638
|
+
"""
|
|
4639
|
+
return self._RuleName
|
|
4640
|
+
|
|
4641
|
+
@RuleName.setter
|
|
4642
|
+
def RuleName(self, RuleName):
|
|
4643
|
+
self._RuleName = RuleName
|
|
4644
|
+
|
|
4645
|
+
@property
|
|
4646
|
+
def Status(self):
|
|
4647
|
+
r"""开关状态,1表示开,0表示关
|
|
4648
|
+
:rtype: int
|
|
4649
|
+
"""
|
|
4650
|
+
return self._Status
|
|
4651
|
+
|
|
4652
|
+
@Status.setter
|
|
4653
|
+
def Status(self, Status):
|
|
4654
|
+
self._Status = Status
|
|
4655
|
+
|
|
4656
|
+
@property
|
|
4657
|
+
def UpdateTime(self):
|
|
4658
|
+
r"""更新时间,10位时间戳
|
|
4659
|
+
:rtype: int
|
|
4660
|
+
"""
|
|
4661
|
+
return self._UpdateTime
|
|
4662
|
+
|
|
4663
|
+
@UpdateTime.setter
|
|
4664
|
+
def UpdateTime(self, UpdateTime):
|
|
4665
|
+
self._UpdateTime = UpdateTime
|
|
4666
|
+
|
|
4667
|
+
@property
|
|
4668
|
+
def RuleList(self):
|
|
4669
|
+
r"""规则列表
|
|
4670
|
+
:rtype: list of ApiSecSceneRuleEntry
|
|
4671
|
+
"""
|
|
4672
|
+
return self._RuleList
|
|
4673
|
+
|
|
4674
|
+
@RuleList.setter
|
|
4675
|
+
def RuleList(self, RuleList):
|
|
4676
|
+
self._RuleList = RuleList
|
|
4677
|
+
|
|
4678
|
+
@property
|
|
4679
|
+
def Source(self):
|
|
4680
|
+
r"""规则来源,系统内置:OS
|
|
4681
|
+
客户自定义:custom
|
|
4682
|
+
:rtype: str
|
|
4683
|
+
"""
|
|
4684
|
+
return self._Source
|
|
4685
|
+
|
|
4686
|
+
@Source.setter
|
|
4687
|
+
def Source(self, Source):
|
|
4688
|
+
self._Source = Source
|
|
4689
|
+
|
|
4690
|
+
|
|
4691
|
+
def _deserialize(self, params):
|
|
4692
|
+
self._RuleName = params.get("RuleName")
|
|
4693
|
+
self._Status = params.get("Status")
|
|
4694
|
+
self._UpdateTime = params.get("UpdateTime")
|
|
4695
|
+
if params.get("RuleList") is not None:
|
|
4696
|
+
self._RuleList = []
|
|
4697
|
+
for item in params.get("RuleList"):
|
|
4698
|
+
obj = ApiSecSceneRuleEntry()
|
|
4699
|
+
obj._deserialize(item)
|
|
4700
|
+
self._RuleList.append(obj)
|
|
4701
|
+
self._Source = params.get("Source")
|
|
4702
|
+
memeber_set = set(params.keys())
|
|
4703
|
+
for name, value in vars(self).items():
|
|
4704
|
+
property_name = name[1:]
|
|
4705
|
+
if property_name in memeber_set:
|
|
4706
|
+
memeber_set.remove(property_name)
|
|
4707
|
+
if len(memeber_set) > 0:
|
|
4708
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4709
|
+
|
|
4710
|
+
|
|
4711
|
+
|
|
4712
|
+
class ApiSecSceneRuleEntry(AbstractModel):
|
|
4713
|
+
r"""api安全用户自定义场景规则结构体
|
|
4714
|
+
|
|
4715
|
+
"""
|
|
4716
|
+
|
|
4717
|
+
def __init__(self):
|
|
4718
|
+
r"""
|
|
4719
|
+
:param _Key: 匹配字段
|
|
4720
|
+
:type Key: str
|
|
4721
|
+
:param _Value: 匹配值
|
|
4722
|
+
:type Value: list of str
|
|
4723
|
+
:param _Operate: 操作符
|
|
4724
|
+
:type Operate: str
|
|
4725
|
+
:param _Name: 当匹配字段是get参数值,post参数值,cookie参数值,header参数值,rsp参数值的时候,可填充此字段
|
|
4726
|
+
:type Name: str
|
|
4727
|
+
"""
|
|
4728
|
+
self._Key = None
|
|
4729
|
+
self._Value = None
|
|
4730
|
+
self._Operate = None
|
|
4731
|
+
self._Name = None
|
|
4732
|
+
|
|
4733
|
+
@property
|
|
4734
|
+
def Key(self):
|
|
4735
|
+
r"""匹配字段
|
|
4736
|
+
:rtype: str
|
|
4737
|
+
"""
|
|
4738
|
+
return self._Key
|
|
4739
|
+
|
|
4740
|
+
@Key.setter
|
|
4741
|
+
def Key(self, Key):
|
|
4742
|
+
self._Key = Key
|
|
4743
|
+
|
|
4744
|
+
@property
|
|
4745
|
+
def Value(self):
|
|
4746
|
+
r"""匹配值
|
|
4747
|
+
:rtype: list of str
|
|
4748
|
+
"""
|
|
4749
|
+
return self._Value
|
|
4750
|
+
|
|
4751
|
+
@Value.setter
|
|
4752
|
+
def Value(self, Value):
|
|
4753
|
+
self._Value = Value
|
|
4754
|
+
|
|
4755
|
+
@property
|
|
4756
|
+
def Operate(self):
|
|
4757
|
+
r"""操作符
|
|
4758
|
+
:rtype: str
|
|
4759
|
+
"""
|
|
4760
|
+
return self._Operate
|
|
4761
|
+
|
|
4762
|
+
@Operate.setter
|
|
4763
|
+
def Operate(self, Operate):
|
|
4764
|
+
self._Operate = Operate
|
|
4765
|
+
|
|
4766
|
+
@property
|
|
4767
|
+
def Name(self):
|
|
4768
|
+
r"""当匹配字段是get参数值,post参数值,cookie参数值,header参数值,rsp参数值的时候,可填充此字段
|
|
4769
|
+
:rtype: str
|
|
4770
|
+
"""
|
|
4771
|
+
return self._Name
|
|
4772
|
+
|
|
4773
|
+
@Name.setter
|
|
4774
|
+
def Name(self, Name):
|
|
4775
|
+
self._Name = Name
|
|
4776
|
+
|
|
4777
|
+
|
|
4778
|
+
def _deserialize(self, params):
|
|
4779
|
+
self._Key = params.get("Key")
|
|
4780
|
+
self._Value = params.get("Value")
|
|
4781
|
+
self._Operate = params.get("Operate")
|
|
4782
|
+
self._Name = params.get("Name")
|
|
4783
|
+
memeber_set = set(params.keys())
|
|
4784
|
+
for name, value in vars(self).items():
|
|
4785
|
+
property_name = name[1:]
|
|
4786
|
+
if property_name in memeber_set:
|
|
4787
|
+
memeber_set.remove(property_name)
|
|
4788
|
+
if len(memeber_set) > 0:
|
|
4789
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4790
|
+
|
|
4791
|
+
|
|
4792
|
+
|
|
3854
4793
|
class Area(AbstractModel):
|
|
3855
4794
|
r"""地域信息
|
|
3856
4795
|
|
|
@@ -4877,6 +5816,102 @@ class BotActionScopeRuleEntry(AbstractModel):
|
|
|
4877
5816
|
|
|
4878
5817
|
|
|
4879
5818
|
|
|
5819
|
+
class BotIdConfig(AbstractModel):
|
|
5820
|
+
r"""BOT-ID规则信息
|
|
5821
|
+
|
|
5822
|
+
"""
|
|
5823
|
+
|
|
5824
|
+
def __init__(self):
|
|
5825
|
+
r"""
|
|
5826
|
+
:param _RuleId: 规则ID
|
|
5827
|
+
:type RuleId: str
|
|
5828
|
+
:param _Status: 规则开关
|
|
5829
|
+
:type Status: bool
|
|
5830
|
+
:param _Action: 动作配置
|
|
5831
|
+
:type Action: str
|
|
5832
|
+
:param _BotId: 规则名称
|
|
5833
|
+
:type BotId: str
|
|
5834
|
+
:param _Redirect: 重定向路径
|
|
5835
|
+
:type Redirect: str
|
|
5836
|
+
"""
|
|
5837
|
+
self._RuleId = None
|
|
5838
|
+
self._Status = None
|
|
5839
|
+
self._Action = None
|
|
5840
|
+
self._BotId = None
|
|
5841
|
+
self._Redirect = None
|
|
5842
|
+
|
|
5843
|
+
@property
|
|
5844
|
+
def RuleId(self):
|
|
5845
|
+
r"""规则ID
|
|
5846
|
+
:rtype: str
|
|
5847
|
+
"""
|
|
5848
|
+
return self._RuleId
|
|
5849
|
+
|
|
5850
|
+
@RuleId.setter
|
|
5851
|
+
def RuleId(self, RuleId):
|
|
5852
|
+
self._RuleId = RuleId
|
|
5853
|
+
|
|
5854
|
+
@property
|
|
5855
|
+
def Status(self):
|
|
5856
|
+
r"""规则开关
|
|
5857
|
+
:rtype: bool
|
|
5858
|
+
"""
|
|
5859
|
+
return self._Status
|
|
5860
|
+
|
|
5861
|
+
@Status.setter
|
|
5862
|
+
def Status(self, Status):
|
|
5863
|
+
self._Status = Status
|
|
5864
|
+
|
|
5865
|
+
@property
|
|
5866
|
+
def Action(self):
|
|
5867
|
+
r"""动作配置
|
|
5868
|
+
:rtype: str
|
|
5869
|
+
"""
|
|
5870
|
+
return self._Action
|
|
5871
|
+
|
|
5872
|
+
@Action.setter
|
|
5873
|
+
def Action(self, Action):
|
|
5874
|
+
self._Action = Action
|
|
5875
|
+
|
|
5876
|
+
@property
|
|
5877
|
+
def BotId(self):
|
|
5878
|
+
r"""规则名称
|
|
5879
|
+
:rtype: str
|
|
5880
|
+
"""
|
|
5881
|
+
return self._BotId
|
|
5882
|
+
|
|
5883
|
+
@BotId.setter
|
|
5884
|
+
def BotId(self, BotId):
|
|
5885
|
+
self._BotId = BotId
|
|
5886
|
+
|
|
5887
|
+
@property
|
|
5888
|
+
def Redirect(self):
|
|
5889
|
+
r"""重定向路径
|
|
5890
|
+
:rtype: str
|
|
5891
|
+
"""
|
|
5892
|
+
return self._Redirect
|
|
5893
|
+
|
|
5894
|
+
@Redirect.setter
|
|
5895
|
+
def Redirect(self, Redirect):
|
|
5896
|
+
self._Redirect = Redirect
|
|
5897
|
+
|
|
5898
|
+
|
|
5899
|
+
def _deserialize(self, params):
|
|
5900
|
+
self._RuleId = params.get("RuleId")
|
|
5901
|
+
self._Status = params.get("Status")
|
|
5902
|
+
self._Action = params.get("Action")
|
|
5903
|
+
self._BotId = params.get("BotId")
|
|
5904
|
+
self._Redirect = params.get("Redirect")
|
|
5905
|
+
memeber_set = set(params.keys())
|
|
5906
|
+
for name, value in vars(self).items():
|
|
5907
|
+
property_name = name[1:]
|
|
5908
|
+
if property_name in memeber_set:
|
|
5909
|
+
memeber_set.remove(property_name)
|
|
5910
|
+
if len(memeber_set) > 0:
|
|
5911
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
5912
|
+
|
|
5913
|
+
|
|
5914
|
+
|
|
4880
5915
|
class BotPkg(AbstractModel):
|
|
4881
5916
|
r"""Bot资源信息
|
|
4882
5917
|
|
|
@@ -10480,6 +11515,432 @@ class CreatePostCLSFlowResponse(AbstractModel):
|
|
|
10480
11515
|
self._RequestId = params.get("RequestId")
|
|
10481
11516
|
|
|
10482
11517
|
|
|
11518
|
+
class CreateRateLimitV2Request(AbstractModel):
|
|
11519
|
+
r"""CreateRateLimitV2请求参数结构体
|
|
11520
|
+
|
|
11521
|
+
"""
|
|
11522
|
+
|
|
11523
|
+
def __init__(self):
|
|
11524
|
+
r"""
|
|
11525
|
+
:param _Domain: 域名
|
|
11526
|
+
:type Domain: str
|
|
11527
|
+
:param _Name: 规则名
|
|
11528
|
+
:type Name: str
|
|
11529
|
+
:param _Priority: 规则优先级
|
|
11530
|
+
:type Priority: int
|
|
11531
|
+
:param _Status: 规则开关,0关闭,1开启
|
|
11532
|
+
:type Status: int
|
|
11533
|
+
:param _LimitWindow: 限流窗口
|
|
11534
|
+
:type LimitWindow: :class:`tencentcloud.waf.v20180125.models.LimitWindow`
|
|
11535
|
+
:param _LimitObject: 支持API或Domain,如果是基于API,则LimitPaths不能为空,否则LimitPaths为空
|
|
11536
|
+
:type LimitObject: str
|
|
11537
|
+
:param _LimitStrategy: 限流策略,0:观察,1:拦截,2:人机
|
|
11538
|
+
:type LimitStrategy: int
|
|
11539
|
+
:param _LimitMethod: 限流方法
|
|
11540
|
+
:type LimitMethod: :class:`tencentcloud.waf.v20180125.models.LimitMethod`
|
|
11541
|
+
:param _LimitPaths: 限流路径列表
|
|
11542
|
+
:type LimitPaths: :class:`tencentcloud.waf.v20180125.models.LimitPath`
|
|
11543
|
+
:param _LimitHeaders: 限流Headers
|
|
11544
|
+
:type LimitHeaders: list of LimitHeader
|
|
11545
|
+
:param _LimitHeaderName: 基于Header参数名限流
|
|
11546
|
+
:type LimitHeaderName: :class:`tencentcloud.waf.v20180125.models.LimitHeaderName`
|
|
11547
|
+
:param _GetParamsName: 基于Get参数名限流
|
|
11548
|
+
:type GetParamsName: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11549
|
+
:param _GetParamsValue: 基于Get参数值限流
|
|
11550
|
+
:type GetParamsValue: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11551
|
+
:param _PostParamsName: 基于Post参数名限流
|
|
11552
|
+
:type PostParamsName: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11553
|
+
:param _PostParamsValue: 基于Post参数值限流
|
|
11554
|
+
:type PostParamsValue: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11555
|
+
:param _IpLocation: 基于IP归属地限流
|
|
11556
|
+
:type IpLocation: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11557
|
+
:param _RedirectInfo: 重定向信息,当LimitStrategy为重定向时,此字段必填
|
|
11558
|
+
:type RedirectInfo: :class:`tencentcloud.waf.v20180125.models.RedirectInfo`
|
|
11559
|
+
:param _BlockPage: 拦截页面,0表示429,否则填写blockPageID
|
|
11560
|
+
:type BlockPage: int
|
|
11561
|
+
:param _ObjectSrc: 限流对象来源,0:手动填写,1:API资产
|
|
11562
|
+
:type ObjectSrc: int
|
|
11563
|
+
:param _QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
11564
|
+
:type QuotaShare: bool
|
|
11565
|
+
:param _PathsOption: 路径选项,可配置每个路径的请求方法
|
|
11566
|
+
:type PathsOption: list of PathItem
|
|
11567
|
+
:param _Order: 限流执行顺序,0:默认情况,限流优先,1:安全防护优先
|
|
11568
|
+
:type Order: int
|
|
11569
|
+
"""
|
|
11570
|
+
self._Domain = None
|
|
11571
|
+
self._Name = None
|
|
11572
|
+
self._Priority = None
|
|
11573
|
+
self._Status = None
|
|
11574
|
+
self._LimitWindow = None
|
|
11575
|
+
self._LimitObject = None
|
|
11576
|
+
self._LimitStrategy = None
|
|
11577
|
+
self._LimitMethod = None
|
|
11578
|
+
self._LimitPaths = None
|
|
11579
|
+
self._LimitHeaders = None
|
|
11580
|
+
self._LimitHeaderName = None
|
|
11581
|
+
self._GetParamsName = None
|
|
11582
|
+
self._GetParamsValue = None
|
|
11583
|
+
self._PostParamsName = None
|
|
11584
|
+
self._PostParamsValue = None
|
|
11585
|
+
self._IpLocation = None
|
|
11586
|
+
self._RedirectInfo = None
|
|
11587
|
+
self._BlockPage = None
|
|
11588
|
+
self._ObjectSrc = None
|
|
11589
|
+
self._QuotaShare = None
|
|
11590
|
+
self._PathsOption = None
|
|
11591
|
+
self._Order = None
|
|
11592
|
+
|
|
11593
|
+
@property
|
|
11594
|
+
def Domain(self):
|
|
11595
|
+
r"""域名
|
|
11596
|
+
:rtype: str
|
|
11597
|
+
"""
|
|
11598
|
+
return self._Domain
|
|
11599
|
+
|
|
11600
|
+
@Domain.setter
|
|
11601
|
+
def Domain(self, Domain):
|
|
11602
|
+
self._Domain = Domain
|
|
11603
|
+
|
|
11604
|
+
@property
|
|
11605
|
+
def Name(self):
|
|
11606
|
+
r"""规则名
|
|
11607
|
+
:rtype: str
|
|
11608
|
+
"""
|
|
11609
|
+
return self._Name
|
|
11610
|
+
|
|
11611
|
+
@Name.setter
|
|
11612
|
+
def Name(self, Name):
|
|
11613
|
+
self._Name = Name
|
|
11614
|
+
|
|
11615
|
+
@property
|
|
11616
|
+
def Priority(self):
|
|
11617
|
+
r"""规则优先级
|
|
11618
|
+
:rtype: int
|
|
11619
|
+
"""
|
|
11620
|
+
return self._Priority
|
|
11621
|
+
|
|
11622
|
+
@Priority.setter
|
|
11623
|
+
def Priority(self, Priority):
|
|
11624
|
+
self._Priority = Priority
|
|
11625
|
+
|
|
11626
|
+
@property
|
|
11627
|
+
def Status(self):
|
|
11628
|
+
r"""规则开关,0关闭,1开启
|
|
11629
|
+
:rtype: int
|
|
11630
|
+
"""
|
|
11631
|
+
return self._Status
|
|
11632
|
+
|
|
11633
|
+
@Status.setter
|
|
11634
|
+
def Status(self, Status):
|
|
11635
|
+
self._Status = Status
|
|
11636
|
+
|
|
11637
|
+
@property
|
|
11638
|
+
def LimitWindow(self):
|
|
11639
|
+
r"""限流窗口
|
|
11640
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitWindow`
|
|
11641
|
+
"""
|
|
11642
|
+
return self._LimitWindow
|
|
11643
|
+
|
|
11644
|
+
@LimitWindow.setter
|
|
11645
|
+
def LimitWindow(self, LimitWindow):
|
|
11646
|
+
self._LimitWindow = LimitWindow
|
|
11647
|
+
|
|
11648
|
+
@property
|
|
11649
|
+
def LimitObject(self):
|
|
11650
|
+
r"""支持API或Domain,如果是基于API,则LimitPaths不能为空,否则LimitPaths为空
|
|
11651
|
+
:rtype: str
|
|
11652
|
+
"""
|
|
11653
|
+
return self._LimitObject
|
|
11654
|
+
|
|
11655
|
+
@LimitObject.setter
|
|
11656
|
+
def LimitObject(self, LimitObject):
|
|
11657
|
+
self._LimitObject = LimitObject
|
|
11658
|
+
|
|
11659
|
+
@property
|
|
11660
|
+
def LimitStrategy(self):
|
|
11661
|
+
r"""限流策略,0:观察,1:拦截,2:人机
|
|
11662
|
+
:rtype: int
|
|
11663
|
+
"""
|
|
11664
|
+
return self._LimitStrategy
|
|
11665
|
+
|
|
11666
|
+
@LimitStrategy.setter
|
|
11667
|
+
def LimitStrategy(self, LimitStrategy):
|
|
11668
|
+
self._LimitStrategy = LimitStrategy
|
|
11669
|
+
|
|
11670
|
+
@property
|
|
11671
|
+
def LimitMethod(self):
|
|
11672
|
+
r"""限流方法
|
|
11673
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitMethod`
|
|
11674
|
+
"""
|
|
11675
|
+
return self._LimitMethod
|
|
11676
|
+
|
|
11677
|
+
@LimitMethod.setter
|
|
11678
|
+
def LimitMethod(self, LimitMethod):
|
|
11679
|
+
self._LimitMethod = LimitMethod
|
|
11680
|
+
|
|
11681
|
+
@property
|
|
11682
|
+
def LimitPaths(self):
|
|
11683
|
+
r"""限流路径列表
|
|
11684
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitPath`
|
|
11685
|
+
"""
|
|
11686
|
+
return self._LimitPaths
|
|
11687
|
+
|
|
11688
|
+
@LimitPaths.setter
|
|
11689
|
+
def LimitPaths(self, LimitPaths):
|
|
11690
|
+
self._LimitPaths = LimitPaths
|
|
11691
|
+
|
|
11692
|
+
@property
|
|
11693
|
+
def LimitHeaders(self):
|
|
11694
|
+
r"""限流Headers
|
|
11695
|
+
:rtype: list of LimitHeader
|
|
11696
|
+
"""
|
|
11697
|
+
return self._LimitHeaders
|
|
11698
|
+
|
|
11699
|
+
@LimitHeaders.setter
|
|
11700
|
+
def LimitHeaders(self, LimitHeaders):
|
|
11701
|
+
self._LimitHeaders = LimitHeaders
|
|
11702
|
+
|
|
11703
|
+
@property
|
|
11704
|
+
def LimitHeaderName(self):
|
|
11705
|
+
r"""基于Header参数名限流
|
|
11706
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitHeaderName`
|
|
11707
|
+
"""
|
|
11708
|
+
return self._LimitHeaderName
|
|
11709
|
+
|
|
11710
|
+
@LimitHeaderName.setter
|
|
11711
|
+
def LimitHeaderName(self, LimitHeaderName):
|
|
11712
|
+
self._LimitHeaderName = LimitHeaderName
|
|
11713
|
+
|
|
11714
|
+
@property
|
|
11715
|
+
def GetParamsName(self):
|
|
11716
|
+
r"""基于Get参数名限流
|
|
11717
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11718
|
+
"""
|
|
11719
|
+
return self._GetParamsName
|
|
11720
|
+
|
|
11721
|
+
@GetParamsName.setter
|
|
11722
|
+
def GetParamsName(self, GetParamsName):
|
|
11723
|
+
self._GetParamsName = GetParamsName
|
|
11724
|
+
|
|
11725
|
+
@property
|
|
11726
|
+
def GetParamsValue(self):
|
|
11727
|
+
r"""基于Get参数值限流
|
|
11728
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11729
|
+
"""
|
|
11730
|
+
return self._GetParamsValue
|
|
11731
|
+
|
|
11732
|
+
@GetParamsValue.setter
|
|
11733
|
+
def GetParamsValue(self, GetParamsValue):
|
|
11734
|
+
self._GetParamsValue = GetParamsValue
|
|
11735
|
+
|
|
11736
|
+
@property
|
|
11737
|
+
def PostParamsName(self):
|
|
11738
|
+
r"""基于Post参数名限流
|
|
11739
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11740
|
+
"""
|
|
11741
|
+
return self._PostParamsName
|
|
11742
|
+
|
|
11743
|
+
@PostParamsName.setter
|
|
11744
|
+
def PostParamsName(self, PostParamsName):
|
|
11745
|
+
self._PostParamsName = PostParamsName
|
|
11746
|
+
|
|
11747
|
+
@property
|
|
11748
|
+
def PostParamsValue(self):
|
|
11749
|
+
r"""基于Post参数值限流
|
|
11750
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11751
|
+
"""
|
|
11752
|
+
return self._PostParamsValue
|
|
11753
|
+
|
|
11754
|
+
@PostParamsValue.setter
|
|
11755
|
+
def PostParamsValue(self, PostParamsValue):
|
|
11756
|
+
self._PostParamsValue = PostParamsValue
|
|
11757
|
+
|
|
11758
|
+
@property
|
|
11759
|
+
def IpLocation(self):
|
|
11760
|
+
r"""基于IP归属地限流
|
|
11761
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
11762
|
+
"""
|
|
11763
|
+
return self._IpLocation
|
|
11764
|
+
|
|
11765
|
+
@IpLocation.setter
|
|
11766
|
+
def IpLocation(self, IpLocation):
|
|
11767
|
+
self._IpLocation = IpLocation
|
|
11768
|
+
|
|
11769
|
+
@property
|
|
11770
|
+
def RedirectInfo(self):
|
|
11771
|
+
r"""重定向信息,当LimitStrategy为重定向时,此字段必填
|
|
11772
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RedirectInfo`
|
|
11773
|
+
"""
|
|
11774
|
+
return self._RedirectInfo
|
|
11775
|
+
|
|
11776
|
+
@RedirectInfo.setter
|
|
11777
|
+
def RedirectInfo(self, RedirectInfo):
|
|
11778
|
+
self._RedirectInfo = RedirectInfo
|
|
11779
|
+
|
|
11780
|
+
@property
|
|
11781
|
+
def BlockPage(self):
|
|
11782
|
+
r"""拦截页面,0表示429,否则填写blockPageID
|
|
11783
|
+
:rtype: int
|
|
11784
|
+
"""
|
|
11785
|
+
return self._BlockPage
|
|
11786
|
+
|
|
11787
|
+
@BlockPage.setter
|
|
11788
|
+
def BlockPage(self, BlockPage):
|
|
11789
|
+
self._BlockPage = BlockPage
|
|
11790
|
+
|
|
11791
|
+
@property
|
|
11792
|
+
def ObjectSrc(self):
|
|
11793
|
+
r"""限流对象来源,0:手动填写,1:API资产
|
|
11794
|
+
:rtype: int
|
|
11795
|
+
"""
|
|
11796
|
+
return self._ObjectSrc
|
|
11797
|
+
|
|
11798
|
+
@ObjectSrc.setter
|
|
11799
|
+
def ObjectSrc(self, ObjectSrc):
|
|
11800
|
+
self._ObjectSrc = ObjectSrc
|
|
11801
|
+
|
|
11802
|
+
@property
|
|
11803
|
+
def QuotaShare(self):
|
|
11804
|
+
r"""是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
11805
|
+
:rtype: bool
|
|
11806
|
+
"""
|
|
11807
|
+
return self._QuotaShare
|
|
11808
|
+
|
|
11809
|
+
@QuotaShare.setter
|
|
11810
|
+
def QuotaShare(self, QuotaShare):
|
|
11811
|
+
self._QuotaShare = QuotaShare
|
|
11812
|
+
|
|
11813
|
+
@property
|
|
11814
|
+
def PathsOption(self):
|
|
11815
|
+
r"""路径选项,可配置每个路径的请求方法
|
|
11816
|
+
:rtype: list of PathItem
|
|
11817
|
+
"""
|
|
11818
|
+
return self._PathsOption
|
|
11819
|
+
|
|
11820
|
+
@PathsOption.setter
|
|
11821
|
+
def PathsOption(self, PathsOption):
|
|
11822
|
+
self._PathsOption = PathsOption
|
|
11823
|
+
|
|
11824
|
+
@property
|
|
11825
|
+
def Order(self):
|
|
11826
|
+
r"""限流执行顺序,0:默认情况,限流优先,1:安全防护优先
|
|
11827
|
+
:rtype: int
|
|
11828
|
+
"""
|
|
11829
|
+
return self._Order
|
|
11830
|
+
|
|
11831
|
+
@Order.setter
|
|
11832
|
+
def Order(self, Order):
|
|
11833
|
+
self._Order = Order
|
|
11834
|
+
|
|
11835
|
+
|
|
11836
|
+
def _deserialize(self, params):
|
|
11837
|
+
self._Domain = params.get("Domain")
|
|
11838
|
+
self._Name = params.get("Name")
|
|
11839
|
+
self._Priority = params.get("Priority")
|
|
11840
|
+
self._Status = params.get("Status")
|
|
11841
|
+
if params.get("LimitWindow") is not None:
|
|
11842
|
+
self._LimitWindow = LimitWindow()
|
|
11843
|
+
self._LimitWindow._deserialize(params.get("LimitWindow"))
|
|
11844
|
+
self._LimitObject = params.get("LimitObject")
|
|
11845
|
+
self._LimitStrategy = params.get("LimitStrategy")
|
|
11846
|
+
if params.get("LimitMethod") is not None:
|
|
11847
|
+
self._LimitMethod = LimitMethod()
|
|
11848
|
+
self._LimitMethod._deserialize(params.get("LimitMethod"))
|
|
11849
|
+
if params.get("LimitPaths") is not None:
|
|
11850
|
+
self._LimitPaths = LimitPath()
|
|
11851
|
+
self._LimitPaths._deserialize(params.get("LimitPaths"))
|
|
11852
|
+
if params.get("LimitHeaders") is not None:
|
|
11853
|
+
self._LimitHeaders = []
|
|
11854
|
+
for item in params.get("LimitHeaders"):
|
|
11855
|
+
obj = LimitHeader()
|
|
11856
|
+
obj._deserialize(item)
|
|
11857
|
+
self._LimitHeaders.append(obj)
|
|
11858
|
+
if params.get("LimitHeaderName") is not None:
|
|
11859
|
+
self._LimitHeaderName = LimitHeaderName()
|
|
11860
|
+
self._LimitHeaderName._deserialize(params.get("LimitHeaderName"))
|
|
11861
|
+
if params.get("GetParamsName") is not None:
|
|
11862
|
+
self._GetParamsName = MatchOption()
|
|
11863
|
+
self._GetParamsName._deserialize(params.get("GetParamsName"))
|
|
11864
|
+
if params.get("GetParamsValue") is not None:
|
|
11865
|
+
self._GetParamsValue = MatchOption()
|
|
11866
|
+
self._GetParamsValue._deserialize(params.get("GetParamsValue"))
|
|
11867
|
+
if params.get("PostParamsName") is not None:
|
|
11868
|
+
self._PostParamsName = MatchOption()
|
|
11869
|
+
self._PostParamsName._deserialize(params.get("PostParamsName"))
|
|
11870
|
+
if params.get("PostParamsValue") is not None:
|
|
11871
|
+
self._PostParamsValue = MatchOption()
|
|
11872
|
+
self._PostParamsValue._deserialize(params.get("PostParamsValue"))
|
|
11873
|
+
if params.get("IpLocation") is not None:
|
|
11874
|
+
self._IpLocation = MatchOption()
|
|
11875
|
+
self._IpLocation._deserialize(params.get("IpLocation"))
|
|
11876
|
+
if params.get("RedirectInfo") is not None:
|
|
11877
|
+
self._RedirectInfo = RedirectInfo()
|
|
11878
|
+
self._RedirectInfo._deserialize(params.get("RedirectInfo"))
|
|
11879
|
+
self._BlockPage = params.get("BlockPage")
|
|
11880
|
+
self._ObjectSrc = params.get("ObjectSrc")
|
|
11881
|
+
self._QuotaShare = params.get("QuotaShare")
|
|
11882
|
+
if params.get("PathsOption") is not None:
|
|
11883
|
+
self._PathsOption = []
|
|
11884
|
+
for item in params.get("PathsOption"):
|
|
11885
|
+
obj = PathItem()
|
|
11886
|
+
obj._deserialize(item)
|
|
11887
|
+
self._PathsOption.append(obj)
|
|
11888
|
+
self._Order = params.get("Order")
|
|
11889
|
+
memeber_set = set(params.keys())
|
|
11890
|
+
for name, value in vars(self).items():
|
|
11891
|
+
property_name = name[1:]
|
|
11892
|
+
if property_name in memeber_set:
|
|
11893
|
+
memeber_set.remove(property_name)
|
|
11894
|
+
if len(memeber_set) > 0:
|
|
11895
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
11896
|
+
|
|
11897
|
+
|
|
11898
|
+
|
|
11899
|
+
class CreateRateLimitV2Response(AbstractModel):
|
|
11900
|
+
r"""CreateRateLimitV2返回参数结构体
|
|
11901
|
+
|
|
11902
|
+
"""
|
|
11903
|
+
|
|
11904
|
+
def __init__(self):
|
|
11905
|
+
r"""
|
|
11906
|
+
:param _BaseInfo: 操作结果
|
|
11907
|
+
:type BaseInfo: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
11908
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
11909
|
+
:type RequestId: str
|
|
11910
|
+
"""
|
|
11911
|
+
self._BaseInfo = None
|
|
11912
|
+
self._RequestId = None
|
|
11913
|
+
|
|
11914
|
+
@property
|
|
11915
|
+
def BaseInfo(self):
|
|
11916
|
+
r"""操作结果
|
|
11917
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
11918
|
+
"""
|
|
11919
|
+
return self._BaseInfo
|
|
11920
|
+
|
|
11921
|
+
@BaseInfo.setter
|
|
11922
|
+
def BaseInfo(self, BaseInfo):
|
|
11923
|
+
self._BaseInfo = BaseInfo
|
|
11924
|
+
|
|
11925
|
+
@property
|
|
11926
|
+
def RequestId(self):
|
|
11927
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
11928
|
+
:rtype: str
|
|
11929
|
+
"""
|
|
11930
|
+
return self._RequestId
|
|
11931
|
+
|
|
11932
|
+
@RequestId.setter
|
|
11933
|
+
def RequestId(self, RequestId):
|
|
11934
|
+
self._RequestId = RequestId
|
|
11935
|
+
|
|
11936
|
+
|
|
11937
|
+
def _deserialize(self, params):
|
|
11938
|
+
if params.get("BaseInfo") is not None:
|
|
11939
|
+
self._BaseInfo = RateLimitCommonRsp()
|
|
11940
|
+
self._BaseInfo._deserialize(params.get("BaseInfo"))
|
|
11941
|
+
self._RequestId = params.get("RequestId")
|
|
11942
|
+
|
|
11943
|
+
|
|
10483
11944
|
class CronJob(AbstractModel):
|
|
10484
11945
|
r"""规则周期执行的数据结构
|
|
10485
11946
|
|
|
@@ -12256,6 +13717,102 @@ class DeleteOwaspWhiteRuleResponse(AbstractModel):
|
|
|
12256
13717
|
self._RequestId = params.get("RequestId")
|
|
12257
13718
|
|
|
12258
13719
|
|
|
13720
|
+
class DeleteRateLimitsV2Request(AbstractModel):
|
|
13721
|
+
r"""DeleteRateLimitsV2请求参数结构体
|
|
13722
|
+
|
|
13723
|
+
"""
|
|
13724
|
+
|
|
13725
|
+
def __init__(self):
|
|
13726
|
+
r"""
|
|
13727
|
+
:param _Domain: 域名
|
|
13728
|
+
:type Domain: str
|
|
13729
|
+
:param _LimitRuleIds: 要删除的限流ID列表
|
|
13730
|
+
:type LimitRuleIds: list of int
|
|
13731
|
+
"""
|
|
13732
|
+
self._Domain = None
|
|
13733
|
+
self._LimitRuleIds = None
|
|
13734
|
+
|
|
13735
|
+
@property
|
|
13736
|
+
def Domain(self):
|
|
13737
|
+
r"""域名
|
|
13738
|
+
:rtype: str
|
|
13739
|
+
"""
|
|
13740
|
+
return self._Domain
|
|
13741
|
+
|
|
13742
|
+
@Domain.setter
|
|
13743
|
+
def Domain(self, Domain):
|
|
13744
|
+
self._Domain = Domain
|
|
13745
|
+
|
|
13746
|
+
@property
|
|
13747
|
+
def LimitRuleIds(self):
|
|
13748
|
+
r"""要删除的限流ID列表
|
|
13749
|
+
:rtype: list of int
|
|
13750
|
+
"""
|
|
13751
|
+
return self._LimitRuleIds
|
|
13752
|
+
|
|
13753
|
+
@LimitRuleIds.setter
|
|
13754
|
+
def LimitRuleIds(self, LimitRuleIds):
|
|
13755
|
+
self._LimitRuleIds = LimitRuleIds
|
|
13756
|
+
|
|
13757
|
+
|
|
13758
|
+
def _deserialize(self, params):
|
|
13759
|
+
self._Domain = params.get("Domain")
|
|
13760
|
+
self._LimitRuleIds = params.get("LimitRuleIds")
|
|
13761
|
+
memeber_set = set(params.keys())
|
|
13762
|
+
for name, value in vars(self).items():
|
|
13763
|
+
property_name = name[1:]
|
|
13764
|
+
if property_name in memeber_set:
|
|
13765
|
+
memeber_set.remove(property_name)
|
|
13766
|
+
if len(memeber_set) > 0:
|
|
13767
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
13768
|
+
|
|
13769
|
+
|
|
13770
|
+
|
|
13771
|
+
class DeleteRateLimitsV2Response(AbstractModel):
|
|
13772
|
+
r"""DeleteRateLimitsV2返回参数结构体
|
|
13773
|
+
|
|
13774
|
+
"""
|
|
13775
|
+
|
|
13776
|
+
def __init__(self):
|
|
13777
|
+
r"""
|
|
13778
|
+
:param _BaseInfo: 操作结果
|
|
13779
|
+
:type BaseInfo: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
13780
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
13781
|
+
:type RequestId: str
|
|
13782
|
+
"""
|
|
13783
|
+
self._BaseInfo = None
|
|
13784
|
+
self._RequestId = None
|
|
13785
|
+
|
|
13786
|
+
@property
|
|
13787
|
+
def BaseInfo(self):
|
|
13788
|
+
r"""操作结果
|
|
13789
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
13790
|
+
"""
|
|
13791
|
+
return self._BaseInfo
|
|
13792
|
+
|
|
13793
|
+
@BaseInfo.setter
|
|
13794
|
+
def BaseInfo(self, BaseInfo):
|
|
13795
|
+
self._BaseInfo = BaseInfo
|
|
13796
|
+
|
|
13797
|
+
@property
|
|
13798
|
+
def RequestId(self):
|
|
13799
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
13800
|
+
:rtype: str
|
|
13801
|
+
"""
|
|
13802
|
+
return self._RequestId
|
|
13803
|
+
|
|
13804
|
+
@RequestId.setter
|
|
13805
|
+
def RequestId(self, RequestId):
|
|
13806
|
+
self._RequestId = RequestId
|
|
13807
|
+
|
|
13808
|
+
|
|
13809
|
+
def _deserialize(self, params):
|
|
13810
|
+
if params.get("BaseInfo") is not None:
|
|
13811
|
+
self._BaseInfo = RateLimitCommonRsp()
|
|
13812
|
+
self._BaseInfo._deserialize(params.get("BaseInfo"))
|
|
13813
|
+
self._RequestId = params.get("RequestId")
|
|
13814
|
+
|
|
13815
|
+
|
|
12259
13816
|
class DeleteSessionRequest(AbstractModel):
|
|
12260
13817
|
r"""DeleteSession请求参数结构体
|
|
12261
13818
|
|
|
@@ -22093,6 +23650,279 @@ class DescribeProtectionModesResponse(AbstractModel):
|
|
|
22093
23650
|
self._RequestId = params.get("RequestId")
|
|
22094
23651
|
|
|
22095
23652
|
|
|
23653
|
+
class DescribeRateLimitsV2Request(AbstractModel):
|
|
23654
|
+
r"""DescribeRateLimitsV2请求参数结构体
|
|
23655
|
+
|
|
23656
|
+
"""
|
|
23657
|
+
|
|
23658
|
+
def __init__(self):
|
|
23659
|
+
r"""
|
|
23660
|
+
:param _Domain: 域名
|
|
23661
|
+
:type Domain: str
|
|
23662
|
+
:param _Id: 限流规则ID
|
|
23663
|
+
:type Id: int
|
|
23664
|
+
:param _Name: 规则名
|
|
23665
|
+
:type Name: str
|
|
23666
|
+
:param _Method: 限流接口名
|
|
23667
|
+
:type Method: str
|
|
23668
|
+
:param _LimitObject: 限流对象,可选API、Domain
|
|
23669
|
+
:type LimitObject: str
|
|
23670
|
+
:param _Status: 规则开关,0表示关闭,1表示开启
|
|
23671
|
+
:type Status: int
|
|
23672
|
+
:param _Order: 排序方式,可选desc、asc
|
|
23673
|
+
:type Order: str
|
|
23674
|
+
:param _By: 排序字段,可选Priority、Timestamp、ID
|
|
23675
|
+
:type By: str
|
|
23676
|
+
:param _Offset: 分页的起始位置
|
|
23677
|
+
:type Offset: int
|
|
23678
|
+
:param _Limit: 每页行数
|
|
23679
|
+
:type Limit: int
|
|
23680
|
+
:param _Filters: 过滤器
|
|
23681
|
+
:type Filters: list of FiltersItemNew
|
|
23682
|
+
"""
|
|
23683
|
+
self._Domain = None
|
|
23684
|
+
self._Id = None
|
|
23685
|
+
self._Name = None
|
|
23686
|
+
self._Method = None
|
|
23687
|
+
self._LimitObject = None
|
|
23688
|
+
self._Status = None
|
|
23689
|
+
self._Order = None
|
|
23690
|
+
self._By = None
|
|
23691
|
+
self._Offset = None
|
|
23692
|
+
self._Limit = None
|
|
23693
|
+
self._Filters = None
|
|
23694
|
+
|
|
23695
|
+
@property
|
|
23696
|
+
def Domain(self):
|
|
23697
|
+
r"""域名
|
|
23698
|
+
:rtype: str
|
|
23699
|
+
"""
|
|
23700
|
+
return self._Domain
|
|
23701
|
+
|
|
23702
|
+
@Domain.setter
|
|
23703
|
+
def Domain(self, Domain):
|
|
23704
|
+
self._Domain = Domain
|
|
23705
|
+
|
|
23706
|
+
@property
|
|
23707
|
+
def Id(self):
|
|
23708
|
+
r"""限流规则ID
|
|
23709
|
+
:rtype: int
|
|
23710
|
+
"""
|
|
23711
|
+
return self._Id
|
|
23712
|
+
|
|
23713
|
+
@Id.setter
|
|
23714
|
+
def Id(self, Id):
|
|
23715
|
+
self._Id = Id
|
|
23716
|
+
|
|
23717
|
+
@property
|
|
23718
|
+
def Name(self):
|
|
23719
|
+
r"""规则名
|
|
23720
|
+
:rtype: str
|
|
23721
|
+
"""
|
|
23722
|
+
return self._Name
|
|
23723
|
+
|
|
23724
|
+
@Name.setter
|
|
23725
|
+
def Name(self, Name):
|
|
23726
|
+
self._Name = Name
|
|
23727
|
+
|
|
23728
|
+
@property
|
|
23729
|
+
def Method(self):
|
|
23730
|
+
r"""限流接口名
|
|
23731
|
+
:rtype: str
|
|
23732
|
+
"""
|
|
23733
|
+
return self._Method
|
|
23734
|
+
|
|
23735
|
+
@Method.setter
|
|
23736
|
+
def Method(self, Method):
|
|
23737
|
+
self._Method = Method
|
|
23738
|
+
|
|
23739
|
+
@property
|
|
23740
|
+
def LimitObject(self):
|
|
23741
|
+
r"""限流对象,可选API、Domain
|
|
23742
|
+
:rtype: str
|
|
23743
|
+
"""
|
|
23744
|
+
return self._LimitObject
|
|
23745
|
+
|
|
23746
|
+
@LimitObject.setter
|
|
23747
|
+
def LimitObject(self, LimitObject):
|
|
23748
|
+
self._LimitObject = LimitObject
|
|
23749
|
+
|
|
23750
|
+
@property
|
|
23751
|
+
def Status(self):
|
|
23752
|
+
r"""规则开关,0表示关闭,1表示开启
|
|
23753
|
+
:rtype: int
|
|
23754
|
+
"""
|
|
23755
|
+
return self._Status
|
|
23756
|
+
|
|
23757
|
+
@Status.setter
|
|
23758
|
+
def Status(self, Status):
|
|
23759
|
+
self._Status = Status
|
|
23760
|
+
|
|
23761
|
+
@property
|
|
23762
|
+
def Order(self):
|
|
23763
|
+
r"""排序方式,可选desc、asc
|
|
23764
|
+
:rtype: str
|
|
23765
|
+
"""
|
|
23766
|
+
return self._Order
|
|
23767
|
+
|
|
23768
|
+
@Order.setter
|
|
23769
|
+
def Order(self, Order):
|
|
23770
|
+
self._Order = Order
|
|
23771
|
+
|
|
23772
|
+
@property
|
|
23773
|
+
def By(self):
|
|
23774
|
+
r"""排序字段,可选Priority、Timestamp、ID
|
|
23775
|
+
:rtype: str
|
|
23776
|
+
"""
|
|
23777
|
+
return self._By
|
|
23778
|
+
|
|
23779
|
+
@By.setter
|
|
23780
|
+
def By(self, By):
|
|
23781
|
+
self._By = By
|
|
23782
|
+
|
|
23783
|
+
@property
|
|
23784
|
+
def Offset(self):
|
|
23785
|
+
r"""分页的起始位置
|
|
23786
|
+
:rtype: int
|
|
23787
|
+
"""
|
|
23788
|
+
return self._Offset
|
|
23789
|
+
|
|
23790
|
+
@Offset.setter
|
|
23791
|
+
def Offset(self, Offset):
|
|
23792
|
+
self._Offset = Offset
|
|
23793
|
+
|
|
23794
|
+
@property
|
|
23795
|
+
def Limit(self):
|
|
23796
|
+
r"""每页行数
|
|
23797
|
+
:rtype: int
|
|
23798
|
+
"""
|
|
23799
|
+
return self._Limit
|
|
23800
|
+
|
|
23801
|
+
@Limit.setter
|
|
23802
|
+
def Limit(self, Limit):
|
|
23803
|
+
self._Limit = Limit
|
|
23804
|
+
|
|
23805
|
+
@property
|
|
23806
|
+
def Filters(self):
|
|
23807
|
+
r"""过滤器
|
|
23808
|
+
:rtype: list of FiltersItemNew
|
|
23809
|
+
"""
|
|
23810
|
+
return self._Filters
|
|
23811
|
+
|
|
23812
|
+
@Filters.setter
|
|
23813
|
+
def Filters(self, Filters):
|
|
23814
|
+
self._Filters = Filters
|
|
23815
|
+
|
|
23816
|
+
|
|
23817
|
+
def _deserialize(self, params):
|
|
23818
|
+
self._Domain = params.get("Domain")
|
|
23819
|
+
self._Id = params.get("Id")
|
|
23820
|
+
self._Name = params.get("Name")
|
|
23821
|
+
self._Method = params.get("Method")
|
|
23822
|
+
self._LimitObject = params.get("LimitObject")
|
|
23823
|
+
self._Status = params.get("Status")
|
|
23824
|
+
self._Order = params.get("Order")
|
|
23825
|
+
self._By = params.get("By")
|
|
23826
|
+
self._Offset = params.get("Offset")
|
|
23827
|
+
self._Limit = params.get("Limit")
|
|
23828
|
+
if params.get("Filters") is not None:
|
|
23829
|
+
self._Filters = []
|
|
23830
|
+
for item in params.get("Filters"):
|
|
23831
|
+
obj = FiltersItemNew()
|
|
23832
|
+
obj._deserialize(item)
|
|
23833
|
+
self._Filters.append(obj)
|
|
23834
|
+
memeber_set = set(params.keys())
|
|
23835
|
+
for name, value in vars(self).items():
|
|
23836
|
+
property_name = name[1:]
|
|
23837
|
+
if property_name in memeber_set:
|
|
23838
|
+
memeber_set.remove(property_name)
|
|
23839
|
+
if len(memeber_set) > 0:
|
|
23840
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
23841
|
+
|
|
23842
|
+
|
|
23843
|
+
|
|
23844
|
+
class DescribeRateLimitsV2Response(AbstractModel):
|
|
23845
|
+
r"""DescribeRateLimitsV2返回参数结构体
|
|
23846
|
+
|
|
23847
|
+
"""
|
|
23848
|
+
|
|
23849
|
+
def __init__(self):
|
|
23850
|
+
r"""
|
|
23851
|
+
:param _Total: 查询结果中规则数量
|
|
23852
|
+
:type Total: int
|
|
23853
|
+
:param _BaseInfo: 操作结果
|
|
23854
|
+
:type BaseInfo: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
23855
|
+
:param _RateLimits: 规则列表
|
|
23856
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
23857
|
+
:type RateLimits: list of LimitRuleV2
|
|
23858
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
23859
|
+
:type RequestId: str
|
|
23860
|
+
"""
|
|
23861
|
+
self._Total = None
|
|
23862
|
+
self._BaseInfo = None
|
|
23863
|
+
self._RateLimits = None
|
|
23864
|
+
self._RequestId = None
|
|
23865
|
+
|
|
23866
|
+
@property
|
|
23867
|
+
def Total(self):
|
|
23868
|
+
r"""查询结果中规则数量
|
|
23869
|
+
:rtype: int
|
|
23870
|
+
"""
|
|
23871
|
+
return self._Total
|
|
23872
|
+
|
|
23873
|
+
@Total.setter
|
|
23874
|
+
def Total(self, Total):
|
|
23875
|
+
self._Total = Total
|
|
23876
|
+
|
|
23877
|
+
@property
|
|
23878
|
+
def BaseInfo(self):
|
|
23879
|
+
r"""操作结果
|
|
23880
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
23881
|
+
"""
|
|
23882
|
+
return self._BaseInfo
|
|
23883
|
+
|
|
23884
|
+
@BaseInfo.setter
|
|
23885
|
+
def BaseInfo(self, BaseInfo):
|
|
23886
|
+
self._BaseInfo = BaseInfo
|
|
23887
|
+
|
|
23888
|
+
@property
|
|
23889
|
+
def RateLimits(self):
|
|
23890
|
+
r"""规则列表
|
|
23891
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
23892
|
+
:rtype: list of LimitRuleV2
|
|
23893
|
+
"""
|
|
23894
|
+
return self._RateLimits
|
|
23895
|
+
|
|
23896
|
+
@RateLimits.setter
|
|
23897
|
+
def RateLimits(self, RateLimits):
|
|
23898
|
+
self._RateLimits = RateLimits
|
|
23899
|
+
|
|
23900
|
+
@property
|
|
23901
|
+
def RequestId(self):
|
|
23902
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
23903
|
+
:rtype: str
|
|
23904
|
+
"""
|
|
23905
|
+
return self._RequestId
|
|
23906
|
+
|
|
23907
|
+
@RequestId.setter
|
|
23908
|
+
def RequestId(self, RequestId):
|
|
23909
|
+
self._RequestId = RequestId
|
|
23910
|
+
|
|
23911
|
+
|
|
23912
|
+
def _deserialize(self, params):
|
|
23913
|
+
self._Total = params.get("Total")
|
|
23914
|
+
if params.get("BaseInfo") is not None:
|
|
23915
|
+
self._BaseInfo = RateLimitCommonRsp()
|
|
23916
|
+
self._BaseInfo._deserialize(params.get("BaseInfo"))
|
|
23917
|
+
if params.get("RateLimits") is not None:
|
|
23918
|
+
self._RateLimits = []
|
|
23919
|
+
for item in params.get("RateLimits"):
|
|
23920
|
+
obj = LimitRuleV2()
|
|
23921
|
+
obj._deserialize(item)
|
|
23922
|
+
self._RateLimits.append(obj)
|
|
23923
|
+
self._RequestId = params.get("RequestId")
|
|
23924
|
+
|
|
23925
|
+
|
|
22096
23926
|
class DescribeRuleLimitRequest(AbstractModel):
|
|
22097
23927
|
r"""DescribeRuleLimit请求参数结构体
|
|
22098
23928
|
|
|
@@ -26930,6 +28760,158 @@ class DownloadAttackRecordInfo(AbstractModel):
|
|
|
26930
28760
|
|
|
26931
28761
|
|
|
26932
28762
|
|
|
28763
|
+
class EnableLimitRuleItem(AbstractModel):
|
|
28764
|
+
r"""EnableLimitRuleItem
|
|
28765
|
+
|
|
28766
|
+
"""
|
|
28767
|
+
|
|
28768
|
+
def __init__(self):
|
|
28769
|
+
r"""
|
|
28770
|
+
:param _LimitRuleId: 规则ID
|
|
28771
|
+
:type LimitRuleId: int
|
|
28772
|
+
:param _Status: 规则开关,0开启,1关闭
|
|
28773
|
+
:type Status: int
|
|
28774
|
+
"""
|
|
28775
|
+
self._LimitRuleId = None
|
|
28776
|
+
self._Status = None
|
|
28777
|
+
|
|
28778
|
+
@property
|
|
28779
|
+
def LimitRuleId(self):
|
|
28780
|
+
r"""规则ID
|
|
28781
|
+
:rtype: int
|
|
28782
|
+
"""
|
|
28783
|
+
return self._LimitRuleId
|
|
28784
|
+
|
|
28785
|
+
@LimitRuleId.setter
|
|
28786
|
+
def LimitRuleId(self, LimitRuleId):
|
|
28787
|
+
self._LimitRuleId = LimitRuleId
|
|
28788
|
+
|
|
28789
|
+
@property
|
|
28790
|
+
def Status(self):
|
|
28791
|
+
r"""规则开关,0开启,1关闭
|
|
28792
|
+
:rtype: int
|
|
28793
|
+
"""
|
|
28794
|
+
return self._Status
|
|
28795
|
+
|
|
28796
|
+
@Status.setter
|
|
28797
|
+
def Status(self, Status):
|
|
28798
|
+
self._Status = Status
|
|
28799
|
+
|
|
28800
|
+
|
|
28801
|
+
def _deserialize(self, params):
|
|
28802
|
+
self._LimitRuleId = params.get("LimitRuleId")
|
|
28803
|
+
self._Status = params.get("Status")
|
|
28804
|
+
memeber_set = set(params.keys())
|
|
28805
|
+
for name, value in vars(self).items():
|
|
28806
|
+
property_name = name[1:]
|
|
28807
|
+
if property_name in memeber_set:
|
|
28808
|
+
memeber_set.remove(property_name)
|
|
28809
|
+
if len(memeber_set) > 0:
|
|
28810
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
28811
|
+
|
|
28812
|
+
|
|
28813
|
+
|
|
28814
|
+
class EnableRateLimitsV2Request(AbstractModel):
|
|
28815
|
+
r"""EnableRateLimitsV2请求参数结构体
|
|
28816
|
+
|
|
28817
|
+
"""
|
|
28818
|
+
|
|
28819
|
+
def __init__(self):
|
|
28820
|
+
r"""
|
|
28821
|
+
:param _Domain: 域名
|
|
28822
|
+
:type Domain: str
|
|
28823
|
+
:param _EnableItems: 具体规则列表
|
|
28824
|
+
:type EnableItems: list of EnableLimitRuleItem
|
|
28825
|
+
"""
|
|
28826
|
+
self._Domain = None
|
|
28827
|
+
self._EnableItems = None
|
|
28828
|
+
|
|
28829
|
+
@property
|
|
28830
|
+
def Domain(self):
|
|
28831
|
+
r"""域名
|
|
28832
|
+
:rtype: str
|
|
28833
|
+
"""
|
|
28834
|
+
return self._Domain
|
|
28835
|
+
|
|
28836
|
+
@Domain.setter
|
|
28837
|
+
def Domain(self, Domain):
|
|
28838
|
+
self._Domain = Domain
|
|
28839
|
+
|
|
28840
|
+
@property
|
|
28841
|
+
def EnableItems(self):
|
|
28842
|
+
r"""具体规则列表
|
|
28843
|
+
:rtype: list of EnableLimitRuleItem
|
|
28844
|
+
"""
|
|
28845
|
+
return self._EnableItems
|
|
28846
|
+
|
|
28847
|
+
@EnableItems.setter
|
|
28848
|
+
def EnableItems(self, EnableItems):
|
|
28849
|
+
self._EnableItems = EnableItems
|
|
28850
|
+
|
|
28851
|
+
|
|
28852
|
+
def _deserialize(self, params):
|
|
28853
|
+
self._Domain = params.get("Domain")
|
|
28854
|
+
if params.get("EnableItems") is not None:
|
|
28855
|
+
self._EnableItems = []
|
|
28856
|
+
for item in params.get("EnableItems"):
|
|
28857
|
+
obj = EnableLimitRuleItem()
|
|
28858
|
+
obj._deserialize(item)
|
|
28859
|
+
self._EnableItems.append(obj)
|
|
28860
|
+
memeber_set = set(params.keys())
|
|
28861
|
+
for name, value in vars(self).items():
|
|
28862
|
+
property_name = name[1:]
|
|
28863
|
+
if property_name in memeber_set:
|
|
28864
|
+
memeber_set.remove(property_name)
|
|
28865
|
+
if len(memeber_set) > 0:
|
|
28866
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
28867
|
+
|
|
28868
|
+
|
|
28869
|
+
|
|
28870
|
+
class EnableRateLimitsV2Response(AbstractModel):
|
|
28871
|
+
r"""EnableRateLimitsV2返回参数结构体
|
|
28872
|
+
|
|
28873
|
+
"""
|
|
28874
|
+
|
|
28875
|
+
def __init__(self):
|
|
28876
|
+
r"""
|
|
28877
|
+
:param _BaseInfo: 操作结果
|
|
28878
|
+
:type BaseInfo: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
28879
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
28880
|
+
:type RequestId: str
|
|
28881
|
+
"""
|
|
28882
|
+
self._BaseInfo = None
|
|
28883
|
+
self._RequestId = None
|
|
28884
|
+
|
|
28885
|
+
@property
|
|
28886
|
+
def BaseInfo(self):
|
|
28887
|
+
r"""操作结果
|
|
28888
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
28889
|
+
"""
|
|
28890
|
+
return self._BaseInfo
|
|
28891
|
+
|
|
28892
|
+
@BaseInfo.setter
|
|
28893
|
+
def BaseInfo(self, BaseInfo):
|
|
28894
|
+
self._BaseInfo = BaseInfo
|
|
28895
|
+
|
|
28896
|
+
@property
|
|
28897
|
+
def RequestId(self):
|
|
28898
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
28899
|
+
:rtype: str
|
|
28900
|
+
"""
|
|
28901
|
+
return self._RequestId
|
|
28902
|
+
|
|
28903
|
+
@RequestId.setter
|
|
28904
|
+
def RequestId(self, RequestId):
|
|
28905
|
+
self._RequestId = RequestId
|
|
28906
|
+
|
|
28907
|
+
|
|
28908
|
+
def _deserialize(self, params):
|
|
28909
|
+
if params.get("BaseInfo") is not None:
|
|
28910
|
+
self._BaseInfo = RateLimitCommonRsp()
|
|
28911
|
+
self._BaseInfo._deserialize(params.get("BaseInfo"))
|
|
28912
|
+
self._RequestId = params.get("RequestId")
|
|
28913
|
+
|
|
28914
|
+
|
|
26933
28915
|
class ExportAccessInfo(AbstractModel):
|
|
26934
28916
|
r"""DescribeAccessExports接口
|
|
26935
28917
|
|
|
@@ -32653,6 +34635,750 @@ class LLMPkg(AbstractModel):
|
|
|
32653
34635
|
|
|
32654
34636
|
|
|
32655
34637
|
|
|
34638
|
+
class LimitHeader(AbstractModel):
|
|
34639
|
+
r"""限流Header数据结构
|
|
34640
|
+
|
|
34641
|
+
"""
|
|
34642
|
+
|
|
34643
|
+
def __init__(self):
|
|
34644
|
+
r"""
|
|
34645
|
+
:param _Key: key
|
|
34646
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34647
|
+
:type Key: str
|
|
34648
|
+
:param _Value: value
|
|
34649
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34650
|
+
:type Value: str
|
|
34651
|
+
:param _Type: 匹配方式,支持EXACT(等于), REGEX(正则) , IN(属于) , NOT_IN(不属于), CONTAINS(包含), NOT_CONTAINS(不包含)
|
|
34652
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34653
|
+
:type Type: str
|
|
34654
|
+
"""
|
|
34655
|
+
self._Key = None
|
|
34656
|
+
self._Value = None
|
|
34657
|
+
self._Type = None
|
|
34658
|
+
|
|
34659
|
+
@property
|
|
34660
|
+
def Key(self):
|
|
34661
|
+
r"""key
|
|
34662
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34663
|
+
:rtype: str
|
|
34664
|
+
"""
|
|
34665
|
+
return self._Key
|
|
34666
|
+
|
|
34667
|
+
@Key.setter
|
|
34668
|
+
def Key(self, Key):
|
|
34669
|
+
self._Key = Key
|
|
34670
|
+
|
|
34671
|
+
@property
|
|
34672
|
+
def Value(self):
|
|
34673
|
+
r"""value
|
|
34674
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34675
|
+
:rtype: str
|
|
34676
|
+
"""
|
|
34677
|
+
return self._Value
|
|
34678
|
+
|
|
34679
|
+
@Value.setter
|
|
34680
|
+
def Value(self, Value):
|
|
34681
|
+
self._Value = Value
|
|
34682
|
+
|
|
34683
|
+
@property
|
|
34684
|
+
def Type(self):
|
|
34685
|
+
r"""匹配方式,支持EXACT(等于), REGEX(正则) , IN(属于) , NOT_IN(不属于), CONTAINS(包含), NOT_CONTAINS(不包含)
|
|
34686
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34687
|
+
:rtype: str
|
|
34688
|
+
"""
|
|
34689
|
+
return self._Type
|
|
34690
|
+
|
|
34691
|
+
@Type.setter
|
|
34692
|
+
def Type(self, Type):
|
|
34693
|
+
self._Type = Type
|
|
34694
|
+
|
|
34695
|
+
|
|
34696
|
+
def _deserialize(self, params):
|
|
34697
|
+
self._Key = params.get("Key")
|
|
34698
|
+
self._Value = params.get("Value")
|
|
34699
|
+
self._Type = params.get("Type")
|
|
34700
|
+
memeber_set = set(params.keys())
|
|
34701
|
+
for name, value in vars(self).items():
|
|
34702
|
+
property_name = name[1:]
|
|
34703
|
+
if property_name in memeber_set:
|
|
34704
|
+
memeber_set.remove(property_name)
|
|
34705
|
+
if len(memeber_set) > 0:
|
|
34706
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
34707
|
+
|
|
34708
|
+
|
|
34709
|
+
|
|
34710
|
+
class LimitHeaderName(AbstractModel):
|
|
34711
|
+
r"""限流Header参数名
|
|
34712
|
+
|
|
34713
|
+
"""
|
|
34714
|
+
|
|
34715
|
+
def __init__(self):
|
|
34716
|
+
r"""
|
|
34717
|
+
:param _ParamsName: 参数名
|
|
34718
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34719
|
+
:type ParamsName: str
|
|
34720
|
+
:param _Type: 操作符号,支持REGEX(正则),IN(属于),NOT_IN(不属于), EACH(每个参数值)
|
|
34721
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34722
|
+
:type Type: str
|
|
34723
|
+
"""
|
|
34724
|
+
self._ParamsName = None
|
|
34725
|
+
self._Type = None
|
|
34726
|
+
|
|
34727
|
+
@property
|
|
34728
|
+
def ParamsName(self):
|
|
34729
|
+
r"""参数名
|
|
34730
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34731
|
+
:rtype: str
|
|
34732
|
+
"""
|
|
34733
|
+
return self._ParamsName
|
|
34734
|
+
|
|
34735
|
+
@ParamsName.setter
|
|
34736
|
+
def ParamsName(self, ParamsName):
|
|
34737
|
+
self._ParamsName = ParamsName
|
|
34738
|
+
|
|
34739
|
+
@property
|
|
34740
|
+
def Type(self):
|
|
34741
|
+
r"""操作符号,支持REGEX(正则),IN(属于),NOT_IN(不属于), EACH(每个参数值)
|
|
34742
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34743
|
+
:rtype: str
|
|
34744
|
+
"""
|
|
34745
|
+
return self._Type
|
|
34746
|
+
|
|
34747
|
+
@Type.setter
|
|
34748
|
+
def Type(self, Type):
|
|
34749
|
+
self._Type = Type
|
|
34750
|
+
|
|
34751
|
+
|
|
34752
|
+
def _deserialize(self, params):
|
|
34753
|
+
self._ParamsName = params.get("ParamsName")
|
|
34754
|
+
self._Type = params.get("Type")
|
|
34755
|
+
memeber_set = set(params.keys())
|
|
34756
|
+
for name, value in vars(self).items():
|
|
34757
|
+
property_name = name[1:]
|
|
34758
|
+
if property_name in memeber_set:
|
|
34759
|
+
memeber_set.remove(property_name)
|
|
34760
|
+
if len(memeber_set) > 0:
|
|
34761
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
34762
|
+
|
|
34763
|
+
|
|
34764
|
+
|
|
34765
|
+
class LimitMethod(AbstractModel):
|
|
34766
|
+
r"""限流方法数据结构
|
|
34767
|
+
|
|
34768
|
+
"""
|
|
34769
|
+
|
|
34770
|
+
def __init__(self):
|
|
34771
|
+
r"""
|
|
34772
|
+
:param _Method: 需要限流的请求方式
|
|
34773
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34774
|
+
:type Method: str
|
|
34775
|
+
:param _Type: 匹配方式,支持EXACT(等于), REGEX(正则) , IN(属于) , NOT_IN(不属于), CONTAINS(包含), NOT_CONTAINS(不包含)
|
|
34776
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34777
|
+
:type Type: str
|
|
34778
|
+
"""
|
|
34779
|
+
self._Method = None
|
|
34780
|
+
self._Type = None
|
|
34781
|
+
|
|
34782
|
+
@property
|
|
34783
|
+
def Method(self):
|
|
34784
|
+
r"""需要限流的请求方式
|
|
34785
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34786
|
+
:rtype: str
|
|
34787
|
+
"""
|
|
34788
|
+
return self._Method
|
|
34789
|
+
|
|
34790
|
+
@Method.setter
|
|
34791
|
+
def Method(self, Method):
|
|
34792
|
+
self._Method = Method
|
|
34793
|
+
|
|
34794
|
+
@property
|
|
34795
|
+
def Type(self):
|
|
34796
|
+
r"""匹配方式,支持EXACT(等于), REGEX(正则) , IN(属于) , NOT_IN(不属于), CONTAINS(包含), NOT_CONTAINS(不包含)
|
|
34797
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34798
|
+
:rtype: str
|
|
34799
|
+
"""
|
|
34800
|
+
return self._Type
|
|
34801
|
+
|
|
34802
|
+
@Type.setter
|
|
34803
|
+
def Type(self, Type):
|
|
34804
|
+
self._Type = Type
|
|
34805
|
+
|
|
34806
|
+
|
|
34807
|
+
def _deserialize(self, params):
|
|
34808
|
+
self._Method = params.get("Method")
|
|
34809
|
+
self._Type = params.get("Type")
|
|
34810
|
+
memeber_set = set(params.keys())
|
|
34811
|
+
for name, value in vars(self).items():
|
|
34812
|
+
property_name = name[1:]
|
|
34813
|
+
if property_name in memeber_set:
|
|
34814
|
+
memeber_set.remove(property_name)
|
|
34815
|
+
if len(memeber_set) > 0:
|
|
34816
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
34817
|
+
|
|
34818
|
+
|
|
34819
|
+
|
|
34820
|
+
class LimitPath(AbstractModel):
|
|
34821
|
+
r"""限流Path
|
|
34822
|
+
|
|
34823
|
+
"""
|
|
34824
|
+
|
|
34825
|
+
def __init__(self):
|
|
34826
|
+
r"""
|
|
34827
|
+
:param _Path: 限流路径
|
|
34828
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34829
|
+
:type Path: str
|
|
34830
|
+
:param _Type: 匹配方式
|
|
34831
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34832
|
+
:type Type: str
|
|
34833
|
+
"""
|
|
34834
|
+
self._Path = None
|
|
34835
|
+
self._Type = None
|
|
34836
|
+
|
|
34837
|
+
@property
|
|
34838
|
+
def Path(self):
|
|
34839
|
+
r"""限流路径
|
|
34840
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34841
|
+
:rtype: str
|
|
34842
|
+
"""
|
|
34843
|
+
return self._Path
|
|
34844
|
+
|
|
34845
|
+
@Path.setter
|
|
34846
|
+
def Path(self, Path):
|
|
34847
|
+
self._Path = Path
|
|
34848
|
+
|
|
34849
|
+
@property
|
|
34850
|
+
def Type(self):
|
|
34851
|
+
r"""匹配方式
|
|
34852
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34853
|
+
:rtype: str
|
|
34854
|
+
"""
|
|
34855
|
+
return self._Type
|
|
34856
|
+
|
|
34857
|
+
@Type.setter
|
|
34858
|
+
def Type(self, Type):
|
|
34859
|
+
self._Type = Type
|
|
34860
|
+
|
|
34861
|
+
|
|
34862
|
+
def _deserialize(self, params):
|
|
34863
|
+
self._Path = params.get("Path")
|
|
34864
|
+
self._Type = params.get("Type")
|
|
34865
|
+
memeber_set = set(params.keys())
|
|
34866
|
+
for name, value in vars(self).items():
|
|
34867
|
+
property_name = name[1:]
|
|
34868
|
+
if property_name in memeber_set:
|
|
34869
|
+
memeber_set.remove(property_name)
|
|
34870
|
+
if len(memeber_set) > 0:
|
|
34871
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
34872
|
+
|
|
34873
|
+
|
|
34874
|
+
|
|
34875
|
+
class LimitRuleV2(AbstractModel):
|
|
34876
|
+
r"""自研版限流规则数据结构
|
|
34877
|
+
|
|
34878
|
+
"""
|
|
34879
|
+
|
|
34880
|
+
def __init__(self):
|
|
34881
|
+
r"""
|
|
34882
|
+
:param _LimitRuleID: 规则ID
|
|
34883
|
+
:type LimitRuleID: int
|
|
34884
|
+
:param _Name: 规则名
|
|
34885
|
+
:type Name: str
|
|
34886
|
+
:param _Priority: 优先级
|
|
34887
|
+
:type Priority: int
|
|
34888
|
+
:param _Status: 规则开关,0表示关闭,1表示开启
|
|
34889
|
+
:type Status: int
|
|
34890
|
+
:param _TsVersion: 时间戳
|
|
34891
|
+
:type TsVersion: int
|
|
34892
|
+
:param _LimitObject: 限流对象,API或Domain
|
|
34893
|
+
:type LimitObject: str
|
|
34894
|
+
:param _LimitMethod: 限流方法名
|
|
34895
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34896
|
+
:type LimitMethod: :class:`tencentcloud.waf.v20180125.models.LimitMethod`
|
|
34897
|
+
:param _LimitPaths: 路径
|
|
34898
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34899
|
+
:type LimitPaths: :class:`tencentcloud.waf.v20180125.models.LimitPath`
|
|
34900
|
+
:param _LimitHeaders: Header参数
|
|
34901
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34902
|
+
:type LimitHeaders: list of LimitHeader
|
|
34903
|
+
:param _LimitWindow: 限流窗口
|
|
34904
|
+
:type LimitWindow: :class:`tencentcloud.waf.v20180125.models.LimitWindow`
|
|
34905
|
+
:param _LimitStrategy: 限流策略,0:观察,1:拦截,2:人机
|
|
34906
|
+
:type LimitStrategy: int
|
|
34907
|
+
:param _LimitHeaderName: Header参数名
|
|
34908
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34909
|
+
:type LimitHeaderName: :class:`tencentcloud.waf.v20180125.models.LimitHeaderName`
|
|
34910
|
+
:param _GetParamsName: Get参数名
|
|
34911
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34912
|
+
:type GetParamsName: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
34913
|
+
:param _GetParamsValue: Get参数值
|
|
34914
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34915
|
+
:type GetParamsValue: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
34916
|
+
:param _PostParamsName: Post参数名
|
|
34917
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34918
|
+
:type PostParamsName: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
34919
|
+
:param _PostParamsValue: Post参数值
|
|
34920
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34921
|
+
:type PostParamsValue: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
34922
|
+
:param _IpLocation: Ip属地
|
|
34923
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34924
|
+
:type IpLocation: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
34925
|
+
:param _RedirectInfo: 重定向信息,当LimitStrategy为2时,此字段不为空
|
|
34926
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34927
|
+
:type RedirectInfo: :class:`tencentcloud.waf.v20180125.models.RedirectInfo`
|
|
34928
|
+
:param _BlockPage: 拦截页面,0表示429,否则为BlockPageID
|
|
34929
|
+
:type BlockPage: int
|
|
34930
|
+
:param _ObjectSrc: 限流对象来源,0:手动填写,1:API资产
|
|
34931
|
+
:type ObjectSrc: int
|
|
34932
|
+
:param _QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
34933
|
+
:type QuotaShare: bool
|
|
34934
|
+
:param _PathsOption: 路径选项,可配置每个路径的请求方法
|
|
34935
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
34936
|
+
:type PathsOption: list of PathItem
|
|
34937
|
+
:param _Order: 574新增需求,限流执行顺序,0:默认情况,限流优先,1:安全防护优先
|
|
34938
|
+
:type Order: int
|
|
34939
|
+
"""
|
|
34940
|
+
self._LimitRuleID = None
|
|
34941
|
+
self._Name = None
|
|
34942
|
+
self._Priority = None
|
|
34943
|
+
self._Status = None
|
|
34944
|
+
self._TsVersion = None
|
|
34945
|
+
self._LimitObject = None
|
|
34946
|
+
self._LimitMethod = None
|
|
34947
|
+
self._LimitPaths = None
|
|
34948
|
+
self._LimitHeaders = None
|
|
34949
|
+
self._LimitWindow = None
|
|
34950
|
+
self._LimitStrategy = None
|
|
34951
|
+
self._LimitHeaderName = None
|
|
34952
|
+
self._GetParamsName = None
|
|
34953
|
+
self._GetParamsValue = None
|
|
34954
|
+
self._PostParamsName = None
|
|
34955
|
+
self._PostParamsValue = None
|
|
34956
|
+
self._IpLocation = None
|
|
34957
|
+
self._RedirectInfo = None
|
|
34958
|
+
self._BlockPage = None
|
|
34959
|
+
self._ObjectSrc = None
|
|
34960
|
+
self._QuotaShare = None
|
|
34961
|
+
self._PathsOption = None
|
|
34962
|
+
self._Order = None
|
|
34963
|
+
|
|
34964
|
+
@property
|
|
34965
|
+
def LimitRuleID(self):
|
|
34966
|
+
r"""规则ID
|
|
34967
|
+
:rtype: int
|
|
34968
|
+
"""
|
|
34969
|
+
return self._LimitRuleID
|
|
34970
|
+
|
|
34971
|
+
@LimitRuleID.setter
|
|
34972
|
+
def LimitRuleID(self, LimitRuleID):
|
|
34973
|
+
self._LimitRuleID = LimitRuleID
|
|
34974
|
+
|
|
34975
|
+
@property
|
|
34976
|
+
def Name(self):
|
|
34977
|
+
r"""规则名
|
|
34978
|
+
:rtype: str
|
|
34979
|
+
"""
|
|
34980
|
+
return self._Name
|
|
34981
|
+
|
|
34982
|
+
@Name.setter
|
|
34983
|
+
def Name(self, Name):
|
|
34984
|
+
self._Name = Name
|
|
34985
|
+
|
|
34986
|
+
@property
|
|
34987
|
+
def Priority(self):
|
|
34988
|
+
r"""优先级
|
|
34989
|
+
:rtype: int
|
|
34990
|
+
"""
|
|
34991
|
+
return self._Priority
|
|
34992
|
+
|
|
34993
|
+
@Priority.setter
|
|
34994
|
+
def Priority(self, Priority):
|
|
34995
|
+
self._Priority = Priority
|
|
34996
|
+
|
|
34997
|
+
@property
|
|
34998
|
+
def Status(self):
|
|
34999
|
+
r"""规则开关,0表示关闭,1表示开启
|
|
35000
|
+
:rtype: int
|
|
35001
|
+
"""
|
|
35002
|
+
return self._Status
|
|
35003
|
+
|
|
35004
|
+
@Status.setter
|
|
35005
|
+
def Status(self, Status):
|
|
35006
|
+
self._Status = Status
|
|
35007
|
+
|
|
35008
|
+
@property
|
|
35009
|
+
def TsVersion(self):
|
|
35010
|
+
r"""时间戳
|
|
35011
|
+
:rtype: int
|
|
35012
|
+
"""
|
|
35013
|
+
return self._TsVersion
|
|
35014
|
+
|
|
35015
|
+
@TsVersion.setter
|
|
35016
|
+
def TsVersion(self, TsVersion):
|
|
35017
|
+
self._TsVersion = TsVersion
|
|
35018
|
+
|
|
35019
|
+
@property
|
|
35020
|
+
def LimitObject(self):
|
|
35021
|
+
r"""限流对象,API或Domain
|
|
35022
|
+
:rtype: str
|
|
35023
|
+
"""
|
|
35024
|
+
return self._LimitObject
|
|
35025
|
+
|
|
35026
|
+
@LimitObject.setter
|
|
35027
|
+
def LimitObject(self, LimitObject):
|
|
35028
|
+
self._LimitObject = LimitObject
|
|
35029
|
+
|
|
35030
|
+
@property
|
|
35031
|
+
def LimitMethod(self):
|
|
35032
|
+
r"""限流方法名
|
|
35033
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35034
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitMethod`
|
|
35035
|
+
"""
|
|
35036
|
+
return self._LimitMethod
|
|
35037
|
+
|
|
35038
|
+
@LimitMethod.setter
|
|
35039
|
+
def LimitMethod(self, LimitMethod):
|
|
35040
|
+
self._LimitMethod = LimitMethod
|
|
35041
|
+
|
|
35042
|
+
@property
|
|
35043
|
+
def LimitPaths(self):
|
|
35044
|
+
r"""路径
|
|
35045
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35046
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitPath`
|
|
35047
|
+
"""
|
|
35048
|
+
return self._LimitPaths
|
|
35049
|
+
|
|
35050
|
+
@LimitPaths.setter
|
|
35051
|
+
def LimitPaths(self, LimitPaths):
|
|
35052
|
+
self._LimitPaths = LimitPaths
|
|
35053
|
+
|
|
35054
|
+
@property
|
|
35055
|
+
def LimitHeaders(self):
|
|
35056
|
+
r"""Header参数
|
|
35057
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35058
|
+
:rtype: list of LimitHeader
|
|
35059
|
+
"""
|
|
35060
|
+
return self._LimitHeaders
|
|
35061
|
+
|
|
35062
|
+
@LimitHeaders.setter
|
|
35063
|
+
def LimitHeaders(self, LimitHeaders):
|
|
35064
|
+
self._LimitHeaders = LimitHeaders
|
|
35065
|
+
|
|
35066
|
+
@property
|
|
35067
|
+
def LimitWindow(self):
|
|
35068
|
+
r"""限流窗口
|
|
35069
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitWindow`
|
|
35070
|
+
"""
|
|
35071
|
+
return self._LimitWindow
|
|
35072
|
+
|
|
35073
|
+
@LimitWindow.setter
|
|
35074
|
+
def LimitWindow(self, LimitWindow):
|
|
35075
|
+
self._LimitWindow = LimitWindow
|
|
35076
|
+
|
|
35077
|
+
@property
|
|
35078
|
+
def LimitStrategy(self):
|
|
35079
|
+
r"""限流策略,0:观察,1:拦截,2:人机
|
|
35080
|
+
:rtype: int
|
|
35081
|
+
"""
|
|
35082
|
+
return self._LimitStrategy
|
|
35083
|
+
|
|
35084
|
+
@LimitStrategy.setter
|
|
35085
|
+
def LimitStrategy(self, LimitStrategy):
|
|
35086
|
+
self._LimitStrategy = LimitStrategy
|
|
35087
|
+
|
|
35088
|
+
@property
|
|
35089
|
+
def LimitHeaderName(self):
|
|
35090
|
+
r"""Header参数名
|
|
35091
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35092
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitHeaderName`
|
|
35093
|
+
"""
|
|
35094
|
+
return self._LimitHeaderName
|
|
35095
|
+
|
|
35096
|
+
@LimitHeaderName.setter
|
|
35097
|
+
def LimitHeaderName(self, LimitHeaderName):
|
|
35098
|
+
self._LimitHeaderName = LimitHeaderName
|
|
35099
|
+
|
|
35100
|
+
@property
|
|
35101
|
+
def GetParamsName(self):
|
|
35102
|
+
r"""Get参数名
|
|
35103
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35104
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
35105
|
+
"""
|
|
35106
|
+
return self._GetParamsName
|
|
35107
|
+
|
|
35108
|
+
@GetParamsName.setter
|
|
35109
|
+
def GetParamsName(self, GetParamsName):
|
|
35110
|
+
self._GetParamsName = GetParamsName
|
|
35111
|
+
|
|
35112
|
+
@property
|
|
35113
|
+
def GetParamsValue(self):
|
|
35114
|
+
r"""Get参数值
|
|
35115
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35116
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
35117
|
+
"""
|
|
35118
|
+
return self._GetParamsValue
|
|
35119
|
+
|
|
35120
|
+
@GetParamsValue.setter
|
|
35121
|
+
def GetParamsValue(self, GetParamsValue):
|
|
35122
|
+
self._GetParamsValue = GetParamsValue
|
|
35123
|
+
|
|
35124
|
+
@property
|
|
35125
|
+
def PostParamsName(self):
|
|
35126
|
+
r"""Post参数名
|
|
35127
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35128
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
35129
|
+
"""
|
|
35130
|
+
return self._PostParamsName
|
|
35131
|
+
|
|
35132
|
+
@PostParamsName.setter
|
|
35133
|
+
def PostParamsName(self, PostParamsName):
|
|
35134
|
+
self._PostParamsName = PostParamsName
|
|
35135
|
+
|
|
35136
|
+
@property
|
|
35137
|
+
def PostParamsValue(self):
|
|
35138
|
+
r"""Post参数值
|
|
35139
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35140
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
35141
|
+
"""
|
|
35142
|
+
return self._PostParamsValue
|
|
35143
|
+
|
|
35144
|
+
@PostParamsValue.setter
|
|
35145
|
+
def PostParamsValue(self, PostParamsValue):
|
|
35146
|
+
self._PostParamsValue = PostParamsValue
|
|
35147
|
+
|
|
35148
|
+
@property
|
|
35149
|
+
def IpLocation(self):
|
|
35150
|
+
r"""Ip属地
|
|
35151
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35152
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
35153
|
+
"""
|
|
35154
|
+
return self._IpLocation
|
|
35155
|
+
|
|
35156
|
+
@IpLocation.setter
|
|
35157
|
+
def IpLocation(self, IpLocation):
|
|
35158
|
+
self._IpLocation = IpLocation
|
|
35159
|
+
|
|
35160
|
+
@property
|
|
35161
|
+
def RedirectInfo(self):
|
|
35162
|
+
r"""重定向信息,当LimitStrategy为2时,此字段不为空
|
|
35163
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35164
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RedirectInfo`
|
|
35165
|
+
"""
|
|
35166
|
+
return self._RedirectInfo
|
|
35167
|
+
|
|
35168
|
+
@RedirectInfo.setter
|
|
35169
|
+
def RedirectInfo(self, RedirectInfo):
|
|
35170
|
+
self._RedirectInfo = RedirectInfo
|
|
35171
|
+
|
|
35172
|
+
@property
|
|
35173
|
+
def BlockPage(self):
|
|
35174
|
+
r"""拦截页面,0表示429,否则为BlockPageID
|
|
35175
|
+
:rtype: int
|
|
35176
|
+
"""
|
|
35177
|
+
return self._BlockPage
|
|
35178
|
+
|
|
35179
|
+
@BlockPage.setter
|
|
35180
|
+
def BlockPage(self, BlockPage):
|
|
35181
|
+
self._BlockPage = BlockPage
|
|
35182
|
+
|
|
35183
|
+
@property
|
|
35184
|
+
def ObjectSrc(self):
|
|
35185
|
+
r"""限流对象来源,0:手动填写,1:API资产
|
|
35186
|
+
:rtype: int
|
|
35187
|
+
"""
|
|
35188
|
+
return self._ObjectSrc
|
|
35189
|
+
|
|
35190
|
+
@ObjectSrc.setter
|
|
35191
|
+
def ObjectSrc(self, ObjectSrc):
|
|
35192
|
+
self._ObjectSrc = ObjectSrc
|
|
35193
|
+
|
|
35194
|
+
@property
|
|
35195
|
+
def QuotaShare(self):
|
|
35196
|
+
r"""是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
35197
|
+
:rtype: bool
|
|
35198
|
+
"""
|
|
35199
|
+
return self._QuotaShare
|
|
35200
|
+
|
|
35201
|
+
@QuotaShare.setter
|
|
35202
|
+
def QuotaShare(self, QuotaShare):
|
|
35203
|
+
self._QuotaShare = QuotaShare
|
|
35204
|
+
|
|
35205
|
+
@property
|
|
35206
|
+
def PathsOption(self):
|
|
35207
|
+
r"""路径选项,可配置每个路径的请求方法
|
|
35208
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35209
|
+
:rtype: list of PathItem
|
|
35210
|
+
"""
|
|
35211
|
+
return self._PathsOption
|
|
35212
|
+
|
|
35213
|
+
@PathsOption.setter
|
|
35214
|
+
def PathsOption(self, PathsOption):
|
|
35215
|
+
self._PathsOption = PathsOption
|
|
35216
|
+
|
|
35217
|
+
@property
|
|
35218
|
+
def Order(self):
|
|
35219
|
+
r"""574新增需求,限流执行顺序,0:默认情况,限流优先,1:安全防护优先
|
|
35220
|
+
:rtype: int
|
|
35221
|
+
"""
|
|
35222
|
+
return self._Order
|
|
35223
|
+
|
|
35224
|
+
@Order.setter
|
|
35225
|
+
def Order(self, Order):
|
|
35226
|
+
self._Order = Order
|
|
35227
|
+
|
|
35228
|
+
|
|
35229
|
+
def _deserialize(self, params):
|
|
35230
|
+
self._LimitRuleID = params.get("LimitRuleID")
|
|
35231
|
+
self._Name = params.get("Name")
|
|
35232
|
+
self._Priority = params.get("Priority")
|
|
35233
|
+
self._Status = params.get("Status")
|
|
35234
|
+
self._TsVersion = params.get("TsVersion")
|
|
35235
|
+
self._LimitObject = params.get("LimitObject")
|
|
35236
|
+
if params.get("LimitMethod") is not None:
|
|
35237
|
+
self._LimitMethod = LimitMethod()
|
|
35238
|
+
self._LimitMethod._deserialize(params.get("LimitMethod"))
|
|
35239
|
+
if params.get("LimitPaths") is not None:
|
|
35240
|
+
self._LimitPaths = LimitPath()
|
|
35241
|
+
self._LimitPaths._deserialize(params.get("LimitPaths"))
|
|
35242
|
+
if params.get("LimitHeaders") is not None:
|
|
35243
|
+
self._LimitHeaders = []
|
|
35244
|
+
for item in params.get("LimitHeaders"):
|
|
35245
|
+
obj = LimitHeader()
|
|
35246
|
+
obj._deserialize(item)
|
|
35247
|
+
self._LimitHeaders.append(obj)
|
|
35248
|
+
if params.get("LimitWindow") is not None:
|
|
35249
|
+
self._LimitWindow = LimitWindow()
|
|
35250
|
+
self._LimitWindow._deserialize(params.get("LimitWindow"))
|
|
35251
|
+
self._LimitStrategy = params.get("LimitStrategy")
|
|
35252
|
+
if params.get("LimitHeaderName") is not None:
|
|
35253
|
+
self._LimitHeaderName = LimitHeaderName()
|
|
35254
|
+
self._LimitHeaderName._deserialize(params.get("LimitHeaderName"))
|
|
35255
|
+
if params.get("GetParamsName") is not None:
|
|
35256
|
+
self._GetParamsName = MatchOption()
|
|
35257
|
+
self._GetParamsName._deserialize(params.get("GetParamsName"))
|
|
35258
|
+
if params.get("GetParamsValue") is not None:
|
|
35259
|
+
self._GetParamsValue = MatchOption()
|
|
35260
|
+
self._GetParamsValue._deserialize(params.get("GetParamsValue"))
|
|
35261
|
+
if params.get("PostParamsName") is not None:
|
|
35262
|
+
self._PostParamsName = MatchOption()
|
|
35263
|
+
self._PostParamsName._deserialize(params.get("PostParamsName"))
|
|
35264
|
+
if params.get("PostParamsValue") is not None:
|
|
35265
|
+
self._PostParamsValue = MatchOption()
|
|
35266
|
+
self._PostParamsValue._deserialize(params.get("PostParamsValue"))
|
|
35267
|
+
if params.get("IpLocation") is not None:
|
|
35268
|
+
self._IpLocation = MatchOption()
|
|
35269
|
+
self._IpLocation._deserialize(params.get("IpLocation"))
|
|
35270
|
+
if params.get("RedirectInfo") is not None:
|
|
35271
|
+
self._RedirectInfo = RedirectInfo()
|
|
35272
|
+
self._RedirectInfo._deserialize(params.get("RedirectInfo"))
|
|
35273
|
+
self._BlockPage = params.get("BlockPage")
|
|
35274
|
+
self._ObjectSrc = params.get("ObjectSrc")
|
|
35275
|
+
self._QuotaShare = params.get("QuotaShare")
|
|
35276
|
+
if params.get("PathsOption") is not None:
|
|
35277
|
+
self._PathsOption = []
|
|
35278
|
+
for item in params.get("PathsOption"):
|
|
35279
|
+
obj = PathItem()
|
|
35280
|
+
obj._deserialize(item)
|
|
35281
|
+
self._PathsOption.append(obj)
|
|
35282
|
+
self._Order = params.get("Order")
|
|
35283
|
+
memeber_set = set(params.keys())
|
|
35284
|
+
for name, value in vars(self).items():
|
|
35285
|
+
property_name = name[1:]
|
|
35286
|
+
if property_name in memeber_set:
|
|
35287
|
+
memeber_set.remove(property_name)
|
|
35288
|
+
if len(memeber_set) > 0:
|
|
35289
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
35290
|
+
|
|
35291
|
+
|
|
35292
|
+
|
|
35293
|
+
class LimitWindow(AbstractModel):
|
|
35294
|
+
r"""限流窗口大小
|
|
35295
|
+
|
|
35296
|
+
"""
|
|
35297
|
+
|
|
35298
|
+
def __init__(self):
|
|
35299
|
+
r"""
|
|
35300
|
+
:param _Second: 每秒允许通过的最大请求数
|
|
35301
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35302
|
+
:type Second: int
|
|
35303
|
+
:param _Minute: 每分钟允许通过的最大请求数
|
|
35304
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35305
|
+
:type Minute: int
|
|
35306
|
+
:param _Hour: 每小时允许通过的最大请求数
|
|
35307
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35308
|
+
:type Hour: int
|
|
35309
|
+
:param _QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
35310
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35311
|
+
:type QuotaShare: bool
|
|
35312
|
+
"""
|
|
35313
|
+
self._Second = None
|
|
35314
|
+
self._Minute = None
|
|
35315
|
+
self._Hour = None
|
|
35316
|
+
self._QuotaShare = None
|
|
35317
|
+
|
|
35318
|
+
@property
|
|
35319
|
+
def Second(self):
|
|
35320
|
+
r"""每秒允许通过的最大请求数
|
|
35321
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35322
|
+
:rtype: int
|
|
35323
|
+
"""
|
|
35324
|
+
return self._Second
|
|
35325
|
+
|
|
35326
|
+
@Second.setter
|
|
35327
|
+
def Second(self, Second):
|
|
35328
|
+
self._Second = Second
|
|
35329
|
+
|
|
35330
|
+
@property
|
|
35331
|
+
def Minute(self):
|
|
35332
|
+
r"""每分钟允许通过的最大请求数
|
|
35333
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35334
|
+
:rtype: int
|
|
35335
|
+
"""
|
|
35336
|
+
return self._Minute
|
|
35337
|
+
|
|
35338
|
+
@Minute.setter
|
|
35339
|
+
def Minute(self, Minute):
|
|
35340
|
+
self._Minute = Minute
|
|
35341
|
+
|
|
35342
|
+
@property
|
|
35343
|
+
def Hour(self):
|
|
35344
|
+
r"""每小时允许通过的最大请求数
|
|
35345
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35346
|
+
:rtype: int
|
|
35347
|
+
"""
|
|
35348
|
+
return self._Hour
|
|
35349
|
+
|
|
35350
|
+
@Hour.setter
|
|
35351
|
+
def Hour(self, Hour):
|
|
35352
|
+
self._Hour = Hour
|
|
35353
|
+
|
|
35354
|
+
@property
|
|
35355
|
+
def QuotaShare(self):
|
|
35356
|
+
r"""是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
35357
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
35358
|
+
:rtype: bool
|
|
35359
|
+
"""
|
|
35360
|
+
return self._QuotaShare
|
|
35361
|
+
|
|
35362
|
+
@QuotaShare.setter
|
|
35363
|
+
def QuotaShare(self, QuotaShare):
|
|
35364
|
+
self._QuotaShare = QuotaShare
|
|
35365
|
+
|
|
35366
|
+
|
|
35367
|
+
def _deserialize(self, params):
|
|
35368
|
+
self._Second = params.get("Second")
|
|
35369
|
+
self._Minute = params.get("Minute")
|
|
35370
|
+
self._Hour = params.get("Hour")
|
|
35371
|
+
self._QuotaShare = params.get("QuotaShare")
|
|
35372
|
+
memeber_set = set(params.keys())
|
|
35373
|
+
for name, value in vars(self).items():
|
|
35374
|
+
property_name = name[1:]
|
|
35375
|
+
if property_name in memeber_set:
|
|
35376
|
+
memeber_set.remove(property_name)
|
|
35377
|
+
if len(memeber_set) > 0:
|
|
35378
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
35379
|
+
|
|
35380
|
+
|
|
35381
|
+
|
|
32656
35382
|
class LoadBalancer(AbstractModel):
|
|
32657
35383
|
r"""负载均衡的监听器
|
|
32658
35384
|
|
|
@@ -33777,6 +36503,78 @@ class MajorEventsProPkg(AbstractModel):
|
|
|
33777
36503
|
|
|
33778
36504
|
|
|
33779
36505
|
|
|
36506
|
+
class MatchOption(AbstractModel):
|
|
36507
|
+
r"""限流规则中匹配条件
|
|
36508
|
+
|
|
36509
|
+
"""
|
|
36510
|
+
|
|
36511
|
+
def __init__(self):
|
|
36512
|
+
r"""
|
|
36513
|
+
:param _Params: 匹配参数
|
|
36514
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
36515
|
+
:type Params: str
|
|
36516
|
+
:param _Func: 逻辑符号
|
|
36517
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
36518
|
+
:type Func: str
|
|
36519
|
+
:param _Content: 匹配内容
|
|
36520
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
36521
|
+
:type Content: str
|
|
36522
|
+
"""
|
|
36523
|
+
self._Params = None
|
|
36524
|
+
self._Func = None
|
|
36525
|
+
self._Content = None
|
|
36526
|
+
|
|
36527
|
+
@property
|
|
36528
|
+
def Params(self):
|
|
36529
|
+
r"""匹配参数
|
|
36530
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
36531
|
+
:rtype: str
|
|
36532
|
+
"""
|
|
36533
|
+
return self._Params
|
|
36534
|
+
|
|
36535
|
+
@Params.setter
|
|
36536
|
+
def Params(self, Params):
|
|
36537
|
+
self._Params = Params
|
|
36538
|
+
|
|
36539
|
+
@property
|
|
36540
|
+
def Func(self):
|
|
36541
|
+
r"""逻辑符号
|
|
36542
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
36543
|
+
:rtype: str
|
|
36544
|
+
"""
|
|
36545
|
+
return self._Func
|
|
36546
|
+
|
|
36547
|
+
@Func.setter
|
|
36548
|
+
def Func(self, Func):
|
|
36549
|
+
self._Func = Func
|
|
36550
|
+
|
|
36551
|
+
@property
|
|
36552
|
+
def Content(self):
|
|
36553
|
+
r"""匹配内容
|
|
36554
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
36555
|
+
:rtype: str
|
|
36556
|
+
"""
|
|
36557
|
+
return self._Content
|
|
36558
|
+
|
|
36559
|
+
@Content.setter
|
|
36560
|
+
def Content(self, Content):
|
|
36561
|
+
self._Content = Content
|
|
36562
|
+
|
|
36563
|
+
|
|
36564
|
+
def _deserialize(self, params):
|
|
36565
|
+
self._Params = params.get("Params")
|
|
36566
|
+
self._Func = params.get("Func")
|
|
36567
|
+
self._Content = params.get("Content")
|
|
36568
|
+
memeber_set = set(params.keys())
|
|
36569
|
+
for name, value in vars(self).items():
|
|
36570
|
+
property_name = name[1:]
|
|
36571
|
+
if property_name in memeber_set:
|
|
36572
|
+
memeber_set.remove(property_name)
|
|
36573
|
+
if len(memeber_set) > 0:
|
|
36574
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
36575
|
+
|
|
36576
|
+
|
|
36577
|
+
|
|
33780
36578
|
class MiniExtendPkg(AbstractModel):
|
|
33781
36579
|
r"""小程序安全接入ID扩展资源信息
|
|
33782
36580
|
|
|
@@ -34818,6 +37616,260 @@ class ModifyApiSecEventChangeResponse(AbstractModel):
|
|
|
34818
37616
|
self._RequestId = params.get("RequestId")
|
|
34819
37617
|
|
|
34820
37618
|
|
|
37619
|
+
class ModifyApiSecSensitiveRuleRequest(AbstractModel):
|
|
37620
|
+
r"""ModifyApiSecSensitiveRule请求参数结构体
|
|
37621
|
+
|
|
37622
|
+
"""
|
|
37623
|
+
|
|
37624
|
+
def __init__(self):
|
|
37625
|
+
r"""
|
|
37626
|
+
:param _Domain: 域名
|
|
37627
|
+
:type Domain: str
|
|
37628
|
+
:param _Status: 1表示开,0表示关,3表示删除
|
|
37629
|
+
:type Status: int
|
|
37630
|
+
:param _RuleName: 规则名称
|
|
37631
|
+
:type RuleName: str
|
|
37632
|
+
:param _CustomRule: 客户自定义配置
|
|
37633
|
+
:type CustomRule: :class:`tencentcloud.waf.v20180125.models.ApiSecCustomSensitiveRule`
|
|
37634
|
+
:param _RuleNameList: rulename列表,批量操作的时候填改值
|
|
37635
|
+
:type RuleNameList: list of str
|
|
37636
|
+
:param _CustomApiExtractRule: api提取规则内容
|
|
37637
|
+
:type CustomApiExtractRule: :class:`tencentcloud.waf.v20180125.models.ApiSecExtractRule`
|
|
37638
|
+
:param _ApiExtractRuleName: 批量操作的时候的api提取规则
|
|
37639
|
+
:type ApiExtractRuleName: list of str
|
|
37640
|
+
:param _ApiSecPrivilegeRule: 自定义api鉴权规则
|
|
37641
|
+
:type ApiSecPrivilegeRule: :class:`tencentcloud.waf.v20180125.models.ApiSecPrivilegeRule`
|
|
37642
|
+
:param _ApiSecPrivilegeRuleName: 匹配操作时候的api鉴权规则
|
|
37643
|
+
:type ApiSecPrivilegeRuleName: list of str
|
|
37644
|
+
:param _ApiSecSceneRuleNameList: 批量操作的时候的自定义场景列表
|
|
37645
|
+
:type ApiSecSceneRuleNameList: list of str
|
|
37646
|
+
:param _ApiSecSceneRule: 单条自定义api场景规则
|
|
37647
|
+
:type ApiSecSceneRule: :class:`tencentcloud.waf.v20180125.models.ApiSecSceneRule`
|
|
37648
|
+
:param _ApiSecCustomEventRuleNameList: 批量操作的时候的自定义事件规则列表
|
|
37649
|
+
:type ApiSecCustomEventRuleNameList: list of str
|
|
37650
|
+
:param _ApiSecCustomEventRuleRule: 自定义事件规则
|
|
37651
|
+
:type ApiSecCustomEventRuleRule: :class:`tencentcloud.waf.v20180125.models.ApiSecCustomEventRule`
|
|
37652
|
+
"""
|
|
37653
|
+
self._Domain = None
|
|
37654
|
+
self._Status = None
|
|
37655
|
+
self._RuleName = None
|
|
37656
|
+
self._CustomRule = None
|
|
37657
|
+
self._RuleNameList = None
|
|
37658
|
+
self._CustomApiExtractRule = None
|
|
37659
|
+
self._ApiExtractRuleName = None
|
|
37660
|
+
self._ApiSecPrivilegeRule = None
|
|
37661
|
+
self._ApiSecPrivilegeRuleName = None
|
|
37662
|
+
self._ApiSecSceneRuleNameList = None
|
|
37663
|
+
self._ApiSecSceneRule = None
|
|
37664
|
+
self._ApiSecCustomEventRuleNameList = None
|
|
37665
|
+
self._ApiSecCustomEventRuleRule = None
|
|
37666
|
+
|
|
37667
|
+
@property
|
|
37668
|
+
def Domain(self):
|
|
37669
|
+
r"""域名
|
|
37670
|
+
:rtype: str
|
|
37671
|
+
"""
|
|
37672
|
+
return self._Domain
|
|
37673
|
+
|
|
37674
|
+
@Domain.setter
|
|
37675
|
+
def Domain(self, Domain):
|
|
37676
|
+
self._Domain = Domain
|
|
37677
|
+
|
|
37678
|
+
@property
|
|
37679
|
+
def Status(self):
|
|
37680
|
+
r"""1表示开,0表示关,3表示删除
|
|
37681
|
+
:rtype: int
|
|
37682
|
+
"""
|
|
37683
|
+
return self._Status
|
|
37684
|
+
|
|
37685
|
+
@Status.setter
|
|
37686
|
+
def Status(self, Status):
|
|
37687
|
+
self._Status = Status
|
|
37688
|
+
|
|
37689
|
+
@property
|
|
37690
|
+
def RuleName(self):
|
|
37691
|
+
r"""规则名称
|
|
37692
|
+
:rtype: str
|
|
37693
|
+
"""
|
|
37694
|
+
return self._RuleName
|
|
37695
|
+
|
|
37696
|
+
@RuleName.setter
|
|
37697
|
+
def RuleName(self, RuleName):
|
|
37698
|
+
self._RuleName = RuleName
|
|
37699
|
+
|
|
37700
|
+
@property
|
|
37701
|
+
def CustomRule(self):
|
|
37702
|
+
r"""客户自定义配置
|
|
37703
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.ApiSecCustomSensitiveRule`
|
|
37704
|
+
"""
|
|
37705
|
+
return self._CustomRule
|
|
37706
|
+
|
|
37707
|
+
@CustomRule.setter
|
|
37708
|
+
def CustomRule(self, CustomRule):
|
|
37709
|
+
self._CustomRule = CustomRule
|
|
37710
|
+
|
|
37711
|
+
@property
|
|
37712
|
+
def RuleNameList(self):
|
|
37713
|
+
r"""rulename列表,批量操作的时候填改值
|
|
37714
|
+
:rtype: list of str
|
|
37715
|
+
"""
|
|
37716
|
+
return self._RuleNameList
|
|
37717
|
+
|
|
37718
|
+
@RuleNameList.setter
|
|
37719
|
+
def RuleNameList(self, RuleNameList):
|
|
37720
|
+
self._RuleNameList = RuleNameList
|
|
37721
|
+
|
|
37722
|
+
@property
|
|
37723
|
+
def CustomApiExtractRule(self):
|
|
37724
|
+
r"""api提取规则内容
|
|
37725
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.ApiSecExtractRule`
|
|
37726
|
+
"""
|
|
37727
|
+
return self._CustomApiExtractRule
|
|
37728
|
+
|
|
37729
|
+
@CustomApiExtractRule.setter
|
|
37730
|
+
def CustomApiExtractRule(self, CustomApiExtractRule):
|
|
37731
|
+
self._CustomApiExtractRule = CustomApiExtractRule
|
|
37732
|
+
|
|
37733
|
+
@property
|
|
37734
|
+
def ApiExtractRuleName(self):
|
|
37735
|
+
r"""批量操作的时候的api提取规则
|
|
37736
|
+
:rtype: list of str
|
|
37737
|
+
"""
|
|
37738
|
+
return self._ApiExtractRuleName
|
|
37739
|
+
|
|
37740
|
+
@ApiExtractRuleName.setter
|
|
37741
|
+
def ApiExtractRuleName(self, ApiExtractRuleName):
|
|
37742
|
+
self._ApiExtractRuleName = ApiExtractRuleName
|
|
37743
|
+
|
|
37744
|
+
@property
|
|
37745
|
+
def ApiSecPrivilegeRule(self):
|
|
37746
|
+
r"""自定义api鉴权规则
|
|
37747
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.ApiSecPrivilegeRule`
|
|
37748
|
+
"""
|
|
37749
|
+
return self._ApiSecPrivilegeRule
|
|
37750
|
+
|
|
37751
|
+
@ApiSecPrivilegeRule.setter
|
|
37752
|
+
def ApiSecPrivilegeRule(self, ApiSecPrivilegeRule):
|
|
37753
|
+
self._ApiSecPrivilegeRule = ApiSecPrivilegeRule
|
|
37754
|
+
|
|
37755
|
+
@property
|
|
37756
|
+
def ApiSecPrivilegeRuleName(self):
|
|
37757
|
+
r"""匹配操作时候的api鉴权规则
|
|
37758
|
+
:rtype: list of str
|
|
37759
|
+
"""
|
|
37760
|
+
return self._ApiSecPrivilegeRuleName
|
|
37761
|
+
|
|
37762
|
+
@ApiSecPrivilegeRuleName.setter
|
|
37763
|
+
def ApiSecPrivilegeRuleName(self, ApiSecPrivilegeRuleName):
|
|
37764
|
+
self._ApiSecPrivilegeRuleName = ApiSecPrivilegeRuleName
|
|
37765
|
+
|
|
37766
|
+
@property
|
|
37767
|
+
def ApiSecSceneRuleNameList(self):
|
|
37768
|
+
r"""批量操作的时候的自定义场景列表
|
|
37769
|
+
:rtype: list of str
|
|
37770
|
+
"""
|
|
37771
|
+
return self._ApiSecSceneRuleNameList
|
|
37772
|
+
|
|
37773
|
+
@ApiSecSceneRuleNameList.setter
|
|
37774
|
+
def ApiSecSceneRuleNameList(self, ApiSecSceneRuleNameList):
|
|
37775
|
+
self._ApiSecSceneRuleNameList = ApiSecSceneRuleNameList
|
|
37776
|
+
|
|
37777
|
+
@property
|
|
37778
|
+
def ApiSecSceneRule(self):
|
|
37779
|
+
r"""单条自定义api场景规则
|
|
37780
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.ApiSecSceneRule`
|
|
37781
|
+
"""
|
|
37782
|
+
return self._ApiSecSceneRule
|
|
37783
|
+
|
|
37784
|
+
@ApiSecSceneRule.setter
|
|
37785
|
+
def ApiSecSceneRule(self, ApiSecSceneRule):
|
|
37786
|
+
self._ApiSecSceneRule = ApiSecSceneRule
|
|
37787
|
+
|
|
37788
|
+
@property
|
|
37789
|
+
def ApiSecCustomEventRuleNameList(self):
|
|
37790
|
+
r"""批量操作的时候的自定义事件规则列表
|
|
37791
|
+
:rtype: list of str
|
|
37792
|
+
"""
|
|
37793
|
+
return self._ApiSecCustomEventRuleNameList
|
|
37794
|
+
|
|
37795
|
+
@ApiSecCustomEventRuleNameList.setter
|
|
37796
|
+
def ApiSecCustomEventRuleNameList(self, ApiSecCustomEventRuleNameList):
|
|
37797
|
+
self._ApiSecCustomEventRuleNameList = ApiSecCustomEventRuleNameList
|
|
37798
|
+
|
|
37799
|
+
@property
|
|
37800
|
+
def ApiSecCustomEventRuleRule(self):
|
|
37801
|
+
r"""自定义事件规则
|
|
37802
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.ApiSecCustomEventRule`
|
|
37803
|
+
"""
|
|
37804
|
+
return self._ApiSecCustomEventRuleRule
|
|
37805
|
+
|
|
37806
|
+
@ApiSecCustomEventRuleRule.setter
|
|
37807
|
+
def ApiSecCustomEventRuleRule(self, ApiSecCustomEventRuleRule):
|
|
37808
|
+
self._ApiSecCustomEventRuleRule = ApiSecCustomEventRuleRule
|
|
37809
|
+
|
|
37810
|
+
|
|
37811
|
+
def _deserialize(self, params):
|
|
37812
|
+
self._Domain = params.get("Domain")
|
|
37813
|
+
self._Status = params.get("Status")
|
|
37814
|
+
self._RuleName = params.get("RuleName")
|
|
37815
|
+
if params.get("CustomRule") is not None:
|
|
37816
|
+
self._CustomRule = ApiSecCustomSensitiveRule()
|
|
37817
|
+
self._CustomRule._deserialize(params.get("CustomRule"))
|
|
37818
|
+
self._RuleNameList = params.get("RuleNameList")
|
|
37819
|
+
if params.get("CustomApiExtractRule") is not None:
|
|
37820
|
+
self._CustomApiExtractRule = ApiSecExtractRule()
|
|
37821
|
+
self._CustomApiExtractRule._deserialize(params.get("CustomApiExtractRule"))
|
|
37822
|
+
self._ApiExtractRuleName = params.get("ApiExtractRuleName")
|
|
37823
|
+
if params.get("ApiSecPrivilegeRule") is not None:
|
|
37824
|
+
self._ApiSecPrivilegeRule = ApiSecPrivilegeRule()
|
|
37825
|
+
self._ApiSecPrivilegeRule._deserialize(params.get("ApiSecPrivilegeRule"))
|
|
37826
|
+
self._ApiSecPrivilegeRuleName = params.get("ApiSecPrivilegeRuleName")
|
|
37827
|
+
self._ApiSecSceneRuleNameList = params.get("ApiSecSceneRuleNameList")
|
|
37828
|
+
if params.get("ApiSecSceneRule") is not None:
|
|
37829
|
+
self._ApiSecSceneRule = ApiSecSceneRule()
|
|
37830
|
+
self._ApiSecSceneRule._deserialize(params.get("ApiSecSceneRule"))
|
|
37831
|
+
self._ApiSecCustomEventRuleNameList = params.get("ApiSecCustomEventRuleNameList")
|
|
37832
|
+
if params.get("ApiSecCustomEventRuleRule") is not None:
|
|
37833
|
+
self._ApiSecCustomEventRuleRule = ApiSecCustomEventRule()
|
|
37834
|
+
self._ApiSecCustomEventRuleRule._deserialize(params.get("ApiSecCustomEventRuleRule"))
|
|
37835
|
+
memeber_set = set(params.keys())
|
|
37836
|
+
for name, value in vars(self).items():
|
|
37837
|
+
property_name = name[1:]
|
|
37838
|
+
if property_name in memeber_set:
|
|
37839
|
+
memeber_set.remove(property_name)
|
|
37840
|
+
if len(memeber_set) > 0:
|
|
37841
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
37842
|
+
|
|
37843
|
+
|
|
37844
|
+
|
|
37845
|
+
class ModifyApiSecSensitiveRuleResponse(AbstractModel):
|
|
37846
|
+
r"""ModifyApiSecSensitiveRule返回参数结构体
|
|
37847
|
+
|
|
37848
|
+
"""
|
|
37849
|
+
|
|
37850
|
+
def __init__(self):
|
|
37851
|
+
r"""
|
|
37852
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
37853
|
+
:type RequestId: str
|
|
37854
|
+
"""
|
|
37855
|
+
self._RequestId = None
|
|
37856
|
+
|
|
37857
|
+
@property
|
|
37858
|
+
def RequestId(self):
|
|
37859
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
37860
|
+
:rtype: str
|
|
37861
|
+
"""
|
|
37862
|
+
return self._RequestId
|
|
37863
|
+
|
|
37864
|
+
@RequestId.setter
|
|
37865
|
+
def RequestId(self, RequestId):
|
|
37866
|
+
self._RequestId = RequestId
|
|
37867
|
+
|
|
37868
|
+
|
|
37869
|
+
def _deserialize(self, params):
|
|
37870
|
+
self._RequestId = params.get("RequestId")
|
|
37871
|
+
|
|
37872
|
+
|
|
34821
37873
|
class ModifyAreaBanAreasRequest(AbstractModel):
|
|
34822
37874
|
r"""ModifyAreaBanAreas请求参数结构体
|
|
34823
37875
|
|
|
@@ -35534,6 +38586,180 @@ class ModifyBatchIpAccessControlResponse(AbstractModel):
|
|
|
35534
38586
|
self._RequestId = params.get("RequestId")
|
|
35535
38587
|
|
|
35536
38588
|
|
|
38589
|
+
class ModifyBotIdRuleRequest(AbstractModel):
|
|
38590
|
+
r"""ModifyBotIdRule请求参数结构体
|
|
38591
|
+
|
|
38592
|
+
"""
|
|
38593
|
+
|
|
38594
|
+
def __init__(self):
|
|
38595
|
+
r"""
|
|
38596
|
+
:param _Domain: 域名
|
|
38597
|
+
:type Domain: str
|
|
38598
|
+
:param _SceneId: 场景ID
|
|
38599
|
+
:type SceneId: str
|
|
38600
|
+
:param _Data: 配置信息,支持批量
|
|
38601
|
+
:type Data: list of BotIdConfig
|
|
38602
|
+
:param _GlobalSwitch: 0-全局设置不生效 1-全局开关配置字段生效 2-全局动作配置字段生效 3-全局开关和动作字段都生效 4-只修改全局重定向路径 5-只修改全局防护等级
|
|
38603
|
+
:type GlobalSwitch: int
|
|
38604
|
+
:param _Status: 全局开关
|
|
38605
|
+
:type Status: bool
|
|
38606
|
+
:param _RuleAction: 全局动作
|
|
38607
|
+
:type RuleAction: str
|
|
38608
|
+
:param _GlobalRedirect: 全局重定向路径
|
|
38609
|
+
:type GlobalRedirect: str
|
|
38610
|
+
:param _ProtectLevel: 防护等级:normal-正常;strict-严格
|
|
38611
|
+
:type ProtectLevel: str
|
|
38612
|
+
"""
|
|
38613
|
+
self._Domain = None
|
|
38614
|
+
self._SceneId = None
|
|
38615
|
+
self._Data = None
|
|
38616
|
+
self._GlobalSwitch = None
|
|
38617
|
+
self._Status = None
|
|
38618
|
+
self._RuleAction = None
|
|
38619
|
+
self._GlobalRedirect = None
|
|
38620
|
+
self._ProtectLevel = None
|
|
38621
|
+
|
|
38622
|
+
@property
|
|
38623
|
+
def Domain(self):
|
|
38624
|
+
r"""域名
|
|
38625
|
+
:rtype: str
|
|
38626
|
+
"""
|
|
38627
|
+
return self._Domain
|
|
38628
|
+
|
|
38629
|
+
@Domain.setter
|
|
38630
|
+
def Domain(self, Domain):
|
|
38631
|
+
self._Domain = Domain
|
|
38632
|
+
|
|
38633
|
+
@property
|
|
38634
|
+
def SceneId(self):
|
|
38635
|
+
r"""场景ID
|
|
38636
|
+
:rtype: str
|
|
38637
|
+
"""
|
|
38638
|
+
return self._SceneId
|
|
38639
|
+
|
|
38640
|
+
@SceneId.setter
|
|
38641
|
+
def SceneId(self, SceneId):
|
|
38642
|
+
self._SceneId = SceneId
|
|
38643
|
+
|
|
38644
|
+
@property
|
|
38645
|
+
def Data(self):
|
|
38646
|
+
r"""配置信息,支持批量
|
|
38647
|
+
:rtype: list of BotIdConfig
|
|
38648
|
+
"""
|
|
38649
|
+
return self._Data
|
|
38650
|
+
|
|
38651
|
+
@Data.setter
|
|
38652
|
+
def Data(self, Data):
|
|
38653
|
+
self._Data = Data
|
|
38654
|
+
|
|
38655
|
+
@property
|
|
38656
|
+
def GlobalSwitch(self):
|
|
38657
|
+
r"""0-全局设置不生效 1-全局开关配置字段生效 2-全局动作配置字段生效 3-全局开关和动作字段都生效 4-只修改全局重定向路径 5-只修改全局防护等级
|
|
38658
|
+
:rtype: int
|
|
38659
|
+
"""
|
|
38660
|
+
return self._GlobalSwitch
|
|
38661
|
+
|
|
38662
|
+
@GlobalSwitch.setter
|
|
38663
|
+
def GlobalSwitch(self, GlobalSwitch):
|
|
38664
|
+
self._GlobalSwitch = GlobalSwitch
|
|
38665
|
+
|
|
38666
|
+
@property
|
|
38667
|
+
def Status(self):
|
|
38668
|
+
r"""全局开关
|
|
38669
|
+
:rtype: bool
|
|
38670
|
+
"""
|
|
38671
|
+
return self._Status
|
|
38672
|
+
|
|
38673
|
+
@Status.setter
|
|
38674
|
+
def Status(self, Status):
|
|
38675
|
+
self._Status = Status
|
|
38676
|
+
|
|
38677
|
+
@property
|
|
38678
|
+
def RuleAction(self):
|
|
38679
|
+
r"""全局动作
|
|
38680
|
+
:rtype: str
|
|
38681
|
+
"""
|
|
38682
|
+
return self._RuleAction
|
|
38683
|
+
|
|
38684
|
+
@RuleAction.setter
|
|
38685
|
+
def RuleAction(self, RuleAction):
|
|
38686
|
+
self._RuleAction = RuleAction
|
|
38687
|
+
|
|
38688
|
+
@property
|
|
38689
|
+
def GlobalRedirect(self):
|
|
38690
|
+
r"""全局重定向路径
|
|
38691
|
+
:rtype: str
|
|
38692
|
+
"""
|
|
38693
|
+
return self._GlobalRedirect
|
|
38694
|
+
|
|
38695
|
+
@GlobalRedirect.setter
|
|
38696
|
+
def GlobalRedirect(self, GlobalRedirect):
|
|
38697
|
+
self._GlobalRedirect = GlobalRedirect
|
|
38698
|
+
|
|
38699
|
+
@property
|
|
38700
|
+
def ProtectLevel(self):
|
|
38701
|
+
r"""防护等级:normal-正常;strict-严格
|
|
38702
|
+
:rtype: str
|
|
38703
|
+
"""
|
|
38704
|
+
return self._ProtectLevel
|
|
38705
|
+
|
|
38706
|
+
@ProtectLevel.setter
|
|
38707
|
+
def ProtectLevel(self, ProtectLevel):
|
|
38708
|
+
self._ProtectLevel = ProtectLevel
|
|
38709
|
+
|
|
38710
|
+
|
|
38711
|
+
def _deserialize(self, params):
|
|
38712
|
+
self._Domain = params.get("Domain")
|
|
38713
|
+
self._SceneId = params.get("SceneId")
|
|
38714
|
+
if params.get("Data") is not None:
|
|
38715
|
+
self._Data = []
|
|
38716
|
+
for item in params.get("Data"):
|
|
38717
|
+
obj = BotIdConfig()
|
|
38718
|
+
obj._deserialize(item)
|
|
38719
|
+
self._Data.append(obj)
|
|
38720
|
+
self._GlobalSwitch = params.get("GlobalSwitch")
|
|
38721
|
+
self._Status = params.get("Status")
|
|
38722
|
+
self._RuleAction = params.get("RuleAction")
|
|
38723
|
+
self._GlobalRedirect = params.get("GlobalRedirect")
|
|
38724
|
+
self._ProtectLevel = params.get("ProtectLevel")
|
|
38725
|
+
memeber_set = set(params.keys())
|
|
38726
|
+
for name, value in vars(self).items():
|
|
38727
|
+
property_name = name[1:]
|
|
38728
|
+
if property_name in memeber_set:
|
|
38729
|
+
memeber_set.remove(property_name)
|
|
38730
|
+
if len(memeber_set) > 0:
|
|
38731
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
38732
|
+
|
|
38733
|
+
|
|
38734
|
+
|
|
38735
|
+
class ModifyBotIdRuleResponse(AbstractModel):
|
|
38736
|
+
r"""ModifyBotIdRule返回参数结构体
|
|
38737
|
+
|
|
38738
|
+
"""
|
|
38739
|
+
|
|
38740
|
+
def __init__(self):
|
|
38741
|
+
r"""
|
|
38742
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
38743
|
+
:type RequestId: str
|
|
38744
|
+
"""
|
|
38745
|
+
self._RequestId = None
|
|
38746
|
+
|
|
38747
|
+
@property
|
|
38748
|
+
def RequestId(self):
|
|
38749
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
38750
|
+
:rtype: str
|
|
38751
|
+
"""
|
|
38752
|
+
return self._RequestId
|
|
38753
|
+
|
|
38754
|
+
@RequestId.setter
|
|
38755
|
+
def RequestId(self, RequestId):
|
|
38756
|
+
self._RequestId = RequestId
|
|
38757
|
+
|
|
38758
|
+
|
|
38759
|
+
def _deserialize(self, params):
|
|
38760
|
+
self._RequestId = params.get("RequestId")
|
|
38761
|
+
|
|
38762
|
+
|
|
35537
38763
|
class ModifyBotSceneStatusRequest(AbstractModel):
|
|
35538
38764
|
r"""ModifyBotSceneStatus请求参数结构体
|
|
35539
38765
|
|
|
@@ -42002,6 +45228,57 @@ class ParamCompareList(AbstractModel):
|
|
|
42002
45228
|
|
|
42003
45229
|
|
|
42004
45230
|
|
|
45231
|
+
class PathItem(AbstractModel):
|
|
45232
|
+
r"""指定限流path和对应的method
|
|
45233
|
+
|
|
45234
|
+
"""
|
|
45235
|
+
|
|
45236
|
+
def __init__(self):
|
|
45237
|
+
r"""
|
|
45238
|
+
:param _Path: 请求路径
|
|
45239
|
+
:type Path: str
|
|
45240
|
+
:param _Method: 请求方法
|
|
45241
|
+
:type Method: str
|
|
45242
|
+
"""
|
|
45243
|
+
self._Path = None
|
|
45244
|
+
self._Method = None
|
|
45245
|
+
|
|
45246
|
+
@property
|
|
45247
|
+
def Path(self):
|
|
45248
|
+
r"""请求路径
|
|
45249
|
+
:rtype: str
|
|
45250
|
+
"""
|
|
45251
|
+
return self._Path
|
|
45252
|
+
|
|
45253
|
+
@Path.setter
|
|
45254
|
+
def Path(self, Path):
|
|
45255
|
+
self._Path = Path
|
|
45256
|
+
|
|
45257
|
+
@property
|
|
45258
|
+
def Method(self):
|
|
45259
|
+
r"""请求方法
|
|
45260
|
+
:rtype: str
|
|
45261
|
+
"""
|
|
45262
|
+
return self._Method
|
|
45263
|
+
|
|
45264
|
+
@Method.setter
|
|
45265
|
+
def Method(self, Method):
|
|
45266
|
+
self._Method = Method
|
|
45267
|
+
|
|
45268
|
+
|
|
45269
|
+
def _deserialize(self, params):
|
|
45270
|
+
self._Path = params.get("Path")
|
|
45271
|
+
self._Method = params.get("Method")
|
|
45272
|
+
memeber_set = set(params.keys())
|
|
45273
|
+
for name, value in vars(self).items():
|
|
45274
|
+
property_name = name[1:]
|
|
45275
|
+
if property_name in memeber_set:
|
|
45276
|
+
memeber_set.remove(property_name)
|
|
45277
|
+
if len(memeber_set) > 0:
|
|
45278
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
45279
|
+
|
|
45280
|
+
|
|
45281
|
+
|
|
42005
45282
|
class PeakPointsItem(AbstractModel):
|
|
42006
45283
|
r"""PeakPoints数组项
|
|
42007
45284
|
|
|
@@ -43412,6 +46689,55 @@ class QpsData(AbstractModel):
|
|
|
43412
46689
|
|
|
43413
46690
|
|
|
43414
46691
|
|
|
46692
|
+
class QueryBypassAllStatusRequest(AbstractModel):
|
|
46693
|
+
r"""QueryBypassAllStatus请求参数结构体
|
|
46694
|
+
|
|
46695
|
+
"""
|
|
46696
|
+
|
|
46697
|
+
|
|
46698
|
+
class QueryBypassAllStatusResponse(AbstractModel):
|
|
46699
|
+
r"""QueryBypassAllStatus返回参数结构体
|
|
46700
|
+
|
|
46701
|
+
"""
|
|
46702
|
+
|
|
46703
|
+
def __init__(self):
|
|
46704
|
+
r"""
|
|
46705
|
+
:param _Result: 该用户是否被加入了全局的bypass列表
|
|
46706
|
+
:type Result: bool
|
|
46707
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
46708
|
+
:type RequestId: str
|
|
46709
|
+
"""
|
|
46710
|
+
self._Result = None
|
|
46711
|
+
self._RequestId = None
|
|
46712
|
+
|
|
46713
|
+
@property
|
|
46714
|
+
def Result(self):
|
|
46715
|
+
r"""该用户是否被加入了全局的bypass列表
|
|
46716
|
+
:rtype: bool
|
|
46717
|
+
"""
|
|
46718
|
+
return self._Result
|
|
46719
|
+
|
|
46720
|
+
@Result.setter
|
|
46721
|
+
def Result(self, Result):
|
|
46722
|
+
self._Result = Result
|
|
46723
|
+
|
|
46724
|
+
@property
|
|
46725
|
+
def RequestId(self):
|
|
46726
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
46727
|
+
:rtype: str
|
|
46728
|
+
"""
|
|
46729
|
+
return self._RequestId
|
|
46730
|
+
|
|
46731
|
+
@RequestId.setter
|
|
46732
|
+
def RequestId(self, RequestId):
|
|
46733
|
+
self._RequestId = RequestId
|
|
46734
|
+
|
|
46735
|
+
|
|
46736
|
+
def _deserialize(self, params):
|
|
46737
|
+
self._Result = params.get("Result")
|
|
46738
|
+
self._RequestId = params.get("RequestId")
|
|
46739
|
+
|
|
46740
|
+
|
|
43415
46741
|
class RCEPkg(AbstractModel):
|
|
43416
46742
|
r"""有效REC设备安全包信息
|
|
43417
46743
|
|
|
@@ -43568,6 +46894,129 @@ class RCEPkg(AbstractModel):
|
|
|
43568
46894
|
|
|
43569
46895
|
|
|
43570
46896
|
|
|
46897
|
+
class RateLimitCommonRsp(AbstractModel):
|
|
46898
|
+
r"""限流相关通用返回
|
|
46899
|
+
|
|
46900
|
+
"""
|
|
46901
|
+
|
|
46902
|
+
def __init__(self):
|
|
46903
|
+
r"""
|
|
46904
|
+
:param _Code: 响应码
|
|
46905
|
+
:type Code: int
|
|
46906
|
+
:param _Info: 提示信息
|
|
46907
|
+
:type Info: str
|
|
46908
|
+
"""
|
|
46909
|
+
self._Code = None
|
|
46910
|
+
self._Info = None
|
|
46911
|
+
|
|
46912
|
+
@property
|
|
46913
|
+
def Code(self):
|
|
46914
|
+
r"""响应码
|
|
46915
|
+
:rtype: int
|
|
46916
|
+
"""
|
|
46917
|
+
return self._Code
|
|
46918
|
+
|
|
46919
|
+
@Code.setter
|
|
46920
|
+
def Code(self, Code):
|
|
46921
|
+
self._Code = Code
|
|
46922
|
+
|
|
46923
|
+
@property
|
|
46924
|
+
def Info(self):
|
|
46925
|
+
r"""提示信息
|
|
46926
|
+
:rtype: str
|
|
46927
|
+
"""
|
|
46928
|
+
return self._Info
|
|
46929
|
+
|
|
46930
|
+
@Info.setter
|
|
46931
|
+
def Info(self, Info):
|
|
46932
|
+
self._Info = Info
|
|
46933
|
+
|
|
46934
|
+
|
|
46935
|
+
def _deserialize(self, params):
|
|
46936
|
+
self._Code = params.get("Code")
|
|
46937
|
+
self._Info = params.get("Info")
|
|
46938
|
+
memeber_set = set(params.keys())
|
|
46939
|
+
for name, value in vars(self).items():
|
|
46940
|
+
property_name = name[1:]
|
|
46941
|
+
if property_name in memeber_set:
|
|
46942
|
+
memeber_set.remove(property_name)
|
|
46943
|
+
if len(memeber_set) > 0:
|
|
46944
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
46945
|
+
|
|
46946
|
+
|
|
46947
|
+
|
|
46948
|
+
class RedirectInfo(AbstractModel):
|
|
46949
|
+
r"""重定向信息
|
|
46950
|
+
|
|
46951
|
+
"""
|
|
46952
|
+
|
|
46953
|
+
def __init__(self):
|
|
46954
|
+
r"""
|
|
46955
|
+
:param _Protocol: 协议
|
|
46956
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
46957
|
+
:type Protocol: str
|
|
46958
|
+
:param _Domain: 域名
|
|
46959
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
46960
|
+
:type Domain: str
|
|
46961
|
+
:param _Url: url路径
|
|
46962
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
46963
|
+
:type Url: str
|
|
46964
|
+
"""
|
|
46965
|
+
self._Protocol = None
|
|
46966
|
+
self._Domain = None
|
|
46967
|
+
self._Url = None
|
|
46968
|
+
|
|
46969
|
+
@property
|
|
46970
|
+
def Protocol(self):
|
|
46971
|
+
r"""协议
|
|
46972
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
46973
|
+
:rtype: str
|
|
46974
|
+
"""
|
|
46975
|
+
return self._Protocol
|
|
46976
|
+
|
|
46977
|
+
@Protocol.setter
|
|
46978
|
+
def Protocol(self, Protocol):
|
|
46979
|
+
self._Protocol = Protocol
|
|
46980
|
+
|
|
46981
|
+
@property
|
|
46982
|
+
def Domain(self):
|
|
46983
|
+
r"""域名
|
|
46984
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
46985
|
+
:rtype: str
|
|
46986
|
+
"""
|
|
46987
|
+
return self._Domain
|
|
46988
|
+
|
|
46989
|
+
@Domain.setter
|
|
46990
|
+
def Domain(self, Domain):
|
|
46991
|
+
self._Domain = Domain
|
|
46992
|
+
|
|
46993
|
+
@property
|
|
46994
|
+
def Url(self):
|
|
46995
|
+
r"""url路径
|
|
46996
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
46997
|
+
:rtype: str
|
|
46998
|
+
"""
|
|
46999
|
+
return self._Url
|
|
47000
|
+
|
|
47001
|
+
@Url.setter
|
|
47002
|
+
def Url(self, Url):
|
|
47003
|
+
self._Url = Url
|
|
47004
|
+
|
|
47005
|
+
|
|
47006
|
+
def _deserialize(self, params):
|
|
47007
|
+
self._Protocol = params.get("Protocol")
|
|
47008
|
+
self._Domain = params.get("Domain")
|
|
47009
|
+
self._Url = params.get("Url")
|
|
47010
|
+
memeber_set = set(params.keys())
|
|
47011
|
+
for name, value in vars(self).items():
|
|
47012
|
+
property_name = name[1:]
|
|
47013
|
+
if property_name in memeber_set:
|
|
47014
|
+
memeber_set.remove(property_name)
|
|
47015
|
+
if len(memeber_set) > 0:
|
|
47016
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
47017
|
+
|
|
47018
|
+
|
|
47019
|
+
|
|
43571
47020
|
class RefreshAccessCheckResultRequest(AbstractModel):
|
|
43572
47021
|
r"""RefreshAccessCheckResult请求参数结构体
|
|
43573
47022
|
|
|
@@ -43632,6 +47081,40 @@ class RefreshAccessCheckResultResponse(AbstractModel):
|
|
|
43632
47081
|
self._RequestId = params.get("RequestId")
|
|
43633
47082
|
|
|
43634
47083
|
|
|
47084
|
+
class RemoveBypassAllRuleRequest(AbstractModel):
|
|
47085
|
+
r"""RemoveBypassAllRule请求参数结构体
|
|
47086
|
+
|
|
47087
|
+
"""
|
|
47088
|
+
|
|
47089
|
+
|
|
47090
|
+
class RemoveBypassAllRuleResponse(AbstractModel):
|
|
47091
|
+
r"""RemoveBypassAllRule返回参数结构体
|
|
47092
|
+
|
|
47093
|
+
"""
|
|
47094
|
+
|
|
47095
|
+
def __init__(self):
|
|
47096
|
+
r"""
|
|
47097
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
47098
|
+
:type RequestId: str
|
|
47099
|
+
"""
|
|
47100
|
+
self._RequestId = None
|
|
47101
|
+
|
|
47102
|
+
@property
|
|
47103
|
+
def RequestId(self):
|
|
47104
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
47105
|
+
:rtype: str
|
|
47106
|
+
"""
|
|
47107
|
+
return self._RequestId
|
|
47108
|
+
|
|
47109
|
+
@RequestId.setter
|
|
47110
|
+
def RequestId(self, RequestId):
|
|
47111
|
+
self._RequestId = RequestId
|
|
47112
|
+
|
|
47113
|
+
|
|
47114
|
+
def _deserialize(self, params):
|
|
47115
|
+
self._RequestId = params.get("RequestId")
|
|
47116
|
+
|
|
47117
|
+
|
|
43635
47118
|
class ReqUserRule(AbstractModel):
|
|
43636
47119
|
r"""用户规则更新输出规则子项
|
|
43637
47120
|
|
|
@@ -47498,6 +50981,447 @@ class UpdateProtectionModesResponse(AbstractModel):
|
|
|
47498
50981
|
self._RequestId = params.get("RequestId")
|
|
47499
50982
|
|
|
47500
50983
|
|
|
50984
|
+
class UpdateRateLimitV2Request(AbstractModel):
|
|
50985
|
+
r"""UpdateRateLimitV2请求参数结构体
|
|
50986
|
+
|
|
50987
|
+
"""
|
|
50988
|
+
|
|
50989
|
+
def __init__(self):
|
|
50990
|
+
r"""
|
|
50991
|
+
:param _Domain: 域名
|
|
50992
|
+
:type Domain: str
|
|
50993
|
+
:param _LimitRuleId: 规则ID
|
|
50994
|
+
:type LimitRuleId: int
|
|
50995
|
+
:param _Name: 规则名
|
|
50996
|
+
:type Name: str
|
|
50997
|
+
:param _Priority: 优先级
|
|
50998
|
+
:type Priority: int
|
|
50999
|
+
:param _Status: 开关,0关闭,1开启
|
|
51000
|
+
:type Status: int
|
|
51001
|
+
:param _LimitObject: 支持API,Domain。如果基于API,则LimitPaths不能为空,否则LimitPaths为空
|
|
51002
|
+
:type LimitObject: str
|
|
51003
|
+
:param _LimitStrategy: 限流策略,0:观察,1:拦截,2:人机
|
|
51004
|
+
:type LimitStrategy: int
|
|
51005
|
+
:param _LimitHeaderName: 基于Header参数名限流
|
|
51006
|
+
:type LimitHeaderName: :class:`tencentcloud.waf.v20180125.models.LimitHeaderName`
|
|
51007
|
+
:param _LimitMethod: 限流方法
|
|
51008
|
+
:type LimitMethod: :class:`tencentcloud.waf.v20180125.models.LimitMethod`
|
|
51009
|
+
:param _LimitPaths: 限流路径
|
|
51010
|
+
:type LimitPaths: :class:`tencentcloud.waf.v20180125.models.LimitPath`
|
|
51011
|
+
:param _LimitHeaders: 限流Headers
|
|
51012
|
+
:type LimitHeaders: list of LimitHeader
|
|
51013
|
+
:param _LimitWindow: 限流窗口
|
|
51014
|
+
:type LimitWindow: :class:`tencentcloud.waf.v20180125.models.LimitWindow`
|
|
51015
|
+
:param _GetParamsName: 基于Get参数名限流
|
|
51016
|
+
:type GetParamsName: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51017
|
+
:param _GetParamsValue: 基于Get参数值限流
|
|
51018
|
+
:type GetParamsValue: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51019
|
+
:param _PostParamsName: 基于Post参数名限流
|
|
51020
|
+
:type PostParamsName: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51021
|
+
:param _PostParamsValue: 基于Post参数值限流
|
|
51022
|
+
:type PostParamsValue: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51023
|
+
:param _IpLocation: 基于IP归属地限流
|
|
51024
|
+
:type IpLocation: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51025
|
+
:param _RedirectInfo: 重定向信息,当LimitStrategy为重定向时,此字段必填
|
|
51026
|
+
:type RedirectInfo: :class:`tencentcloud.waf.v20180125.models.RedirectInfo`
|
|
51027
|
+
:param _BlockPage: 拦截页面,0表示429,否则填写blockPageID
|
|
51028
|
+
:type BlockPage: int
|
|
51029
|
+
:param _ObjectSrc: 限流对象来源,0:手动填写,1:API资产
|
|
51030
|
+
:type ObjectSrc: int
|
|
51031
|
+
:param _QuotaShare: 是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
51032
|
+
:type QuotaShare: bool
|
|
51033
|
+
:param _PathsOption: 路径选项,可配置每个路径的请求方法
|
|
51034
|
+
:type PathsOption: list of PathItem
|
|
51035
|
+
:param _Order: 限流执行顺序,0:默认情况,限流优先,1:安全防护优先
|
|
51036
|
+
:type Order: int
|
|
51037
|
+
"""
|
|
51038
|
+
self._Domain = None
|
|
51039
|
+
self._LimitRuleId = None
|
|
51040
|
+
self._Name = None
|
|
51041
|
+
self._Priority = None
|
|
51042
|
+
self._Status = None
|
|
51043
|
+
self._LimitObject = None
|
|
51044
|
+
self._LimitStrategy = None
|
|
51045
|
+
self._LimitHeaderName = None
|
|
51046
|
+
self._LimitMethod = None
|
|
51047
|
+
self._LimitPaths = None
|
|
51048
|
+
self._LimitHeaders = None
|
|
51049
|
+
self._LimitWindow = None
|
|
51050
|
+
self._GetParamsName = None
|
|
51051
|
+
self._GetParamsValue = None
|
|
51052
|
+
self._PostParamsName = None
|
|
51053
|
+
self._PostParamsValue = None
|
|
51054
|
+
self._IpLocation = None
|
|
51055
|
+
self._RedirectInfo = None
|
|
51056
|
+
self._BlockPage = None
|
|
51057
|
+
self._ObjectSrc = None
|
|
51058
|
+
self._QuotaShare = None
|
|
51059
|
+
self._PathsOption = None
|
|
51060
|
+
self._Order = None
|
|
51061
|
+
|
|
51062
|
+
@property
|
|
51063
|
+
def Domain(self):
|
|
51064
|
+
r"""域名
|
|
51065
|
+
:rtype: str
|
|
51066
|
+
"""
|
|
51067
|
+
return self._Domain
|
|
51068
|
+
|
|
51069
|
+
@Domain.setter
|
|
51070
|
+
def Domain(self, Domain):
|
|
51071
|
+
self._Domain = Domain
|
|
51072
|
+
|
|
51073
|
+
@property
|
|
51074
|
+
def LimitRuleId(self):
|
|
51075
|
+
r"""规则ID
|
|
51076
|
+
:rtype: int
|
|
51077
|
+
"""
|
|
51078
|
+
return self._LimitRuleId
|
|
51079
|
+
|
|
51080
|
+
@LimitRuleId.setter
|
|
51081
|
+
def LimitRuleId(self, LimitRuleId):
|
|
51082
|
+
self._LimitRuleId = LimitRuleId
|
|
51083
|
+
|
|
51084
|
+
@property
|
|
51085
|
+
def Name(self):
|
|
51086
|
+
r"""规则名
|
|
51087
|
+
:rtype: str
|
|
51088
|
+
"""
|
|
51089
|
+
return self._Name
|
|
51090
|
+
|
|
51091
|
+
@Name.setter
|
|
51092
|
+
def Name(self, Name):
|
|
51093
|
+
self._Name = Name
|
|
51094
|
+
|
|
51095
|
+
@property
|
|
51096
|
+
def Priority(self):
|
|
51097
|
+
r"""优先级
|
|
51098
|
+
:rtype: int
|
|
51099
|
+
"""
|
|
51100
|
+
return self._Priority
|
|
51101
|
+
|
|
51102
|
+
@Priority.setter
|
|
51103
|
+
def Priority(self, Priority):
|
|
51104
|
+
self._Priority = Priority
|
|
51105
|
+
|
|
51106
|
+
@property
|
|
51107
|
+
def Status(self):
|
|
51108
|
+
r"""开关,0关闭,1开启
|
|
51109
|
+
:rtype: int
|
|
51110
|
+
"""
|
|
51111
|
+
return self._Status
|
|
51112
|
+
|
|
51113
|
+
@Status.setter
|
|
51114
|
+
def Status(self, Status):
|
|
51115
|
+
self._Status = Status
|
|
51116
|
+
|
|
51117
|
+
@property
|
|
51118
|
+
def LimitObject(self):
|
|
51119
|
+
r"""支持API,Domain。如果基于API,则LimitPaths不能为空,否则LimitPaths为空
|
|
51120
|
+
:rtype: str
|
|
51121
|
+
"""
|
|
51122
|
+
return self._LimitObject
|
|
51123
|
+
|
|
51124
|
+
@LimitObject.setter
|
|
51125
|
+
def LimitObject(self, LimitObject):
|
|
51126
|
+
self._LimitObject = LimitObject
|
|
51127
|
+
|
|
51128
|
+
@property
|
|
51129
|
+
def LimitStrategy(self):
|
|
51130
|
+
r"""限流策略,0:观察,1:拦截,2:人机
|
|
51131
|
+
:rtype: int
|
|
51132
|
+
"""
|
|
51133
|
+
return self._LimitStrategy
|
|
51134
|
+
|
|
51135
|
+
@LimitStrategy.setter
|
|
51136
|
+
def LimitStrategy(self, LimitStrategy):
|
|
51137
|
+
self._LimitStrategy = LimitStrategy
|
|
51138
|
+
|
|
51139
|
+
@property
|
|
51140
|
+
def LimitHeaderName(self):
|
|
51141
|
+
r"""基于Header参数名限流
|
|
51142
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitHeaderName`
|
|
51143
|
+
"""
|
|
51144
|
+
return self._LimitHeaderName
|
|
51145
|
+
|
|
51146
|
+
@LimitHeaderName.setter
|
|
51147
|
+
def LimitHeaderName(self, LimitHeaderName):
|
|
51148
|
+
self._LimitHeaderName = LimitHeaderName
|
|
51149
|
+
|
|
51150
|
+
@property
|
|
51151
|
+
def LimitMethod(self):
|
|
51152
|
+
r"""限流方法
|
|
51153
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitMethod`
|
|
51154
|
+
"""
|
|
51155
|
+
return self._LimitMethod
|
|
51156
|
+
|
|
51157
|
+
@LimitMethod.setter
|
|
51158
|
+
def LimitMethod(self, LimitMethod):
|
|
51159
|
+
self._LimitMethod = LimitMethod
|
|
51160
|
+
|
|
51161
|
+
@property
|
|
51162
|
+
def LimitPaths(self):
|
|
51163
|
+
r"""限流路径
|
|
51164
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitPath`
|
|
51165
|
+
"""
|
|
51166
|
+
return self._LimitPaths
|
|
51167
|
+
|
|
51168
|
+
@LimitPaths.setter
|
|
51169
|
+
def LimitPaths(self, LimitPaths):
|
|
51170
|
+
self._LimitPaths = LimitPaths
|
|
51171
|
+
|
|
51172
|
+
@property
|
|
51173
|
+
def LimitHeaders(self):
|
|
51174
|
+
r"""限流Headers
|
|
51175
|
+
:rtype: list of LimitHeader
|
|
51176
|
+
"""
|
|
51177
|
+
return self._LimitHeaders
|
|
51178
|
+
|
|
51179
|
+
@LimitHeaders.setter
|
|
51180
|
+
def LimitHeaders(self, LimitHeaders):
|
|
51181
|
+
self._LimitHeaders = LimitHeaders
|
|
51182
|
+
|
|
51183
|
+
@property
|
|
51184
|
+
def LimitWindow(self):
|
|
51185
|
+
r"""限流窗口
|
|
51186
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.LimitWindow`
|
|
51187
|
+
"""
|
|
51188
|
+
return self._LimitWindow
|
|
51189
|
+
|
|
51190
|
+
@LimitWindow.setter
|
|
51191
|
+
def LimitWindow(self, LimitWindow):
|
|
51192
|
+
self._LimitWindow = LimitWindow
|
|
51193
|
+
|
|
51194
|
+
@property
|
|
51195
|
+
def GetParamsName(self):
|
|
51196
|
+
r"""基于Get参数名限流
|
|
51197
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51198
|
+
"""
|
|
51199
|
+
return self._GetParamsName
|
|
51200
|
+
|
|
51201
|
+
@GetParamsName.setter
|
|
51202
|
+
def GetParamsName(self, GetParamsName):
|
|
51203
|
+
self._GetParamsName = GetParamsName
|
|
51204
|
+
|
|
51205
|
+
@property
|
|
51206
|
+
def GetParamsValue(self):
|
|
51207
|
+
r"""基于Get参数值限流
|
|
51208
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51209
|
+
"""
|
|
51210
|
+
return self._GetParamsValue
|
|
51211
|
+
|
|
51212
|
+
@GetParamsValue.setter
|
|
51213
|
+
def GetParamsValue(self, GetParamsValue):
|
|
51214
|
+
self._GetParamsValue = GetParamsValue
|
|
51215
|
+
|
|
51216
|
+
@property
|
|
51217
|
+
def PostParamsName(self):
|
|
51218
|
+
r"""基于Post参数名限流
|
|
51219
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51220
|
+
"""
|
|
51221
|
+
return self._PostParamsName
|
|
51222
|
+
|
|
51223
|
+
@PostParamsName.setter
|
|
51224
|
+
def PostParamsName(self, PostParamsName):
|
|
51225
|
+
self._PostParamsName = PostParamsName
|
|
51226
|
+
|
|
51227
|
+
@property
|
|
51228
|
+
def PostParamsValue(self):
|
|
51229
|
+
r"""基于Post参数值限流
|
|
51230
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51231
|
+
"""
|
|
51232
|
+
return self._PostParamsValue
|
|
51233
|
+
|
|
51234
|
+
@PostParamsValue.setter
|
|
51235
|
+
def PostParamsValue(self, PostParamsValue):
|
|
51236
|
+
self._PostParamsValue = PostParamsValue
|
|
51237
|
+
|
|
51238
|
+
@property
|
|
51239
|
+
def IpLocation(self):
|
|
51240
|
+
r"""基于IP归属地限流
|
|
51241
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.MatchOption`
|
|
51242
|
+
"""
|
|
51243
|
+
return self._IpLocation
|
|
51244
|
+
|
|
51245
|
+
@IpLocation.setter
|
|
51246
|
+
def IpLocation(self, IpLocation):
|
|
51247
|
+
self._IpLocation = IpLocation
|
|
51248
|
+
|
|
51249
|
+
@property
|
|
51250
|
+
def RedirectInfo(self):
|
|
51251
|
+
r"""重定向信息,当LimitStrategy为重定向时,此字段必填
|
|
51252
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RedirectInfo`
|
|
51253
|
+
"""
|
|
51254
|
+
return self._RedirectInfo
|
|
51255
|
+
|
|
51256
|
+
@RedirectInfo.setter
|
|
51257
|
+
def RedirectInfo(self, RedirectInfo):
|
|
51258
|
+
self._RedirectInfo = RedirectInfo
|
|
51259
|
+
|
|
51260
|
+
@property
|
|
51261
|
+
def BlockPage(self):
|
|
51262
|
+
r"""拦截页面,0表示429,否则填写blockPageID
|
|
51263
|
+
:rtype: int
|
|
51264
|
+
"""
|
|
51265
|
+
return self._BlockPage
|
|
51266
|
+
|
|
51267
|
+
@BlockPage.setter
|
|
51268
|
+
def BlockPage(self, BlockPage):
|
|
51269
|
+
self._BlockPage = BlockPage
|
|
51270
|
+
|
|
51271
|
+
@property
|
|
51272
|
+
def ObjectSrc(self):
|
|
51273
|
+
r"""限流对象来源,0:手动填写,1:API资产
|
|
51274
|
+
:rtype: int
|
|
51275
|
+
"""
|
|
51276
|
+
return self._ObjectSrc
|
|
51277
|
+
|
|
51278
|
+
@ObjectSrc.setter
|
|
51279
|
+
def ObjectSrc(self, ObjectSrc):
|
|
51280
|
+
self._ObjectSrc = ObjectSrc
|
|
51281
|
+
|
|
51282
|
+
@property
|
|
51283
|
+
def QuotaShare(self):
|
|
51284
|
+
r"""是否共享配额,只有当对象为URL时有效,false表示URL独享配额,true表示所有URL共享配额
|
|
51285
|
+
:rtype: bool
|
|
51286
|
+
"""
|
|
51287
|
+
return self._QuotaShare
|
|
51288
|
+
|
|
51289
|
+
@QuotaShare.setter
|
|
51290
|
+
def QuotaShare(self, QuotaShare):
|
|
51291
|
+
self._QuotaShare = QuotaShare
|
|
51292
|
+
|
|
51293
|
+
@property
|
|
51294
|
+
def PathsOption(self):
|
|
51295
|
+
r"""路径选项,可配置每个路径的请求方法
|
|
51296
|
+
:rtype: list of PathItem
|
|
51297
|
+
"""
|
|
51298
|
+
return self._PathsOption
|
|
51299
|
+
|
|
51300
|
+
@PathsOption.setter
|
|
51301
|
+
def PathsOption(self, PathsOption):
|
|
51302
|
+
self._PathsOption = PathsOption
|
|
51303
|
+
|
|
51304
|
+
@property
|
|
51305
|
+
def Order(self):
|
|
51306
|
+
r"""限流执行顺序,0:默认情况,限流优先,1:安全防护优先
|
|
51307
|
+
:rtype: int
|
|
51308
|
+
"""
|
|
51309
|
+
return self._Order
|
|
51310
|
+
|
|
51311
|
+
@Order.setter
|
|
51312
|
+
def Order(self, Order):
|
|
51313
|
+
self._Order = Order
|
|
51314
|
+
|
|
51315
|
+
|
|
51316
|
+
def _deserialize(self, params):
|
|
51317
|
+
self._Domain = params.get("Domain")
|
|
51318
|
+
self._LimitRuleId = params.get("LimitRuleId")
|
|
51319
|
+
self._Name = params.get("Name")
|
|
51320
|
+
self._Priority = params.get("Priority")
|
|
51321
|
+
self._Status = params.get("Status")
|
|
51322
|
+
self._LimitObject = params.get("LimitObject")
|
|
51323
|
+
self._LimitStrategy = params.get("LimitStrategy")
|
|
51324
|
+
if params.get("LimitHeaderName") is not None:
|
|
51325
|
+
self._LimitHeaderName = LimitHeaderName()
|
|
51326
|
+
self._LimitHeaderName._deserialize(params.get("LimitHeaderName"))
|
|
51327
|
+
if params.get("LimitMethod") is not None:
|
|
51328
|
+
self._LimitMethod = LimitMethod()
|
|
51329
|
+
self._LimitMethod._deserialize(params.get("LimitMethod"))
|
|
51330
|
+
if params.get("LimitPaths") is not None:
|
|
51331
|
+
self._LimitPaths = LimitPath()
|
|
51332
|
+
self._LimitPaths._deserialize(params.get("LimitPaths"))
|
|
51333
|
+
if params.get("LimitHeaders") is not None:
|
|
51334
|
+
self._LimitHeaders = []
|
|
51335
|
+
for item in params.get("LimitHeaders"):
|
|
51336
|
+
obj = LimitHeader()
|
|
51337
|
+
obj._deserialize(item)
|
|
51338
|
+
self._LimitHeaders.append(obj)
|
|
51339
|
+
if params.get("LimitWindow") is not None:
|
|
51340
|
+
self._LimitWindow = LimitWindow()
|
|
51341
|
+
self._LimitWindow._deserialize(params.get("LimitWindow"))
|
|
51342
|
+
if params.get("GetParamsName") is not None:
|
|
51343
|
+
self._GetParamsName = MatchOption()
|
|
51344
|
+
self._GetParamsName._deserialize(params.get("GetParamsName"))
|
|
51345
|
+
if params.get("GetParamsValue") is not None:
|
|
51346
|
+
self._GetParamsValue = MatchOption()
|
|
51347
|
+
self._GetParamsValue._deserialize(params.get("GetParamsValue"))
|
|
51348
|
+
if params.get("PostParamsName") is not None:
|
|
51349
|
+
self._PostParamsName = MatchOption()
|
|
51350
|
+
self._PostParamsName._deserialize(params.get("PostParamsName"))
|
|
51351
|
+
if params.get("PostParamsValue") is not None:
|
|
51352
|
+
self._PostParamsValue = MatchOption()
|
|
51353
|
+
self._PostParamsValue._deserialize(params.get("PostParamsValue"))
|
|
51354
|
+
if params.get("IpLocation") is not None:
|
|
51355
|
+
self._IpLocation = MatchOption()
|
|
51356
|
+
self._IpLocation._deserialize(params.get("IpLocation"))
|
|
51357
|
+
if params.get("RedirectInfo") is not None:
|
|
51358
|
+
self._RedirectInfo = RedirectInfo()
|
|
51359
|
+
self._RedirectInfo._deserialize(params.get("RedirectInfo"))
|
|
51360
|
+
self._BlockPage = params.get("BlockPage")
|
|
51361
|
+
self._ObjectSrc = params.get("ObjectSrc")
|
|
51362
|
+
self._QuotaShare = params.get("QuotaShare")
|
|
51363
|
+
if params.get("PathsOption") is not None:
|
|
51364
|
+
self._PathsOption = []
|
|
51365
|
+
for item in params.get("PathsOption"):
|
|
51366
|
+
obj = PathItem()
|
|
51367
|
+
obj._deserialize(item)
|
|
51368
|
+
self._PathsOption.append(obj)
|
|
51369
|
+
self._Order = params.get("Order")
|
|
51370
|
+
memeber_set = set(params.keys())
|
|
51371
|
+
for name, value in vars(self).items():
|
|
51372
|
+
property_name = name[1:]
|
|
51373
|
+
if property_name in memeber_set:
|
|
51374
|
+
memeber_set.remove(property_name)
|
|
51375
|
+
if len(memeber_set) > 0:
|
|
51376
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
51377
|
+
|
|
51378
|
+
|
|
51379
|
+
|
|
51380
|
+
class UpdateRateLimitV2Response(AbstractModel):
|
|
51381
|
+
r"""UpdateRateLimitV2返回参数结构体
|
|
51382
|
+
|
|
51383
|
+
"""
|
|
51384
|
+
|
|
51385
|
+
def __init__(self):
|
|
51386
|
+
r"""
|
|
51387
|
+
:param _BaseInfo: 操作结果
|
|
51388
|
+
:type BaseInfo: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
51389
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
51390
|
+
:type RequestId: str
|
|
51391
|
+
"""
|
|
51392
|
+
self._BaseInfo = None
|
|
51393
|
+
self._RequestId = None
|
|
51394
|
+
|
|
51395
|
+
@property
|
|
51396
|
+
def BaseInfo(self):
|
|
51397
|
+
r"""操作结果
|
|
51398
|
+
:rtype: :class:`tencentcloud.waf.v20180125.models.RateLimitCommonRsp`
|
|
51399
|
+
"""
|
|
51400
|
+
return self._BaseInfo
|
|
51401
|
+
|
|
51402
|
+
@BaseInfo.setter
|
|
51403
|
+
def BaseInfo(self, BaseInfo):
|
|
51404
|
+
self._BaseInfo = BaseInfo
|
|
51405
|
+
|
|
51406
|
+
@property
|
|
51407
|
+
def RequestId(self):
|
|
51408
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
51409
|
+
:rtype: str
|
|
51410
|
+
"""
|
|
51411
|
+
return self._RequestId
|
|
51412
|
+
|
|
51413
|
+
@RequestId.setter
|
|
51414
|
+
def RequestId(self, RequestId):
|
|
51415
|
+
self._RequestId = RequestId
|
|
51416
|
+
|
|
51417
|
+
|
|
51418
|
+
def _deserialize(self, params):
|
|
51419
|
+
if params.get("BaseInfo") is not None:
|
|
51420
|
+
self._BaseInfo = RateLimitCommonRsp()
|
|
51421
|
+
self._BaseInfo._deserialize(params.get("BaseInfo"))
|
|
51422
|
+
self._RequestId = params.get("RequestId")
|
|
51423
|
+
|
|
51424
|
+
|
|
47501
51425
|
class UpsertCCAutoStatusRequest(AbstractModel):
|
|
47502
51426
|
r"""UpsertCCAutoStatus请求参数结构体
|
|
47503
51427
|
|