Skip to content

Commit 1b94096

Browse files
zhuxiaolong37huiguangjun
authored andcommitted
add public access block
1 parent 755ac2d commit 1b94096

File tree

11 files changed

+734
-0
lines changed

11 files changed

+734
-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.public_access_block import *
3435
from .models.bucket_resource_group import *
3536
from .models.bucket_style import *
3637

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+
# public access block
1723+
def get_public_access_block(self, request: models.GetPublicAccessBlockRequest, **kwargs
1724+
) -> models.GetPublicAccessBlockResult:
1725+
"""
1726+
Queries the Block Public Access configurations of OSS resources.
1727+
1728+
Args:
1729+
request (GetPublicAccessBlockRequest): Request parameters for GetPublicAccessBlock operation.
1730+
1731+
Returns:
1732+
GetPublicAccessBlockResult: Response result for GetPublicAccessBlock operation.
1733+
"""
1734+
return operations.get_public_access_block(self._client, request, **kwargs)
1735+
1736+
1737+
def put_public_access_block(self, request: models.PutPublicAccessBlockRequest, **kwargs
1738+
) -> models.PutPublicAccessBlockResult:
1739+
"""
1740+
Enables or disables Block Public Access for Object Storage Service (OSS) resources.
1741+
1742+
Args:
1743+
request (PutPublicAccessBlockRequest): Request parameters for PutPublicAccessBlock operation.
1744+
1745+
Returns:
1746+
PutPublicAccessBlockResult: Response result for PutPublicAccessBlock operation.
1747+
"""
1748+
return operations.put_public_access_block(self._client, request, **kwargs)
1749+
1750+
1751+
def delete_public_access_block(self, request: models.DeletePublicAccessBlockRequest, **kwargs
1752+
) -> models.DeletePublicAccessBlockResult:
1753+
"""
1754+
Deletes the Block Public Access configurations of OSS resources.
1755+
1756+
Args:
1757+
request (DeletePublicAccessBlockRequest): Request parameters for DeletePublicAccessBlock operation.
1758+
1759+
Returns:
1760+
DeletePublicAccessBlockResult: Response result for DeletePublicAccessBlock operation.
1761+
"""
1762+
return operations.delete_public_access_block(self._client, request, **kwargs)
1763+
17221764
# bucket resource group
17231765
def get_bucket_resource_group(self, request: models.GetBucketResourceGroupRequest, **kwargs
17241766
) -> models.GetBucketResourceGroupResult:

