@@ -3259,8 +3259,8 @@ def create_security_group(self,
32593259 return self ._send_request (http_methods .POST , path , json .dumps (body ),
32603260 params = params , config = config )
32613261
3262- def list_security_groups (self , instance_id = None , vpc_id = None , security_group_ids = None , marker = None , max_keys = None ,
3263- config = None ):
3262+ def list_security_groups (self , instance_id = None , vpc_id = None , security_group_id = None , security_group_ids = None ,
3263+ marker = None , max_keys = None , config = None ):
32643264 """
32653265 Listing SecurityGroup owned by the authenticated user.
32663266
@@ -3273,6 +3273,10 @@ def list_security_groups(self, instance_id=None, vpc_id=None, security_group_ids
32733273 filter by vpcId, optional parameter
32743274 :type vpc_id: string
32753275
3276+ :param security_group_id:
3277+ filter by securityGroupId, optional parameter
3278+ :type security_group_id: string
3279+
32763280 :param security_group_ids:
32773281 filter by securityGroupIds, optional parameter
32783282 :type security_group_ids: string
@@ -3304,6 +3308,8 @@ def list_security_groups(self, instance_id=None, vpc_id=None, security_group_ids
33043308 params ['marker' ] = marker
33053309 if max_keys is not None :
33063310 params ['maxKeys' ] = max_keys
3311+ if security_group_id is not None :
3312+ params ['securityGroupId' ] = security_group_id
33073313
33083314 return self ._send_request (http_methods .GET , path ,
33093315 params = params , config = config )
@@ -3327,7 +3333,7 @@ def delete_security_group(self, security_group_id, config=None):
33273333 @required (security_group_id = (bytes , str ), # ***Unicode***
33283334 rule = bcc_model .SecurityGroupRuleModel )
33293335 def authorize_security_group_rule (self , security_group_id , rule , client_token = None ,
3330- config = None ):
3336+ sg_version = None , config = None ):
33313337 """
33323338 authorize a security group rule to the specified security group
33333339
@@ -3349,6 +3355,10 @@ def authorize_security_group_rule(self, security_group_id, rule, client_token=No
33493355 https://bce.baidu.com/doc/BCC/API.html#.E5.B9.82.E7.AD.89.E6.80.A7
33503356 :type client_token: string
33513357
3358+ :param sg_version:
3359+ Security group version number for optimistic locking.
3360+ :type sg_version: int
3361+
33523362 :return:
33533363 :rtype baidubce.bce_response.BceResponse
33543364 """
@@ -3359,6 +3369,8 @@ def authorize_security_group_rule(self, security_group_id, rule, client_token=No
33593369 params ['clientToken' ] = generate_client_token ()
33603370 else :
33613371 params ['clientToken' ] = client_token
3372+ if sg_version is not None :
3373+ params ['sgVersion' ] = sg_version
33623374 body = {
33633375 'rule' : rule .__dict__
33643376 }
@@ -3368,7 +3380,7 @@ def authorize_security_group_rule(self, security_group_id, rule, client_token=No
33683380
33693381 @required (security_group_id = (bytes , str ), # ***Unicode***
33703382 rule = bcc_model .SecurityGroupRuleModel )
3371- def revoke_security_group_rule (self , security_group_id , rule , client_token = None , config = None ):
3383+ def revoke_security_group_rule (self , security_group_id , rule , client_token = None , sg_version = None , config = None ):
33723384 """
33733385 revoke a security group rule from the specified security group
33743386 :param security_group_id:
@@ -3386,6 +3398,9 @@ def revoke_security_group_rule(self, security_group_id, rule, client_token=None,
33863398 See more detail at
33873399 https://bce.baidu.com/doc/BCC/API.html#.E5.B9.82.E7.AD.89.E6.80.A7
33883400 :type client_token: string
3401+ :param sg_version:
3402+ Security group version number for optimistic locking.
3403+ :type sg_version: int
33893404 :return:
33903405 :rtype baidubce.bce_response.BceResponse
33913406 """
@@ -3396,6 +3411,8 @@ def revoke_security_group_rule(self, security_group_id, rule, client_token=None,
33963411 params ['clientToken' ] = generate_client_token ()
33973412 else :
33983413 params ['clientToken' ] = client_token
3414+ if sg_version is not None :
3415+ params ['sgVersion' ] = sg_version
33993416 body = {
34003417 'rule' : rule .__dict__
34013418 }
@@ -3405,16 +3422,17 @@ def revoke_security_group_rule(self, security_group_id, rule, client_token=None,
34053422
34063423 def update_security_group_rule (self , security_group_rule_id ,
34073424 remark = None ,
3408- direction = None ,
34093425 protocol = None ,
34103426 portrange = None ,
34113427 source_ip = None ,
34123428 sourcegroup_id = None ,
34133429 dest_ip = None ,
34143430 destgroup_id = None ,
3415- config = None ):
3431+ sg_version = None ,
3432+ client_token = None ,
3433+ config = None ,):
34163434 """
3417- uodate a security group rule from the specified security group
3435+ update a security group rule from the specified security group
34183436 :param security_group_rule_id:
34193437 security group rule id.
34203438 :param: remark:
@@ -3437,43 +3455,75 @@ def update_security_group_rule(self, security_group_rule_id,
34373455 Only works for direction = "egress".
34383456 :param: destgroup_id:
34393457 The destination security group id. Cannot coexist with destIP.
3440- :param: priority:
3441- The parameter specify the priority of the rule(range 1-1000).
3458+ :param sg_version:
3459+ Security group version number for optimistic locking.
3460+ :type sg_version: int
3461+ :param client_token:
3462+ An ASCII string whose length is less than 64.
3463+ The request will be idempotent if client token is provided.
3464+ :type client_token: string
34423465 :param config:
34433466 :type config: baidubce.BceClientConfiguration
34443467 :return:
34453468 :rtype baidubce.bce_response.BceResponse
34463469 """
34473470 path = b'/securityGroup/rule/update'
3448- body = {
3449- 'securityGroupRuleId' : security_group_rule_id ,
3450- 'remark' : remark ,
3451- 'direction' : direction ,
3452- 'protocol' : protocol ,
3453- 'portRange' : portrange ,
3454- 'sourceIp' : source_ip ,
3455- 'sourceGroupId' : sourcegroup_id ,
3456- 'destIp' : dest_ip ,
3457- 'destGroupId' : destgroup_id
3458- }
3471+ params = {}
3472+ if sg_version is not None :
3473+ params ['sgVersion' ] = sg_version
3474+ if client_token is None :
3475+ params ['clientToken' ] = generate_client_token ()
3476+ else :
3477+ params ['clientToken' ] = client_token
3478+
3479+ body = {'securityGroupRuleId' : security_group_rule_id }
3480+ if remark is not None :
3481+ body ['remark' ] = remark
3482+ if protocol is not None :
3483+ body ['protocol' ] = protocol
3484+ if portrange is not None :
3485+ body ['portRange' ] = portrange
3486+ if source_ip is not None :
3487+ body ['sourceIp' ] = source_ip
3488+ if sourcegroup_id is not None :
3489+ body ['sourceGroupId' ] = sourcegroup_id
3490+ if dest_ip is not None :
3491+ body ['destIp' ] = dest_ip
3492+ if destgroup_id is not None :
3493+ body ['destGroupId' ] = destgroup_id
3494+
34593495 return self ._send_request (http_methods .PUT , path , json .dumps (body ),
3460- params = None , config = config )
3496+ params = params if params else None , config = config )
34613497
34623498 @required (security_group_rule_id = (bytes , str )) # ***Unicode***
3463- def delete_security_group_rule (self , security_group_rule_id , config = None ):
3499+ def delete_security_group_rule (self , security_group_rule_id , sg_version = None , client_token = None , config = None ):
34643500 """
34653501 delete a security group rule from the specified security group
34663502 :param security_group_rule_id:
34673503 The id of SecurityGroupRule that will be deleted.
3468- :type security_group_id: string
3504+ :type security_group_rule_id: string
3505+ :param sg_version:
3506+ Security group version number for optimistic locking.
3507+ :type sg_version: int
3508+ :param client_token:
3509+ An ASCII string whose length is less than 64.
3510+ The request will be idempotent if client token is provided.
3511+ :type client_token: string
34693512 :param config:
34703513 :type config: baidubce.BceClientConfiguration
34713514 :return:
34723515 :rtype baidubce.bce_response.BceResponse
34733516 """
34743517 security_group_rule_id = compat .convert_to_bytes (security_group_rule_id )
34753518 path = b'/securityGroup/rule/%s' % security_group_rule_id
3476- return self ._send_request (http_methods .DELETE , path , params = None , config = config )
3519+ params = {}
3520+ if sg_version is not None :
3521+ params ['sgVersion' ] = sg_version
3522+ if client_token is None :
3523+ params ['clientToken' ] = generate_client_token ()
3524+ else :
3525+ params ['clientToken' ] = client_token
3526+ return self ._send_request (http_methods .DELETE , path , params = params if params else None , config = config )
34773527
34783528 @required (security_group_id = (bytes , str )) # ***Unicode***
34793529 def get_security_group_detail (self , security_group_id , config = None ):
0 commit comments