Skip to content

Commit 905c5b7

Browse files
zhuxiaolong37huiguangjun
authored andcommitted
add bucket public access block
1 parent 1b94096 commit 905c5b7

11 files changed

+784
-0
lines changed

alibabacloud_oss_v2/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from .models.bucket_referer import *
3232
from .models.bucket_worm import *
3333
from .models.bucket_request_payment import *
34+
from .models.bucket_public_access_block import *
3435
from .models.public_access_block import *
3536
from .models.bucket_resource_group import *
3637
from .models.bucket_style import *

alibabacloud_oss_v2/client.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1719,6 +1719,48 @@ def get_bucket_request_payment(self, request: models.GetBucketRequestPaymentRequ
17191719
"""
17201720
return operations.get_bucket_request_payment(self._client, request, **kwargs)
17211721

1722+
# bucket public access block
1723+
def get_bucket_public_access_block(self, request: models.GetBucketPublicAccessBlockRequest, **kwargs
1724+
) -> models.GetBucketPublicAccessBlockResult:
1725+
"""
1726+
Queries the Block Public Access configurations of a bucket.
1727+
1728+
Args:
1729+
request (GetBucketPublicAccessBlockRequest): Request parameters for GetBucketPublicAccessBlock operation.
1730+
1731+
Returns:
1732+
GetBucketPublicAccessBlockResult: Response result for GetBucketPublicAccessBlock operation.
1733+
"""
1734+
return operations.get_bucket_public_access_block(self._client, request, **kwargs)
1735+
1736+
1737+
def put_bucket_public_access_block(self, request: models.PutBucketPublicAccessBlockRequest, **kwargs
1738+
) -> models.PutBucketPublicAccessBlockResult:
1739+
"""
1740+
Enables or disables Block Public Access for a bucket.
1741+
1742+
Args:
1743+
request (PutBucketPublicAccessBlockRequest): Request parameters for PutBucketPublicAccessBlock operation.
1744+
1745+
Returns:
1746+
PutBucketPublicAccessBlockResult: Response result for PutBucketPublicAccessBlock operation.
1747+
"""
1748+
return operations.put_bucket_public_access_block(self._client, request, **kwargs)
1749+
1750+
1751+
def delete_bucket_public_access_block(self, request: models.DeleteBucketPublicAccessBlockRequest, **kwargs
1752+
) -> models.DeleteBucketPublicAccessBlockResult:
1753+
"""
1754+
Deletes the Block Public Access configurations of a bucket.
1755+
1756+
Args:
1757+
request (DeleteBucketPublicAccessBlockRequest): Request parameters for DeleteBucketPublicAccessBlock operation.
1758+
1759+
Returns:
1760+
DeleteBucketPublicAccessBlockResult: Response result for DeleteBucketPublicAccessBlock operation.
1761+
"""
1762+
return operations.delete_bucket_public_access_block(self._client, request, **kwargs)
1763+
17221764
# public access block
17231765
def get_public_access_block(self, request: models.GetPublicAccessBlockRequest, **kwargs
17241766
) -> models.GetPublicAccessBlockResult:

alibabacloud_oss_v2/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from .bucket_referer import *
2020
from .bucket_worm import *
2121
from .bucket_request_payment import *
22+
from .bucket_public_access_block import *
2223
from .public_access_block import *
2324
from .bucket_resource_group import *
2425
from .bucket_style import *
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
import datetime
2+
from typing import Optional, List, Any, Union
3+
from .. import serde
4+
5+
6+
class PublicAccessBlockConfiguration(serde.Model):
7+
"""
8+
The container in which the Block Public Access configurations are stored.
9+
"""
10+
11+
_attribute_map = {
12+
'block_public_access': {'tag': 'xml', 'rename': 'BlockPublicAccess', 'type': 'bool'},
13+
}
14+
15+
_xml_map = {
16+
'name': 'PublicAccessBlockConfiguration'
17+
}
18+
19+
def __init__(
20+
self,
21+
block_public_access: Optional[bool] = None,
22+
**kwargs: Any
23+
) -> None:
24+
"""
25+
block_public_access (bool, optional): Specifies whether to enable Block Public Access.true: enables Block Public Access.false (default): disables Block Public Access.
26+
"""
27+
super().__init__(**kwargs)
28+
self.block_public_access = block_public_access
29+
30+
31+
32+
33+
class GetBucketPublicAccessBlockRequest(serde.RequestModel):
34+
"""
35+
The request for the GetBucketPublicAccessBlock operation.
36+
"""
37+
38+
_attribute_map = {
39+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str'},
40+
}
41+
42+
def __init__(
43+
self,
44+
bucket: Optional[str] = None,
45+
**kwargs: Any
46+
) -> None:
47+
"""
48+
bucket (str, optional):
49+
"""
50+
super().__init__(**kwargs)
51+
self.bucket = bucket
52+
53+
54+
class GetBucketPublicAccessBlockResult(serde.ResultModel):
55+
"""
56+
The request for the GetBucketPublicAccessBlock operation.
57+
"""
58+
59+
_attribute_map = {
60+
'public_access_block_configuration': {'tag': 'output', 'position': 'body', 'rename': 'PublicAccessBlockConfiguration', 'type': 'PublicAccessBlockConfiguration,xml'},
61+
}
62+
63+
_dependency_map = {
64+
'PublicAccessBlockConfiguration': {'new': lambda: PublicAccessBlockConfiguration()},
65+
}
66+
67+
def __init__(
68+
self,
69+
public_access_block_configuration: Optional[PublicAccessBlockConfiguration] = None,
70+
**kwargs: Any
71+
) -> None:
72+
"""
73+
public_access_block_configuration (PublicAccessBlockConfiguration, optional): The container in which the Block Public Access configurations are stored.
74+
"""
75+
super().__init__(**kwargs)
76+
self.public_access_block_configuration = public_access_block_configuration
77+
78+
class PutBucketPublicAccessBlockRequest(serde.RequestModel):
79+
"""
80+
The request for the PutBucketPublicAccessBlock operation.
81+
"""
82+
83+
_attribute_map = {
84+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str'},
85+
'public_access_block_configuration': {'tag': 'input', 'position': 'body', 'rename': 'PublicAccessBlockConfiguration', 'type': 'xml'},
86+
}
87+
88+
def __init__(
89+
self,
90+
bucket: Optional[str] = None,
91+
public_access_block_configuration: Optional[PublicAccessBlockConfiguration] = None,
92+
**kwargs: Any
93+
) -> None:
94+
"""
95+
bucket (str, optional): The name of the bucket.
96+
public_access_block_configuration (PublicAccessBlockConfiguration, optional): Request body.
97+
"""
98+
super().__init__(**kwargs)
99+
self.bucket = bucket
100+
self.public_access_block_configuration = public_access_block_configuration
101+
102+
103+
class PutBucketPublicAccessBlockResult(serde.ResultModel):
104+
"""
105+
The request for the PutBucketPublicAccessBlock operation.
106+
"""
107+
108+
class DeleteBucketPublicAccessBlockRequest(serde.RequestModel):
109+
"""
110+
The request for the DeleteBucketPublicAccessBlock operation.
111+
"""
112+
113+
_attribute_map = {
114+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str'},
115+
}
116+
117+
def __init__(
118+
self,
119+
bucket: Optional[str] = None,
120+
**kwargs: Any
121+
) -> None:
122+
"""
123+
bucket (str, optional): The name of the bucket.
124+
"""
125+
super().__init__(**kwargs)
126+
self.bucket = bucket
127+
128+
129+
class DeleteBucketPublicAccessBlockResult(serde.ResultModel):
130+
"""
131+
The request for the DeleteBucketPublicAccessBlock operation.
132+
"""

alibabacloud_oss_v2/operations/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from .bucket_referer import *
2020
from .bucket_worm import *
2121
from .bucket_request_payment import *
22+
from .bucket_public_access_block import *
2223
from .public_access_block import *
2324
from .bucket_resource_group import *
2425
from .bucket_style import *
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# pylint: disable=line-too-long
2+
3+
from ..types import OperationInput, CaseInsensitiveDict
4+
from .. import serde
5+
from .. import serde_utils
6+
from .. import models
7+
from .._client import _SyncClientImpl
8+
9+
10+
def get_bucket_public_access_block(client: _SyncClientImpl, request: models.GetBucketPublicAccessBlockRequest, **kwargs) -> models.GetBucketPublicAccessBlockResult:
11+
"""
12+
get_bucket_public_access_block synchronously
13+
14+
Args:
15+
client (_SyncClientImpl): A agent that sends the request.
16+
request (GetBucketPublicAccessBlockRequest): The request for the GetBucketPublicAccessBlock operation.
17+
18+
Returns:
19+
GetBucketPublicAccessBlockResult: The result for the GetBucketPublicAccessBlock operation.
20+
"""
21+
22+
op_input = serde.serialize_input(
23+
request=request,
24+
op_input=OperationInput(
25+
op_name='GetBucketPublicAccessBlock',
26+
method='GET',
27+
headers=CaseInsensitiveDict({
28+
'Content-Type': 'application/xml',
29+
}),
30+
parameters={
31+
'publicAccessBlock': '',
32+
},
33+
bucket=request.bucket,
34+
op_metadata={'sub-resource': ['publicAccessBlock']},
35+
),
36+
custom_serializer=[
37+
serde_utils.add_content_md5
38+
]
39+
)
40+
41+
op_output = client.invoke_operation(op_input, **kwargs)
42+
43+
return serde.deserialize_output(
44+
result=models.GetBucketPublicAccessBlockResult(),
45+
op_output=op_output,
46+
custom_deserializer=[
47+
serde.deserialize_output_xmlbody
48+
],
49+
)
50+
51+
def put_bucket_public_access_block(client: _SyncClientImpl, request: models.PutBucketPublicAccessBlockRequest, **kwargs) -> models.PutBucketPublicAccessBlockResult:
52+
"""
53+
put_bucket_public_access_block synchronously
54+
55+
Args:
56+
client (_SyncClientImpl): A agent that sends the request.
57+
request (PutBucketPublicAccessBlockRequest): The request for the PutBucketPublicAccessBlock operation.
58+
59+
Returns:
60+
PutBucketPublicAccessBlockResult: The result for the PutBucketPublicAccessBlock operation.
61+
"""
62+
63+
op_input = serde.serialize_input(
64+
request=request,
65+
op_input=OperationInput(
66+
op_name='PutBucketPublicAccessBlock',
67+
method='PUT',
68+
headers=CaseInsensitiveDict({
69+
'Content-Type': 'application/xml',
70+
}),
71+
parameters={
72+
'publicAccessBlock': '',
73+
},
74+
bucket=request.bucket,
75+
op_metadata={'sub-resource': ['publicAccessBlock']},
76+
),
77+
custom_serializer=[
78+
serde_utils.add_content_md5
79+
]
80+
)
81+
82+
op_output = client.invoke_operation(op_input, **kwargs)
83+
84+
return serde.deserialize_output(
85+
result=models.PutBucketPublicAccessBlockResult(),
86+
op_output=op_output,
87+
custom_deserializer=[
88+
serde.deserialize_output_xmlbody
89+
],
90+
)
91+
92+
def delete_bucket_public_access_block(client: _SyncClientImpl, request: models.DeleteBucketPublicAccessBlockRequest, **kwargs) -> models.DeleteBucketPublicAccessBlockResult:
93+
"""
94+
delete_bucket_public_access_block synchronously
95+
96+
Args:
97+
client (_SyncClientImpl): A agent that sends the request.
98+
request (DeleteBucketPublicAccessBlockRequest): The request for the DeleteBucketPublicAccessBlock operation.
99+
100+
Returns:
101+
DeleteBucketPublicAccessBlockResult: The result for the DeleteBucketPublicAccessBlock operation.
102+
"""
103+
104+
op_input = serde.serialize_input(
105+
request=request,
106+
op_input=OperationInput(
107+
op_name='DeleteBucketPublicAccessBlock',
108+
method='DELETE',
109+
headers=CaseInsensitiveDict({
110+
'Content-Type': 'application/xml',
111+
}),
112+
parameters={
113+
'publicAccessBlock': '',
114+
},
115+
bucket=request.bucket,
116+
op_metadata={'sub-resource': ['publicAccessBlock']},
117+
),
118+
custom_serializer=[
119+
serde_utils.add_content_md5
120+
]
121+
)
122+
123+
op_output = client.invoke_operation(op_input, **kwargs)
124+
125+
return serde.deserialize_output(
126+
result=models.DeleteBucketPublicAccessBlockResult(),
127+
op_output=op_output,
128+
custom_deserializer=[
129+
serde.deserialize_output_xmlbody
130+
],
131+
)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import argparse
2+
import alibabacloud_oss_v2 as oss
3+
4+
parser = argparse.ArgumentParser(description="delete bucket public access block sample")
5+
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
6+
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
7+
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
8+
9+
def main():
10+
11+
args = parser.parse_args()
12+
13+
# Loading credentials values from the environment variables
14+
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
15+
16+
# Using the SDK's default configuration
17+
cfg = oss.config.load_default()
18+
cfg.credentials_provider = credentials_provider
19+
cfg.region = args.region
20+
if args.endpoint is not None:
21+
cfg.endpoint = args.endpoint
22+
23+
client = oss.Client(cfg)
24+
25+
result = client.delete_bucket_public_access_block(oss.DeleteBucketPublicAccessBlockRequest(
26+
bucket=args.bucket,
27+
))
28+
29+
print(f'status code: {result.status_code},'
30+
f' request id: {result.request_id},'
31+
)
32+
33+
34+
if __name__ == "__main__":
35+
main()

0 commit comments

Comments
 (0)