alibabacloud_oss_v2/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@
1919
from .bucket_referer import *
2020
from .bucket_worm import *
2121
from .bucket_request_payment import *
22+
from .public_access_block import *
2223
from .bucket_resource_group import *
2324
from .bucket_style import *
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
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+
class GetPublicAccessBlockRequest(serde.RequestModel):
32+
"""
33+
The request for the GetPublicAccessBlock operation.
34+
"""
35+
36+
_attribute_map = {
37+
}
38+
39+
def __init__(
40+
self,
41+
**kwargs: Any
42+
) -> None:
43+
"""
44+
"""
45+
super().__init__(**kwargs)
46+
47+
48+
class GetPublicAccessBlockResult(serde.ResultModel):
49+
"""
50+
The request for the GetPublicAccessBlock operation.
51+
"""
52+
53+
_attribute_map = {
54+
'public_access_block_configuration': {'tag': 'output', 'position': 'body', 'rename': 'PublicAccessBlockConfiguration', 'type': 'PublicAccessBlockConfiguration,xml'},
55+
}
56+
57+
_dependency_map = {
58+
'PublicAccessBlockConfiguration': {'new': lambda: PublicAccessBlockConfiguration()},
59+
}
60+
61+
def __init__(
62+
self,
63+
public_access_block_configuration: Optional[PublicAccessBlockConfiguration] = None,
64+
**kwargs: Any
65+
) -> None:
66+
"""
67+
public_access_block_configuration (PublicAccessBlockConfiguration, optional): The container in which the Block Public Access configurations are stored.
68+
"""
69+
super().__init__(**kwargs)
70+
self.public_access_block_configuration = public_access_block_configuration
71+
72+
class PutPublicAccessBlockRequest(serde.RequestModel):
73+
"""
74+
The request for the PutPublicAccessBlock operation.
75+
"""
76+
77+
_attribute_map = {
78+
'public_access_block_configuration': {'tag': 'input', 'position': 'body', 'rename': 'PublicAccessBlockConfiguration', 'type': 'xml'},
79+
}
80+
81+
def __init__(
82+
self,
83+
public_access_block_configuration: Optional[PublicAccessBlockConfiguration] = None,
84+
**kwargs: Any
85+
) -> None:
86+
"""
87+
public_access_block_configuration (PublicAccessBlockConfiguration, optional): Request body.
88+
"""
89+
super().__init__(**kwargs)
90+
self.public_access_block_configuration = public_access_block_configuration
91+
92+
93+
class PutPublicAccessBlockResult(serde.ResultModel):
94+
"""
95+
The request for the PutPublicAccessBlock operation.
96+
"""
97+
98+
class DeletePublicAccessBlockRequest(serde.RequestModel):
99+
"""
100+
The request for the DeletePublicAccessBlock operation.
101+
"""
102+
103+
_attribute_map = {
104+
}
105+
106+
def __init__(
107+
self,
108+
**kwargs: Any
109+
) -> None:
110+
"""
111+
"""
112+
super().__init__(**kwargs)
113+
114+
115+
class DeletePublicAccessBlockResult(serde.ResultModel):
116+
"""
117+
The request for the DeletePublicAccessBlock operation.
118+
"""

