import datetime
from typing import Optional, List, Any, Union
from .. import serde
[docs]
class RefererList(serde.Model):
"""
The container that stores the Referer whitelist. ****The PutBucketReferer operation overwrites the existing Referer whitelist with the Referer whitelist specified in RefererList. If RefererList is not specified in the request, which specifies that no Referer elements are included, the operation clears the existing Referer whitelist.
"""
_attribute_map = {
'referers': {'tag': 'xml', 'rename': 'Referer', 'type': '[str]'},
}
_xml_map = {
'name': 'RefererList'
}
def __init__(
self,
referers: Optional[List[str]] = None,
**kwargs: Any
) -> None:
"""
referers (List[str], optional): The addresses in the Referer whitelist.
"""
super().__init__(**kwargs)
self.referers = referers
[docs]
class RefererBlacklist(serde.Model):
"""
The container that stores the Referer blacklist.
"""
_attribute_map = {
'referers': {'tag': 'xml', 'rename': 'Referer', 'type': '[str]'},
}
_xml_map = {
'name': 'RefererBlacklist'
}
def __init__(
self,
referers: Optional[List[str]] = None,
**kwargs: Any
) -> None:
"""
referers (List[str], optional): The addresses in the Referer blacklist.
"""
super().__init__(**kwargs)
self.referers = referers
[docs]
class RefererConfiguration(serde.Model):
"""
The container that stores the hotlink protection configurations.
"""
_attribute_map = {
'allow_empty_referer': {'tag': 'xml', 'rename': 'AllowEmptyReferer', 'type': 'bool'},
'allow_truncate_query_string': {'tag': 'xml', 'rename': 'AllowTruncateQueryString', 'type': 'bool'},
'truncate_path': {'tag': 'xml', 'rename': 'TruncatePath', 'type': 'bool'},
'referer_list': {'tag': 'xml', 'rename': 'RefererList', 'type': 'RefererList'},
'referer_blacklist': {'tag': 'xml', 'rename': 'RefererBlacklist', 'type': 'RefererBlacklist'},
}
_xml_map = {
'name': 'RefererConfiguration'
}
_dependency_map = {
'RefererList': {'new': lambda: RefererList()},
'RefererBlacklist': {'new': lambda: RefererBlacklist()},
}
def __init__(
self,
allow_empty_referer: Optional[bool] = None,
allow_truncate_query_string: Optional[bool] = None,
truncate_path: Optional[bool] = None,
referer_list: Optional[RefererList] = None,
referer_blacklist: Optional[RefererBlacklist] = None,
**kwargs: Any
) -> None:
"""
allow_empty_referer (bool, optional): Specifies whether to allow a request whose Referer field is empty. Valid values:* true (default)* false
allow_truncate_query_string (bool, optional): Specifies whether to truncate the query string in the URL when the Referer is matched. Valid values:* true (default)* false
truncate_path (bool, optional): Specifies whether to truncate the path and parts that follow the path in the URL when the Referer is matched. Valid values:* true* false
referer_list (RefererList, optional): The container that stores the Referer whitelist. ****The PutBucketReferer operation overwrites the existing Referer whitelist with the Referer whitelist specified in RefererList. If RefererList is not specified in the request, which specifies that no Referer elements are included, the operation clears the existing Referer whitelist.
referer_blacklist (RefererBlacklist, optional): The container that stores the Referer blacklist.
"""
super().__init__(**kwargs)
self.allow_empty_referer = allow_empty_referer
self.allow_truncate_query_string = allow_truncate_query_string
self.truncate_path = truncate_path
self.referer_list = referer_list
self.referer_blacklist = referer_blacklist
[docs]
class PutBucketRefererRequest(serde.RequestModel):
"""
The request for the PutBucketReferer operation.
"""
_attribute_map = {
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str', 'required': True},
'referer_configuration': {'tag': 'input', 'position': 'body', 'rename': 'RefererConfiguration', 'type': 'xml'},
}
def __init__(
self,
bucket: str = None,
referer_configuration: Optional[RefererConfiguration] = None,
**kwargs: Any
) -> None:
"""
bucket (str, required): The name of the bucket.
referer_configuration (RefererConfiguration, optional): The request body schema.
"""
super().__init__(**kwargs)
self.bucket = bucket
self.referer_configuration = referer_configuration
[docs]
class PutBucketRefererResult(serde.ResultModel):
"""
The request for the PutBucketReferer operation.
"""
[docs]
class GetBucketRefererRequest(serde.RequestModel):
"""
The request for the GetBucketReferer operation.
"""
_attribute_map = {
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str', 'required': True},
}
def __init__(
self,
bucket: str = None,
**kwargs: Any
) -> None:
"""
bucket (str, required): The name of the bucket.
"""
super().__init__(**kwargs)
self.bucket = bucket
[docs]
class GetBucketRefererResult(serde.ResultModel):
"""
The request for the GetBucketReferer operation.
"""
_attribute_map = {
'referer_configuration': {'tag': 'output', 'position': 'body', 'rename': 'RefererConfiguration', 'type': 'RefererConfiguration,xml'},
}
_dependency_map = {
'RefererConfiguration': {'new': lambda: RefererConfiguration()},
}
def __init__(
self,
referer_configuration: Optional[RefererConfiguration] = None,
**kwargs: Any
) -> None:
"""
referer_configuration (RefererConfiguration, optional): The container that stores the hotlink protection configurations.
"""
super().__init__(**kwargs)
self.referer_configuration = referer_configuration