Skip to content

Commit 22114ba

Browse files
zhuxiaolong37huiguangjun
authored andcommitted
add bucket access point public access block
1 parent 55a90df commit 22114ba

11 files changed

+955
-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.access_point_public_access_block import *
3435
from .models.bucket_data_redundancy_transition import *
3536
from .models.bucket_transfer_acceleration import *
3637
from .models.bucket_public_access_block import *

alibabacloud_oss_v2/client.py

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

1722+
# access point public access block
1723+
def put_access_point_public_access_block(self, request: models.PutAccessPointPublicAccessBlockRequest, **kwargs
1724+
) -> models.PutAccessPointPublicAccessBlockResult:
1725+
"""
1726+
Enables or disables Block Public Access for an access point.
1727+
1728+
Args:
1729+
request (PutAccessPointPublicAccessBlockRequest): Request parameters for PutAccessPointPublicAccessBlock operation.
1730+
1731+
Returns:
1732+
PutAccessPointPublicAccessBlockResult: Response result for PutAccessPointPublicAccessBlock operation.
1733+
"""
1734+
return operations.put_access_point_public_access_block(self._client, request, **kwargs)
1735+
1736+
def get_access_point_public_access_block(self, request: models.GetAccessPointPublicAccessBlockRequest, **kwargs
1737+
) -> models.GetAccessPointPublicAccessBlockResult:
1738+
"""
1739+
Queries the Block Public Access configurations of an access point.
1740+
1741+
Args:
1742+
request (GetAccessPointPublicAccessBlockRequest): Request parameters for GetAccessPointPublicAccessBlock operation.
1743+
1744+
Returns:
1745+
GetAccessPointPublicAccessBlockResult: Response result for GetAccessPointPublicAccessBlock operation.
1746+
"""
1747+
return operations.get_access_point_public_access_block(self._client, request, **kwargs)
1748+
1749+
def delete_access_point_public_access_block(self, request: models.DeleteAccessPointPublicAccessBlockRequest, **kwargs
1750+
) -> models.DeleteAccessPointPublicAccessBlockResult:
1751+
"""
1752+
Deletes the Block Public Access configurations of an access point.
1753+
1754+
Args:
1755+
request (DeleteAccessPointPublicAccessBlockRequest): Request parameters for DeleteAccessPointPublicAccessBlock operation.
1756+
1757+
Returns:
1758+
DeleteAccessPointPublicAccessBlockResult: Response result for DeleteAccessPointPublicAccessBlock operation.
1759+
"""
1760+
return operations.delete_access_point_public_access_block(self._client, request, **kwargs)
1761+
17221762
# bucket data redundancy transition
17231763
def create_bucket_data_redundancy_transition(self, request: models.CreateBucketDataRedundancyTransitionRequest, **kwargs
17241764
) -> models.CreateBucketDataRedundancyTransitionResult:

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 .access_point_public_access_block import *
2223
from .bucket_data_redundancy_transition import *
2324
from .bucket_transfer_acceleration import *
2425
from .bucket_public_access_block import *
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
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 PutAccessPointPublicAccessBlockRequest(serde.RequestModel):
32+
"""
33+
The request for the PutAccessPointPublicAccessBlock operation.
34+
"""
35+
36+
_attribute_map = {
37+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str', 'required': True},
38+
'access_point_name': {'tag': 'input', 'position': 'query', 'rename': 'x-oss-access-point-name', 'type': 'str', 'required': True},
39+
'public_access_block_configuration': {'tag': 'input', 'position': 'body', 'rename': 'PublicAccessBlockConfiguration', 'type': 'xml'},
40+
}
41+
42+
def __init__(
43+
self,
44+
bucket: str = None,
45+
access_point_name: str = None,
46+
public_access_block_configuration: Optional[PublicAccessBlockConfiguration] = None,
47+
**kwargs: Any
48+
) -> None:
49+
"""
50+
bucket (str, required): The name of the bucket.
51+
access_point_name (str, required): The name of the access point.
52+
public_access_block_configuration (PublicAccessBlockConfiguration, optional): The request body.
53+
"""
54+
super().__init__(**kwargs)
55+
self.bucket = bucket
56+
self.access_point_name = access_point_name
57+
self.public_access_block_configuration = public_access_block_configuration
58+
59+
60+
class PutAccessPointPublicAccessBlockResult(serde.ResultModel):
61+
"""
62+
The request for the PutAccessPointPublicAccessBlock operation.
63+
"""
64+
65+
66+
class GetAccessPointPublicAccessBlockRequest(serde.RequestModel):
67+
"""
68+
The request for the GetAccessPointPublicAccessBlock operation.
69+
"""
70+
71+
_attribute_map = {
72+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str'},
73+
'access_point_name': {'tag': 'input', 'position': 'query', 'rename': 'x-oss-access-point-name', 'type': 'str'},
74+
}
75+
76+
def __init__(
77+
self,
78+
bucket: Optional[str] = None,
79+
access_point_name: Optional[str] = None,
80+
**kwargs: Any
81+
) -> None:
82+
"""
83+
bucket (str, optional): The name of the bucket.
84+
access_point_name (str, optional): The name of the access point.
85+
"""
86+
super().__init__(**kwargs)
87+
self.bucket = bucket
88+
self.access_point_name = access_point_name
89+
90+
91+
class GetAccessPointPublicAccessBlockResult(serde.ResultModel):
92+
"""
93+
The request for the GetAccessPointPublicAccessBlock operation.
94+
"""
95+
96+
_attribute_map = {
97+
'public_access_block_configuration': {'tag': 'output', 'position': 'body', 'rename': 'PublicAccessBlockConfiguration', 'type': 'PublicAccessBlockConfiguration,xml'},
98+
}
99+
100+
_dependency_map = {
101+
'PublicAccessBlockConfiguration': {'new': lambda: PublicAccessBlockConfiguration()},
102+
}
103+
104+
def __init__(
105+
self,
106+
public_access_block_configuration: Optional[PublicAccessBlockConfiguration] = None,
107+
**kwargs: Any
108+
) -> None:
109+
"""
110+
public_access_block_configuration (PublicAccessBlockConfiguration, optional): The container in which the Block Public Access configurations are stored.
111+
"""
112+
super().__init__(**kwargs)
113+
self.public_access_block_configuration = public_access_block_configuration
114+
115+
116+
class DeleteAccessPointPublicAccessBlockRequest(serde.RequestModel):
117+
"""
118+
The request for the DeleteAccessPointPublicAccessBlock operation.
119+
"""
120+
121+
_attribute_map = {
122+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str'},
123+
'access_point_name': {'tag': 'input', 'position': 'query', 'rename': 'x-oss-access-point-name', 'type': 'str'},
124+
}
125+
126+
def __init__(
127+
self,
128+
bucket: Optional[str] = None,
129+
access_point_name: Optional[str] = None,
130+
**kwargs: Any
131+
) -> None:
132+
"""
133+
bucket (str, optional): The name of the bucket.
134+
access_point_name (str, optional): The name of the access point.
135+
"""
136+
super().__init__(**kwargs)
137+
self.bucket = bucket
138+
self.access_point_name = access_point_name
139+
140+
141+
class DeleteAccessPointPublicAccessBlockResult(serde.ResultModel):
142+
"""
143+
The request for the DeleteAccessPointPublicAccessBlock operation.
144+
"""

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 .access_point_public_access_block import *
2223
from .bucket_data_redundancy_transition import *
2324
from .bucket_transfer_acceleration import *
2425
from .bucket_public_access_block import *
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
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 put_access_point_public_access_block(client: _SyncClientImpl, request: models.PutAccessPointPublicAccessBlockRequest, **kwargs) -> models.PutAccessPointPublicAccessBlockResult:
11+
"""
12+
put_access_point_public_access_block synchronously
13+
14+
Args:
15+
client (_SyncClientImpl): A agent that sends the request.
16+
request (PutAccessPointPublicAccessBlockRequest): The request for the PutAccessPointPublicAccessBlock operation.
17+
18+
Returns:
19+
PutAccessPointPublicAccessBlockResult: The result for the PutAccessPointPublicAccessBlock operation.
20+
"""
21+
22+
op_input = serde.serialize_input(
23+
request=request,
24+
op_input=OperationInput(
25+
op_name='PutAccessPointPublicAccessBlock',
26+
method='PUT',
27+
headers=CaseInsensitiveDict({
28+
'Content-Type': 'application/xml',
29+
}),
30+
parameters={
31+
'publicAccessBlock': '',
32+
},
33+
bucket=request.bucket,
34+
op_metadata={'sub-resource': ['publicAccessBlock', 'x-oss-access-point-name']},
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.PutAccessPointPublicAccessBlockResult(),
45+
op_output=op_output,
46+
custom_deserializer=[
47+
serde.deserialize_output_xmlbody
48+
],
49+
)
50+
51+
def get_access_point_public_access_block(client: _SyncClientImpl, request: models.GetAccessPointPublicAccessBlockRequest, **kwargs) -> models.GetAccessPointPublicAccessBlockResult:
52+
"""
53+
get_access_point_public_access_block synchronously
54+
55+
Args:
56+
client (_SyncClientImpl): A agent that sends the request.
57+
request (GetAccessPointPublicAccessBlockRequest): The request for the GetAccessPointPublicAccessBlock operation.
58+
59+
Returns:
60+
GetAccessPointPublicAccessBlockResult: The result for the GetAccessPointPublicAccessBlock operation.
61+
"""
62+
63+
op_input = serde.serialize_input(
64+
request=request,
65+
op_input=OperationInput(
66+
op_name='GetAccessPointPublicAccessBlock',
67+
method='GET',
68+
headers=CaseInsensitiveDict({
69+
'Content-Type': 'application/xml',
70+
}),
71+
parameters={
72+
'publicAccessBlock': '',
73+
},
74+
bucket=request.bucket,
75+
op_metadata={'sub-resource': ['publicAccessBlock', 'x-oss-access-point-name']},
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.GetAccessPointPublicAccessBlockResult(),
86+
op_output=op_output,
87+
custom_deserializer=[
88+
serde.deserialize_output_xmlbody
89+
],
90+
)
91+
92+
93+
def delete_access_point_public_access_block(client: _SyncClientImpl, request: models.DeleteAccessPointPublicAccessBlockRequest, **kwargs) -> models.DeleteAccessPointPublicAccessBlockResult:
94+
"""
95+
delete_access_point_public_access_block synchronously
96+
97+
Args:
98+
client (_SyncClientImpl): A agent that sends the request.
99+
request (DeleteAccessPointPublicAccessBlockRequest): The request for the DeleteAccessPointPublicAccessBlock operation.
100+
101+
Returns:
102+
DeleteAccessPointPublicAccessBlockResult: The result for the DeleteAccessPointPublicAccessBlock operation.
103+
"""
104+
105+
op_input = serde.serialize_input(
106+
request=request,
107+
op_input=OperationInput(
108+
op_name='DeleteAccessPointPublicAccessBlock',
109+
method='DELETE',
110+
headers=CaseInsensitiveDict({
111+
'Content-Type': 'application/xml',
112+
}),
113+
parameters={
114+
'publicAccessBlock': '',
115+
},
116+
bucket=request.bucket,
117+
op_metadata={'sub-resource': ['publicAccessBlock', 'x-oss-access-point-name']},
118+
),
119+
custom_serializer=[
120+
serde_utils.add_content_md5
121+
]
122+
)
123+
124+
op_output = client.invoke_operation(op_input, **kwargs)
125+
126+
return serde.deserialize_output(
127+
result=models.DeleteAccessPointPublicAccessBlockResult(),
128+
op_output=op_output,
129+
custom_deserializer=[
130+
serde.deserialize_output_xmlbody
131+
],
132+
)
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import argparse
2+
import alibabacloud_oss_v2 as oss
3+
4+
parser = argparse.ArgumentParser(description="delete access point 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+
parser.add_argument('--access_point_name', help='The name of the access point.', required=True)
9+
10+
11+
def main():
12+
13+
args = parser.parse_args()
14+
15+
# Loading credentials values from the environment variables
16+
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
17+
18+
# Using the SDK's default configuration
19+
cfg = oss.config.load_default()
20+
cfg.credentials_provider = credentials_provider
21+
cfg.region = args.region
22+
if args.endpoint is not None:
23+
cfg.endpoint = args.endpoint
24+
25+
client = oss.Client(cfg)
26+
27+
result = client.delete_access_point_public_access_block(oss.DeleteAccessPointPublicAccessBlockRequest(
28+
bucket=args.bucket,
29+
access_point_name=args.access_point_name,
30+
))
31+
32+
print(f'status code: {result.status_code},'
33+
f' request id: {result.request_id},'
34+
)
35+
36+
37+
if __name__ == "__main__":
38+
main()

0 commit comments

Comments
 (0)