alibabacloud_oss_v2/operations/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@
1919
from .bucket_referer import *
2020
from .bucket_worm import *
2121
from .bucket_request_payment import *
22+
from .public_access_block import *
2223
from .bucket_resource_group import *
2324
from .bucket_style import *
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
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_public_access_block(client: _SyncClientImpl, request: models.GetPublicAccessBlockRequest, **kwargs) -> models.GetPublicAccessBlockResult:
11+
"""
12+
get_public_access_block synchronously
13+
14+
Args:
15+
client (_SyncClientImpl): A agent that sends the request.
16+
request (GetPublicAccessBlockRequest): The request for the GetPublicAccessBlock operation.
17+
18+
Returns:
19+
GetPublicAccessBlockResult: The result for the GetPublicAccessBlock operation.
20+
"""
21+
22+
op_input = serde.serialize_input(
23+
request=request,
24+
op_input=OperationInput(
25+
op_name='GetPublicAccessBlock',
26+
method='GET',
27+
headers=CaseInsensitiveDict({
28+
'Content-Type': 'application/xml',
29+
}),
30+
parameters={
31+
'publicAccessBlock': '',
32+
},
33+
op_metadata={'sub-resource': ['publicAccessBlock']},
34+
),
35+
custom_serializer=[
36+
serde_utils.add_content_md5
37+
]
38+
)
39+
40+
op_output = client.invoke_operation(op_input, **kwargs)
41+
42+
return serde.deserialize_output(
43+
result=models.GetPublicAccessBlockResult(),
44+
op_output=op_output,
45+
custom_deserializer=[
46+
serde.deserialize_output_xmlbody
47+
],
48+
)
49+
50+
def put_public_access_block(client: _SyncClientImpl, request: models.PutPublicAccessBlockRequest, **kwargs) -> models.PutPublicAccessBlockResult:
51+
"""
52+
put_public_access_block synchronously
53+
54+
Args:
55+
client (_SyncClientImpl): A agent that sends the request.
56+
request (PutPublicAccessBlockRequest): The request for the PutPublicAccessBlock operation.
57+
58+
Returns:
59+
PutPublicAccessBlockResult: The result for the PutPublicAccessBlock operation.
60+
"""
61+
62+
op_input = serde.serialize_input(
63+
request=request,
64+
op_input=OperationInput(
65+
op_name='PutPublicAccessBlock',
66+
method='PUT',
67+
headers=CaseInsensitiveDict({
68+
'Content-Type': 'application/xml',
69+
}),
70+
parameters={
71+
'publicAccessBlock': '',
72+
},
73+
op_metadata={'sub-resource': ['publicAccessBlock']},
74+
),
75+
custom_serializer=[
76+
serde_utils.add_content_md5
77+
]
78+
)
79+
80+
op_output = client.invoke_operation(op_input, **kwargs)
81+
82+
return serde.deserialize_output(
83+
result=models.PutPublicAccessBlockResult(),
84+
op_output=op_output,
85+
custom_deserializer=[
86+
serde.deserialize_output_xmlbody
87+
],
88+
)
89+
90+
def delete_public_access_block(client: _SyncClientImpl, request: models.DeletePublicAccessBlockRequest, **kwargs) -> models.DeletePublicAccessBlockResult:
91+
"""
92+
delete_public_access_block synchronously
93+
94+
Args:
95+
client (_SyncClientImpl): A agent that sends the request.
96+
request (DeletePublicAccessBlockRequest): The request for the DeletePublicAccessBlock operation.
97+
98+
Returns:
99+
DeletePublicAccessBlockResult: The result for the DeletePublicAccessBlock operation.
100+
"""
101+
102+
op_input = serde.serialize_input(
103+
request=request,
104+
op_input=OperationInput(
105+
op_name='DeletePublicAccessBlock',
106+
method='DELETE',
107+
headers=CaseInsensitiveDict({
108+
'Content-Type': 'application/xml',
109+
}),
110+
parameters={
111+
'publicAccessBlock': '',
112+
},
113+
op_metadata={'sub-resource': ['publicAccessBlock']},
114+
),
115+
custom_serializer=[
116+
serde_utils.add_content_md5
117+
]
118+
)
119+
120+
op_output = client.invoke_operation(op_input, **kwargs)
121+
122+
return serde.deserialize_output(
123+
result=models.DeletePublicAccessBlockResult(),
124+
op_output=op_output,
125+
custom_deserializer=[
126+
serde.deserialize_output_xmlbody
127+
],
128+
)
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 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+
10+
def main():
11+
12+
args = parser.parse_args()
13+
14+
# Loading credentials values from the environment variables
15+
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
16+
17+
# Using the SDK's default configuration
18+
cfg = oss.config.load_default()
19+
cfg.credentials_provider = credentials_provider
20+
cfg.region = args.region
21+
if args.endpoint is not None:
22+
cfg.endpoint = args.endpoint
23+
24+
client = oss.Client(cfg)
25+
26+
result = client.delete_public_access_block(oss.DeletePublicAccessBlockRequest(
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()

sample/get_public_access_block.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import argparse
2+
import alibabacloud_oss_v2 as oss
3+
4+
parser = argparse.ArgumentParser(description="get 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+
10+
def main():
11+
12+
args = parser.parse_args()
13+
14+
# Loading credentials values from the environment variables
15+
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
16+
17+
# Using the SDK's default configuration
18+
cfg = oss.config.load_default()
19+
cfg.credentials_provider = credentials_provider
20+
cfg.region = args.region
21+
if args.endpoint is not None:
22+
cfg.endpoint = args.endpoint
23+
24+
client = oss.Client(cfg)
25+
26+
result = client.get_public_access_block(oss.GetPublicAccessBlockRequest(
27+
))
28+
29+
print(f'status code: {result.status_code},'
30+
f' request id: {result.request_id},'
31+
f' block public access: {result.public_access_block_configuration.block_public_access},'
32+
)
33+
34+
35+
if __name__ == "__main__":
36+
main()

0 commit comments

Comments
 (0)