Best Python code snippet using avocado_python
__init__.py
Source:__init__.py  
...8    PROTOCOL_VERSION = "1.1.0"9    @staticmethod10    def from_dict(d):11        return VersionInfo(d)12    def as_dict(self):13        return self.value14    def __repr__(self):15        return "<Enum VersionInfo. {}: {}>".format(16            limitedRepr(self.name), limitedRepr(self.value)17        )18class ConnectRequest:19    """20    (Internal Only) Request object to connect to the service.21    """22    __slots__ = [23        "__request_id",24        "__protocol_version",25        "__other_supported_protocol_versions",26        "__sdk_version",27        "__auth_token",28    ]29    _types_map = {30        "request_id": {"type": str, "subtype": None},31        "protocol_version": {"type": str, "subtype": None},32        "other_supported_protocol_versions": {"type": list, "subtype": str},33        "sdk_version": {"type": str, "subtype": None},34        "auth_token": {"type": str, "subtype": None},35    }36    _formats_map = {}37    _validations_map = {38        "request_id": {39            "required": True,40            "minLength": 1,41            "pattern": "^[\w ,.\-_]*$",42        },43        "protocol_version": {44            "required": True,45        },46        "other_supported_protocol_versions": {47            "required": False,48        },49        "sdk_version": {50            "required": False,51        },52        "auth_token": {53            "required": False,54        },55    }56    def __init__(57        self,58        request_id: str = None,59        protocol_version: str = None,60        other_supported_protocol_versions: List[str] = None,61        sdk_version: str = None,62        auth_token: str = None,63    ):64        pass65        self.__request_id = request_id66        self.__protocol_version = protocol_version67        self.__other_supported_protocol_versions = other_supported_protocol_versions68        self.__sdk_version = sdk_version69        self.__auth_token = auth_token70    def _get_request_id(self):71        return self.__request_id72    def _set_request_id(self, value):73        if not isinstance(value, str):74            raise TypeError("request_id must be str")75        self.__request_id = value76    request_id = property(_get_request_id, _set_request_id)77    def _get_protocol_version(self):78        return self.__protocol_version79    def _set_protocol_version(self, value):80        if not isinstance(value, str):81            raise TypeError("protocol_version must be str")82        self.__protocol_version = value83    protocol_version = property(_get_protocol_version, _set_protocol_version)84    def _get_other_supported_protocol_versions(self):85        return self.__other_supported_protocol_versions86    def _set_other_supported_protocol_versions(self, value):87        if value is not None and not isinstance(value, list):88            raise TypeError("other_supported_protocol_versions must be list")89        if value is not None and not all(isinstance(i, str) for i in value):90            raise TypeError("other_supported_protocol_versions list values must be str")91        self.__other_supported_protocol_versions = value92    other_supported_protocol_versions = property(93        _get_other_supported_protocol_versions, _set_other_supported_protocol_versions94    )95    def _get_sdk_version(self):96        return self.__sdk_version97    def _set_sdk_version(self, value):98        if value is not None and not isinstance(value, str):99            raise TypeError("sdk_version must be str")100        self.__sdk_version = value101    sdk_version = property(_get_sdk_version, _set_sdk_version)102    def _get_auth_token(self):103        return self.__auth_token104    def _set_auth_token(self, value):105        if value is not None and not isinstance(value, str):106            raise TypeError("auth_token must be str")107        self.__auth_token = value108    auth_token = property(_get_auth_token, _set_auth_token)109    @staticmethod110    def from_dict(d):111        v = {}112        if "requestId" in d:113            v["request_id"] = (114                str.from_dict(d["requestId"])115                if hasattr(str, "from_dict")116                else d["requestId"]117            )118        if "protocolVersion" in d:119            v["protocol_version"] = (120                str.from_dict(d["protocolVersion"])121                if hasattr(str, "from_dict")122                else d["protocolVersion"]123            )124        if "otherSupportedProtocolVersions" in d:125            v["other_supported_protocol_versions"] = [126                str.from_dict(p) if hasattr(str, "from_dict") else p127                for p in d["otherSupportedProtocolVersions"]128            ]129        if "sdkVersion" in d:130            v["sdk_version"] = (131                str.from_dict(d["sdkVersion"])132                if hasattr(str, "from_dict")133                else d["sdkVersion"]134            )135        if "authToken" in d:136            v["auth_token"] = (137                str.from_dict(d["authToken"])138                if hasattr(str, "from_dict")139                else d["authToken"]140            )141        return ConnectRequest(**v)142    def as_dict(self):143        d = {}144        if self.__request_id is not None:145            d["requestId"] = (146                self.__request_id.as_dict()147                if hasattr(self.__request_id, "as_dict")148                else self.__request_id149            )150        if self.__protocol_version is not None:151            d["protocolVersion"] = (152                self.__protocol_version.as_dict()153                if hasattr(self.__protocol_version, "as_dict")154                else self.__protocol_version155            )156        if self.__other_supported_protocol_versions is not None:157            d["otherSupportedProtocolVersions"] = [158                p.as_dict() if hasattr(p, "as_dict") else p159                for p in self.__other_supported_protocol_versions160            ]161        if self.__sdk_version is not None:162            d["sdkVersion"] = (163                self.__sdk_version.as_dict()164                if hasattr(self.__sdk_version, "as_dict")165                else self.__sdk_version166            )167        if self.__auth_token is not None:168            d["authToken"] = (169                self.__auth_token.as_dict()170                if hasattr(self.__auth_token, "as_dict")171                else self.__auth_token172            )173        return d174    def __repr__(self):175        return "<Class ConnectRequest. request_id: {}, protocol_version: {}, other_supported_protocol_versions: {}, sdk_version: {}, auth_token: {}>".format(176            limitedRepr(177                self.__request_id[:20]178                if isinstance(self.__request_id, bytes)179                else self.__request_id180            ),181            limitedRepr(182                self.__protocol_version[:20]183                if isinstance(self.__protocol_version, bytes)184                else self.__protocol_version185            ),186            limitedRepr(187                self.__other_supported_protocol_versions[:20]188                if isinstance(self.__other_supported_protocol_versions, bytes)189                else self.__other_supported_protocol_versions190            ),191            limitedRepr(192                self.__sdk_version[:20]193                if isinstance(self.__sdk_version, bytes)194                else self.__sdk_version195            ),196            limitedRepr(197                self.__auth_token[:20]198                if isinstance(self.__auth_token, bytes)199                else self.__auth_token200            ),201        )202class ResponseStatusCode(enum.Enum):203    """204    (Internal Only) Enum defining possible response status codes from StreamManager server.205    Success: Request succeeded.206    UnknownFailure: Encountered unknown StreamManager server failure.207    Unauthorized: Client is not authorized to perform this request.208    InvalidRequest: Client request is invalid.209    RequestPayloadTooLarge: Request payload is too large.210    ResourceNotFound: The requested resource does not exist.211    ServerTimeout: Server took too long and timed out.212    ResponsePayloadTooLarge: Server response exceeded the max allowed response payload size by the protocol.213    UnsupportedConnectVersion: Server does not support the Connect version presented by the Client.214    UnexpectedOperation: Operation presented was not expected by the Server.215    UnsupportedProtocolVersion: Protocol version presented by the Client is not compatible with the Server.216    InvalidProtocolVersion: Protocol version presented by the Client is not valid.217    FailedToConnect: Client failed to connect to the Server.218    NotEnoughMessages: There is not enough messages to return.219    MessageStoreReadError: Read messages encountered an error.220    OutOfMemoryError: Server ran out of memory.221    UpdateFailed: Update operation failed.222    UpdateNotAllowed: One or more fields are not allowed to be updated.223    UnknownOperation: Client request is not recognized by the server.224    """225    Success = 0226    UnknownFailure = 1227    Unauthorized = 2228    InvalidRequest = 3229    RequestPayloadTooLarge = 4230    ResourceNotFound = 5231    ServerTimeout = 6232    ResponsePayloadTooLarge = 7233    UnsupportedConnectVersion = 8234    UnexpectedOperation = 9235    UnsupportedProtocolVersion = 10236    InvalidProtocolVersion = 11237    FailedToConnect = 12238    NotEnoughMessages = 13239    MessageStoreReadError = 14240    OutOfMemoryError = 15241    UpdateFailed = 16242    UpdateNotAllowed = 17243    UnknownOperation = 18244    @staticmethod245    def from_dict(d):246        return ResponseStatusCode(d)247    def as_dict(self):248        return self.value249    def __repr__(self):250        return "<Enum ResponseStatusCode. {}: {}>".format(251            limitedRepr(self.name), limitedRepr(self.value)252        )253class ConnectResponse:254    """255    Internal Only.256    """257    __slots__ = [258        "__request_id",259        "__status",260        "__error_message",261        "__protocol_version",262        "__supported_protocol_versions",263        "__server_version",264        "__client_identifier",265    ]266    _types_map = {267        "request_id": {"type": str, "subtype": None},268        "status": {"type": ResponseStatusCode, "subtype": None},269        "error_message": {"type": str, "subtype": None},270        "protocol_version": {"type": str, "subtype": None},271        "supported_protocol_versions": {"type": list, "subtype": str},272        "server_version": {"type": str, "subtype": None},273        "client_identifier": {"type": str, "subtype": None},274    }275    _formats_map = {}276    _validations_map = {277        "request_id": {278            "required": False,279            "minLength": 1,280            "pattern": "^[\w ,.\-_]*$",281        },282        "status": {283            "required": True,284        },285        "error_message": {286            "required": False,287        },288        "protocol_version": {289            "required": False,290        },291        "supported_protocol_versions": {292            "required": False,293        },294        "server_version": {295            "required": False,296        },297        "client_identifier": {298            "required": False,299        },300    }301    def __init__(302        self,303        request_id: str = None,304        status: ResponseStatusCode = None,305        error_message: str = None,306        protocol_version: str = None,307        supported_protocol_versions: List[str] = None,308        server_version: str = None,309        client_identifier: str = None,310    ):311        pass312        self.__request_id = request_id313        self.__status = status314        self.__error_message = error_message315        self.__protocol_version = protocol_version316        self.__supported_protocol_versions = supported_protocol_versions317        self.__server_version = server_version318        self.__client_identifier = client_identifier319    def _get_request_id(self):320        return self.__request_id321    def _set_request_id(self, value):322        if value is not None and not isinstance(value, str):323            raise TypeError("request_id must be str")324        self.__request_id = value325    request_id = property(_get_request_id, _set_request_id)326    def _get_status(self):327        return self.__status328    def _set_status(self, value):329        if not isinstance(value, ResponseStatusCode):330            raise TypeError("status must be ResponseStatusCode")331        self.__status = value332    status = property(_get_status, _set_status)333    def _get_error_message(self):334        return self.__error_message335    def _set_error_message(self, value):336        if value is not None and not isinstance(value, str):337            raise TypeError("error_message must be str")338        self.__error_message = value339    error_message = property(_get_error_message, _set_error_message)340    def _get_protocol_version(self):341        return self.__protocol_version342    def _set_protocol_version(self, value):343        if value is not None and not isinstance(value, str):344            raise TypeError("protocol_version must be str")345        self.__protocol_version = value346    protocol_version = property(_get_protocol_version, _set_protocol_version)347    def _get_supported_protocol_versions(self):348        return self.__supported_protocol_versions349    def _set_supported_protocol_versions(self, value):350        if value is not None and not isinstance(value, list):351            raise TypeError("supported_protocol_versions must be list")352        if value is not None and not all(isinstance(i, str) for i in value):353            raise TypeError("supported_protocol_versions list values must be str")354        self.__supported_protocol_versions = value355    supported_protocol_versions = property(356        _get_supported_protocol_versions, _set_supported_protocol_versions357    )358    def _get_server_version(self):359        return self.__server_version360    def _set_server_version(self, value):361        if value is not None and not isinstance(value, str):362            raise TypeError("server_version must be str")363        self.__server_version = value364    server_version = property(_get_server_version, _set_server_version)365    def _get_client_identifier(self):366        return self.__client_identifier367    def _set_client_identifier(self, value):368        if value is not None and not isinstance(value, str):369            raise TypeError("client_identifier must be str")370        self.__client_identifier = value371    client_identifier = property(_get_client_identifier, _set_client_identifier)372    @staticmethod373    def from_dict(d):374        v = {}375        if "requestId" in d:376            v["request_id"] = (377                str.from_dict(d["requestId"])378                if hasattr(str, "from_dict")379                else d["requestId"]380            )381        if "status" in d:382            v["status"] = (383                ResponseStatusCode.from_dict(d["status"])384                if hasattr(ResponseStatusCode, "from_dict")385                else d["status"]386            )387        if "errorMessage" in d:388            v["error_message"] = (389                str.from_dict(d["errorMessage"])390                if hasattr(str, "from_dict")391                else d["errorMessage"]392            )393        if "protocolVersion" in d:394            v["protocol_version"] = (395                str.from_dict(d["protocolVersion"])396                if hasattr(str, "from_dict")397                else d["protocolVersion"]398            )399        if "supportedProtocolVersions" in d:400            v["supported_protocol_versions"] = [401                str.from_dict(p) if hasattr(str, "from_dict") else p402                for p in d["supportedProtocolVersions"]403            ]404        if "serverVersion" in d:405            v["server_version"] = (406                str.from_dict(d["serverVersion"])407                if hasattr(str, "from_dict")408                else d["serverVersion"]409            )410        if "clientIdentifier" in d:411            v["client_identifier"] = (412                str.from_dict(d["clientIdentifier"])413                if hasattr(str, "from_dict")414                else d["clientIdentifier"]415            )416        return ConnectResponse(**v)417    def as_dict(self):418        d = {}419        if self.__request_id is not None:420            d["requestId"] = (421                self.__request_id.as_dict()422                if hasattr(self.__request_id, "as_dict")423                else self.__request_id424            )425        if self.__status is not None:426            d["status"] = (427                self.__status.as_dict()428                if hasattr(self.__status, "as_dict")429                else self.__status430            )431        if self.__error_message is not None:432            d["errorMessage"] = (433                self.__error_message.as_dict()434                if hasattr(self.__error_message, "as_dict")435                else self.__error_message436            )437        if self.__protocol_version is not None:438            d["protocolVersion"] = (439                self.__protocol_version.as_dict()440                if hasattr(self.__protocol_version, "as_dict")441                else self.__protocol_version442            )443        if self.__supported_protocol_versions is not None:444            d["supportedProtocolVersions"] = [445                p.as_dict() if hasattr(p, "as_dict") else p446                for p in self.__supported_protocol_versions447            ]448        if self.__server_version is not None:449            d["serverVersion"] = (450                self.__server_version.as_dict()451                if hasattr(self.__server_version, "as_dict")452                else self.__server_version453            )454        if self.__client_identifier is not None:455            d["clientIdentifier"] = (456                self.__client_identifier.as_dict()457                if hasattr(self.__client_identifier, "as_dict")458                else self.__client_identifier459            )460        return d461    def __repr__(self):462        return "<Class ConnectResponse. request_id: {}, status: {}, error_message: {}, protocol_version: {}, supported_protocol_versions: {}, server_version: {}, client_identifier: {}>".format(463            limitedRepr(464                self.__request_id[:20]465                if isinstance(self.__request_id, bytes)466                else self.__request_id467            ),468            limitedRepr(469                self.__status[:20]470                if isinstance(self.__status, bytes)471                else self.__status472            ),473            limitedRepr(474                self.__error_message[:20]475                if isinstance(self.__error_message, bytes)476                else self.__error_message477            ),478            limitedRepr(479                self.__protocol_version[:20]480                if isinstance(self.__protocol_version, bytes)481                else self.__protocol_version482            ),483            limitedRepr(484                self.__supported_protocol_versions[:20]485                if isinstance(self.__supported_protocol_versions, bytes)486                else self.__supported_protocol_versions487            ),488            limitedRepr(489                self.__server_version[:20]490                if isinstance(self.__server_version, bytes)491                else self.__server_version492            ),493            limitedRepr(494                self.__client_identifier[:20]495                if isinstance(self.__client_identifier, bytes)496                else self.__client_identifier497            ),498        )499class Operation(enum.Enum):500    """501    Internal Only.502    """503    Unknown = 0504    Connect = 1505    CreateMessageStream = 2506    DeleteMessageStream = 3507    AppendMessage = 4508    ReadMessages = 5509    ConnectResponse = 6510    CreateMessageStreamResponse = 7511    DeleteMessageStreamResponse = 8512    AppendMessageResponse = 9513    ReadMessagesResponse = 10514    ListStreams = 11515    ListStreamsResponse = 12516    DescribeMessageStream = 13517    DescribeMessageStreamResponse = 14518    UpdateMessageStream = 15519    UpdateMessageStreamResponse = 16520    UnknownOperationError = 17521    @staticmethod522    def from_dict(d):523        return Operation(d)524    def as_dict(self):525        return self.value526    def __repr__(self):527        return "<Enum Operation. {}: {}>".format(528            limitedRepr(self.name), limitedRepr(self.value)529        )530class MessageFrame:531    """532    Internal Only.533    """534    __slots__ = [535        "__operation",536        "__payload",537    ]538    _types_map = {539        "operation": {"type": Operation, "subtype": None},540        "payload": {"type": bytes, "subtype": None},541    }542    _formats_map = {}543    _validations_map = {544        "operation": {545            "required": True,546        },547        "payload": {548            "required": True,549        },550    }551    def __init__(self, operation: Operation = None, payload: bytes = None):552        pass553        self.__operation = operation554        self.__payload = payload555    def _get_operation(self):556        return self.__operation557    def _set_operation(self, value):558        if not isinstance(value, Operation):559            raise TypeError("operation must be Operation")560        self.__operation = value561    operation = property(_get_operation, _set_operation)562    def _get_payload(self):563        return self.__payload564    def _set_payload(self, value):565        if not isinstance(value, bytes):566            raise TypeError("payload must be bytes")567        self.__payload = value568    payload = property(_get_payload, _set_payload)569    @staticmethod570    def from_dict(d):571        v = {}572        if "operation" in d:573            v["operation"] = (574                Operation.from_dict(d["operation"])575                if hasattr(Operation, "from_dict")576                else d["operation"]577            )578        if "payload" in d:579            v["payload"] = (580                bytes.from_dict(d["payload"])581                if hasattr(bytes, "from_dict")582                else d["payload"]583            )584        return MessageFrame(**v)585    def as_dict(self):586        d = {}587        if self.__operation is not None:588            d["operation"] = (589                self.__operation.as_dict()590                if hasattr(self.__operation, "as_dict")591                else self.__operation592            )593        if self.__payload is not None:594            d["payload"] = (595                self.__payload.as_dict()596                if hasattr(self.__payload, "as_dict")597                else self.__payload598            )599        return d600    def __repr__(self):601        return "<Class MessageFrame. operation: {}, payload: {}>".format(602            limitedRepr(603                self.__operation[:20]604                if isinstance(self.__operation, bytes)605                else self.__operation606            ),607            limitedRepr(608                self.__payload[:20]609                if isinstance(self.__payload, bytes)610                else self.__payload611            ),612        )613class Status(enum.Enum):614    """615    The status of the event.616    """617    Success = 0618    Failure = 1619    InProgress = 2620    Warning = 3621    Canceled = 4622    @staticmethod623    def from_dict(d):624        return Status(d)625    def as_dict(self):626        return self.value627    def __repr__(self):628        return "<Enum Status. {}: {}>".format(629            limitedRepr(self.name), limitedRepr(self.value)630        )631class StatusLevel(enum.Enum):632    """633    Defines the verbosity of status messages in a status-stream.634    """635    ERROR = 0636    WARN = 1637    INFO = 2638    DEBUG = 3639    TRACE = 4640    @staticmethod641    def from_dict(d):642        return StatusLevel(d)643    def as_dict(self):644        return self.value645    def __repr__(self):646        return "<Enum StatusLevel. {}: {}>".format(647            limitedRepr(self.name), limitedRepr(self.value)648        )649class S3ExportTaskDefinition:650    """651    S3 Task definition containing all the information necessary to export the data to S3. This will contain the S3 bucket and key as well as the file's URL where the data is stored.652    """653    __slots__ = [654        "__input_url",655        "__bucket",656        "__key",657        "__user_metadata",658    ]659    _types_map = {660        "input_url": {"type": str, "subtype": None},661        "bucket": {"type": str, "subtype": None},662        "key": {"type": str, "subtype": None},663        "user_metadata": {"type": dict, "subtype": None},664    }665    _formats_map = {}666    _validations_map = {667        "input_url": {668            "required": True,669        },670        "bucket": {671            "required": True,672            "minLength": 3,673            "maxLength": 63,674            "pattern": "(?=^.{3,63}$)(?!^(\d+\.)+\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$)",675        },676        "key": {677            "required": True,678            "minLength": 1,679            "maxLength": 1024,680            "pattern": "^([^\\\{ \}%\`\[\]\"'\>\<\~\#\^\?\|]|!\{[a-zA-Z]+:[a-zA-Z\/]+\})*$",681        },682        "user_metadata": {683            "required": False,684        },685    }686    def __init__(687        self,688        input_url: str = None,689        bucket: str = None,690        key: str = None,691        user_metadata: dict = None,692    ):693        """694        :param input_url: The URL of the file that contains the data to upload. The file should be local on the disk.695        :param bucket: The name of the S3 bucket that this file should be uploaded to.696        :param key: The key for the S3 object that this file should be uploaded to.697            The string can have placeholder expressions which are resolved at upload time. Valid expressions are strings that are valid Java DateTimeFormatter strings. See https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html698            Example: myKeyNamePrefix/!{timestamp:yyyy/MM/dd}/myKeyNameSuffix.699        :param user_metadata: User metadata. For key of a user metadata, callers should not include the internal "x-amz-meta-" prefix. Keys are case insensitive and will appear as lowercase strings on S3, even if they were originally specified with uppercase strings. Reserved key names start with "$aws-gg-" prefix.700        """701        pass702        self.__input_url = input_url703        self.__bucket = bucket704        self.__key = key705        self.__user_metadata = user_metadata706    def _get_input_url(self):707        return self.__input_url708    def _set_input_url(self, value):709        if not isinstance(value, str):710            raise TypeError("input_url must be str")711        self.__input_url = value712    input_url = property(_get_input_url, _set_input_url)713    """714    The URL of the file that contains the data to upload. The file should be local on the disk.715    """716    def _get_bucket(self):717        return self.__bucket718    def _set_bucket(self, value):719        if not isinstance(value, str):720            raise TypeError("bucket must be str")721        self.__bucket = value722    bucket = property(_get_bucket, _set_bucket)723    """724    The name of the S3 bucket that this file should be uploaded to.725    """726    def _get_key(self):727        return self.__key728    def _set_key(self, value):729        if not isinstance(value, str):730            raise TypeError("key must be str")731        self.__key = value732    key = property(_get_key, _set_key)733    """734    The key for the S3 object that this file should be uploaded to.735    The string can have placeholder expressions which are resolved at upload time. Valid expressions are strings that are valid Java DateTimeFormatter strings. See https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html736    Example: myKeyNamePrefix/!{timestamp:yyyy/MM/dd}/myKeyNameSuffix.737    """738    def _get_user_metadata(self):739        return self.__user_metadata740    def _set_user_metadata(self, value):741        if value is not None and not isinstance(value, dict):742            raise TypeError("user_metadata must be dict")743        self.__user_metadata = value744    user_metadata = property(_get_user_metadata, _set_user_metadata)745    """746    User metadata. For key of a user metadata, callers should not include the internal "x-amz-meta-" prefix. Keys are case insensitive and will appear as lowercase strings on S3, even if they were originally specified with uppercase strings. Reserved key names start with "$aws-gg-" prefix.747    """748    @staticmethod749    def from_dict(d):750        v = {}751        if "inputUrl" in d:752            v["input_url"] = (753                str.from_dict(d["inputUrl"])754                if hasattr(str, "from_dict")755                else d["inputUrl"]756            )757        if "bucket" in d:758            v["bucket"] = (759                str.from_dict(d["bucket"]) if hasattr(str, "from_dict") else d["bucket"]760            )761        if "key" in d:762            v["key"] = (763                str.from_dict(d["key"]) if hasattr(str, "from_dict") else d["key"]764            )765        if "userMetadata" in d:766            v["user_metadata"] = (767                dict.from_dict(d["userMetadata"])768                if hasattr(dict, "from_dict")769                else d["userMetadata"]770            )771        return S3ExportTaskDefinition(**v)772    def as_dict(self):773        d = {}774        if self.__input_url is not None:775            d["inputUrl"] = (776                self.__input_url.as_dict()777                if hasattr(self.__input_url, "as_dict")778                else self.__input_url779            )780        if self.__bucket is not None:781            d["bucket"] = (782                self.__bucket.as_dict()783                if hasattr(self.__bucket, "as_dict")784                else self.__bucket785            )786        if self.__key is not None:787            d["key"] = (788                self.__key.as_dict() if hasattr(self.__key, "as_dict") else self.__key789            )790        if self.__user_metadata is not None:791            d["userMetadata"] = (792                self.__user_metadata.as_dict()793                if hasattr(self.__user_metadata, "as_dict")794                else self.__user_metadata795            )796        return d797    def __repr__(self):798        return "<Class S3ExportTaskDefinition. input_url: {}, bucket: {}, key: {}, user_metadata: {}>".format(799            limitedRepr(800                self.__input_url[:20]801                if isinstance(self.__input_url, bytes)802                else self.__input_url803            ),804            limitedRepr(805                self.__bucket[:20]806                if isinstance(self.__bucket, bytes)807                else self.__bucket808            ),809            limitedRepr(810                self.__key[:20] if isinstance(self.__key, bytes) else self.__key811            ),812            limitedRepr(813                self.__user_metadata[:20]814                if isinstance(self.__user_metadata, bytes)815                else self.__user_metadata816            ),817        )818class StatusContext:819    """820    Context associated with a status message. Describes which stream, export config, message, the status is associated with.821    """822    __slots__ = [823        "__s3_export_task_definition",824        "__export_identifier",825        "__stream_name",826        "__sequence_number",827    ]828    _types_map = {829        "s3_export_task_definition": {"type": S3ExportTaskDefinition, "subtype": None},830        "export_identifier": {"type": str, "subtype": None},831        "stream_name": {"type": str, "subtype": None},832        "sequence_number": {"type": int, "subtype": None},833    }834    _formats_map = {}835    _validations_map = {836        "s3_export_task_definition": {837            "required": False,838        },839        "export_identifier": {840            "required": False,841        },842        "stream_name": {843            "required": False,844        },845        "sequence_number": {846            "required": False,847        },848    }849    def __init__(850        self,851        s3_export_task_definition: S3ExportTaskDefinition = None,852        export_identifier: str = None,853        stream_name: str = None,854        sequence_number: int = None,855    ):856        """857        :param s3_export_task_definition: The task definition of an S3 upload task if the status is associated with it, ie, if the eventType = S3Task.858        :param export_identifier: The export identifier the status is associated with.859        :param stream_name: The name of the stream the status is associated with.860        :param sequence_number: The sequence number of the message the status is associated with.861        """862        pass863        self.__s3_export_task_definition = s3_export_task_definition864        self.__export_identifier = export_identifier865        self.__stream_name = stream_name866        self.__sequence_number = sequence_number867    def _get_s3_export_task_definition(self):868        return self.__s3_export_task_definition869    def _set_s3_export_task_definition(self, value):870        if value is not None and not isinstance(value, S3ExportTaskDefinition):871            raise TypeError("s3_export_task_definition must be S3ExportTaskDefinition")872        self.__s3_export_task_definition = value873    s3_export_task_definition = property(874        _get_s3_export_task_definition, _set_s3_export_task_definition875    )876    """877    The task definition of an S3 upload task if the status is associated with it, ie, if the eventType = S3Task.878    """879    def _get_export_identifier(self):880        return self.__export_identifier881    def _set_export_identifier(self, value):882        if value is not None and not isinstance(value, str):883            raise TypeError("export_identifier must be str")884        self.__export_identifier = value885    export_identifier = property(_get_export_identifier, _set_export_identifier)886    """887    The export identifier the status is associated with.888    """889    def _get_stream_name(self):890        return self.__stream_name891    def _set_stream_name(self, value):892        if value is not None and not isinstance(value, str):893            raise TypeError("stream_name must be str")894        self.__stream_name = value895    stream_name = property(_get_stream_name, _set_stream_name)896    """897    The name of the stream the status is associated with.898    """899    def _get_sequence_number(self):900        return self.__sequence_number901    def _set_sequence_number(self, value):902        if value is not None and not isinstance(value, int):903            raise TypeError("sequence_number must be int")904        self.__sequence_number = value905    sequence_number = property(_get_sequence_number, _set_sequence_number)906    """907    The sequence number of the message the status is associated with.908    """909    @staticmethod910    def from_dict(d):911        v = {}912        if "s3ExportTaskDefinition" in d:913            v["s3_export_task_definition"] = (914                S3ExportTaskDefinition.from_dict(d["s3ExportTaskDefinition"])915                if hasattr(S3ExportTaskDefinition, "from_dict")916                else d["s3ExportTaskDefinition"]917            )918        if "exportIdentifier" in d:919            v["export_identifier"] = (920                str.from_dict(d["exportIdentifier"])921                if hasattr(str, "from_dict")922                else d["exportIdentifier"]923            )924        if "streamName" in d:925            v["stream_name"] = (926                str.from_dict(d["streamName"])927                if hasattr(str, "from_dict")928                else d["streamName"]929            )930        if "sequenceNumber" in d:931            v["sequence_number"] = (932                int.from_dict(d["sequenceNumber"])933                if hasattr(int, "from_dict")934                else d["sequenceNumber"]935            )936        return StatusContext(**v)937    def as_dict(self):938        d = {}939        if self.__s3_export_task_definition is not None:940            d["s3ExportTaskDefinition"] = (941                self.__s3_export_task_definition.as_dict()942                if hasattr(self.__s3_export_task_definition, "as_dict")943                else self.__s3_export_task_definition944            )945        if self.__export_identifier is not None:946            d["exportIdentifier"] = (947                self.__export_identifier.as_dict()948                if hasattr(self.__export_identifier, "as_dict")949                else self.__export_identifier950            )951        if self.__stream_name is not None:952            d["streamName"] = (953                self.__stream_name.as_dict()954                if hasattr(self.__stream_name, "as_dict")955                else self.__stream_name956            )957        if self.__sequence_number is not None:958            d["sequenceNumber"] = (959                self.__sequence_number.as_dict()960                if hasattr(self.__sequence_number, "as_dict")961                else self.__sequence_number962            )963        return d964    def __repr__(self):965        return "<Class StatusContext. s3_export_task_definition: {}, export_identifier: {}, stream_name: {}, sequence_number: {}>".format(966            limitedRepr(967                self.__s3_export_task_definition[:20]968                if isinstance(self.__s3_export_task_definition, bytes)969                else self.__s3_export_task_definition970            ),971            limitedRepr(972                self.__export_identifier[:20]973                if isinstance(self.__export_identifier, bytes)974                else self.__export_identifier975            ),976            limitedRepr(977                self.__stream_name[:20]978                if isinstance(self.__stream_name, bytes)979                else self.__stream_name980            ),981            limitedRepr(982                self.__sequence_number[:20]983                if isinstance(self.__sequence_number, bytes)984                else self.__sequence_number985            ),986        )987class EventType(enum.Enum):988    """989    The type of event, which determines how to interpret the status payload.990    """991    S3Task = 0992    @staticmethod993    def from_dict(d):994        return EventType(d)995    def as_dict(self):996        return self.value997    def __repr__(self):998        return "<Enum EventType. {}: {}>".format(999            limitedRepr(self.name), limitedRepr(self.value)1000        )1001class StatusMessage:1002    """1003    Status object appended to a status-stream.1004    """1005    __slots__ = [1006        "__event_type",1007        "__status_level",1008        "__status",1009        "__status_context",1010        "__message",1011        "__timestamp_epoch_ms",1012    ]1013    _types_map = {1014        "event_type": {"type": EventType, "subtype": None},1015        "status_level": {"type": StatusLevel, "subtype": None},1016        "status": {"type": Status, "subtype": None},1017        "status_context": {"type": StatusContext, "subtype": None},1018        "message": {"type": str, "subtype": None},1019        "timestamp_epoch_ms": {"type": int, "subtype": None},1020    }1021    _formats_map = {}1022    _validations_map = {1023        "event_type": {1024            "required": True,1025        },1026        "status_level": {1027            "required": False,1028        },1029        "status": {1030            "required": True,1031        },1032        "status_context": {1033            "required": False,1034        },1035        "message": {1036            "required": False,1037        },1038        "timestamp_epoch_ms": {1039            "required": False,1040        },1041    }1042    def __init__(1043        self,1044        event_type: EventType = None,1045        status_level: StatusLevel = None,1046        status: Status = None,1047        status_context: StatusContext = None,1048        message: str = None,1049        timestamp_epoch_ms: int = None,1050    ):1051        """1052        :param message: String describing the status message.1053        :param timestamp_epoch_ms: The time this status was added to the status-stream (in milliseconds since epoch).1054        """1055        pass1056        self.__event_type = event_type1057        self.__status_level = status_level1058        self.__status = status1059        self.__status_context = status_context1060        self.__message = message1061        self.__timestamp_epoch_ms = timestamp_epoch_ms1062    def _get_event_type(self):1063        return self.__event_type1064    def _set_event_type(self, value):1065        if not isinstance(value, EventType):1066            raise TypeError("event_type must be EventType")1067        self.__event_type = value1068    event_type = property(_get_event_type, _set_event_type)1069    def _get_status_level(self):1070        return self.__status_level1071    def _set_status_level(self, value):1072        if value is not None and not isinstance(value, StatusLevel):1073            raise TypeError("status_level must be StatusLevel")1074        self.__status_level = value1075    status_level = property(_get_status_level, _set_status_level)1076    def _get_status(self):1077        return self.__status1078    def _set_status(self, value):1079        if not isinstance(value, Status):1080            raise TypeError("status must be Status")1081        self.__status = value1082    status = property(_get_status, _set_status)1083    def _get_status_context(self):1084        return self.__status_context1085    def _set_status_context(self, value):1086        if value is not None and not isinstance(value, StatusContext):1087            raise TypeError("status_context must be StatusContext")1088        self.__status_context = value1089    status_context = property(_get_status_context, _set_status_context)1090    def _get_message(self):1091        return self.__message1092    def _set_message(self, value):1093        if value is not None and not isinstance(value, str):1094            raise TypeError("message must be str")1095        self.__message = value1096    message = property(_get_message, _set_message)1097    """1098    String describing the status message.1099    """1100    def _get_timestamp_epoch_ms(self):1101        return self.__timestamp_epoch_ms1102    def _set_timestamp_epoch_ms(self, value):1103        if value is not None and not isinstance(value, int):1104            raise TypeError("timestamp_epoch_ms must be int")1105        self.__timestamp_epoch_ms = value1106    timestamp_epoch_ms = property(_get_timestamp_epoch_ms, _set_timestamp_epoch_ms)1107    """1108    The time this status was added to the status-stream (in milliseconds since epoch).1109    """1110    @staticmethod1111    def from_dict(d):1112        v = {}1113        if "eventType" in d:1114            v["event_type"] = (1115                EventType.from_dict(d["eventType"])1116                if hasattr(EventType, "from_dict")1117                else d["eventType"]1118            )1119        if "statusLevel" in d:1120            v["status_level"] = (1121                StatusLevel.from_dict(d["statusLevel"])1122                if hasattr(StatusLevel, "from_dict")1123                else d["statusLevel"]1124            )1125        if "status" in d:1126            v["status"] = (1127                Status.from_dict(d["status"])1128                if hasattr(Status, "from_dict")1129                else d["status"]1130            )1131        if "statusContext" in d:1132            v["status_context"] = (1133                StatusContext.from_dict(d["statusContext"])1134                if hasattr(StatusContext, "from_dict")1135                else d["statusContext"]1136            )1137        if "message" in d:1138            v["message"] = (1139                str.from_dict(d["message"])1140                if hasattr(str, "from_dict")1141                else d["message"]1142            )1143        if "timestampEpochMs" in d:1144            v["timestamp_epoch_ms"] = (1145                int.from_dict(d["timestampEpochMs"])1146                if hasattr(int, "from_dict")1147                else d["timestampEpochMs"]1148            )1149        return StatusMessage(**v)1150    def as_dict(self):1151        d = {}1152        if self.__event_type is not None:1153            d["eventType"] = (1154                self.__event_type.as_dict()1155                if hasattr(self.__event_type, "as_dict")1156                else self.__event_type1157            )1158        if self.__status_level is not None:1159            d["statusLevel"] = (1160                self.__status_level.as_dict()1161                if hasattr(self.__status_level, "as_dict")1162                else self.__status_level1163            )1164        if self.__status is not None:1165            d["status"] = (1166                self.__status.as_dict()1167                if hasattr(self.__status, "as_dict")1168                else self.__status1169            )1170        if self.__status_context is not None:1171            d["statusContext"] = (1172                self.__status_context.as_dict()1173                if hasattr(self.__status_context, "as_dict")1174                else self.__status_context1175            )1176        if self.__message is not None:1177            d["message"] = (1178                self.__message.as_dict()1179                if hasattr(self.__message, "as_dict")1180                else self.__message1181            )1182        if self.__timestamp_epoch_ms is not None:1183            d["timestampEpochMs"] = (1184                self.__timestamp_epoch_ms.as_dict()1185                if hasattr(self.__timestamp_epoch_ms, "as_dict")1186                else self.__timestamp_epoch_ms1187            )1188        return d1189    def __repr__(self):1190        return "<Class StatusMessage. event_type: {}, status_level: {}, status: {}, status_context: {}, message: {}, timestamp_epoch_ms: {}>".format(1191            limitedRepr(1192                self.__event_type[:20]1193                if isinstance(self.__event_type, bytes)1194                else self.__event_type1195            ),1196            limitedRepr(1197                self.__status_level[:20]1198                if isinstance(self.__status_level, bytes)1199                else self.__status_level1200            ),1201            limitedRepr(1202                self.__status[:20]1203                if isinstance(self.__status, bytes)1204                else self.__status1205            ),1206            limitedRepr(1207                self.__status_context[:20]1208                if isinstance(self.__status_context, bytes)1209                else self.__status_context1210            ),1211            limitedRepr(1212                self.__message[:20]1213                if isinstance(self.__message, bytes)1214                else self.__message1215            ),1216            limitedRepr(1217                self.__timestamp_epoch_ms[:20]1218                if isinstance(self.__timestamp_epoch_ms, bytes)1219                else self.__timestamp_epoch_ms1220            ),1221        )1222class TraceableRequest:1223    """1224    (Internal Only) TraceableRequest that contains only requestId.1225    """1226    __slots__ = [1227        "__request_id",1228    ]1229    _types_map = {1230        "request_id": {"type": str, "subtype": None},1231    }1232    _formats_map = {}1233    _validations_map = {1234        "request_id": {1235            "required": True,1236            "minLength": 1,1237            "pattern": "^[\w ,.\-_]*$",1238        },1239    }1240    def __init__(self, request_id: str = None):1241        pass1242        self.__request_id = request_id1243    def _get_request_id(self):1244        return self.__request_id1245    def _set_request_id(self, value):1246        if not isinstance(value, str):1247            raise TypeError("request_id must be str")1248        self.__request_id = value1249    request_id = property(_get_request_id, _set_request_id)1250    @staticmethod1251    def from_dict(d):1252        v = {}1253        if "requestId" in d:1254            v["request_id"] = (1255                str.from_dict(d["requestId"])1256                if hasattr(str, "from_dict")1257                else d["requestId"]1258            )1259        return TraceableRequest(**v)1260    def as_dict(self):1261        d = {}1262        if self.__request_id is not None:1263            d["requestId"] = (1264                self.__request_id.as_dict()1265                if hasattr(self.__request_id, "as_dict")1266                else self.__request_id1267            )1268        return d1269    def __repr__(self):1270        return "<Class TraceableRequest. request_id: {}>".format(1271            limitedRepr(1272                self.__request_id[:20]1273                if isinstance(self.__request_id, bytes)1274                else self.__request_id1275            )1276        )1277class UnknownOperationError:1278    """1279    (Internal Only) Response for UnknownOperationError.1280    """1281    __slots__ = [1282        "__request_id",1283        "__status",1284        "__error_message",1285    ]1286    _types_map = {1287        "request_id": {"type": str, "subtype": None},1288        "status": {"type": ResponseStatusCode, "subtype": None},1289        "error_message": {"type": str, "subtype": None},1290    }1291    _formats_map = {}1292    _validations_map = {1293        "request_id": {1294            "required": True,1295            "minLength": 1,1296            "pattern": "^[\w ,.\-_]*$",1297        },1298        "status": {1299            "required": True,1300        },1301        "error_message": {1302            "required": False,1303        },1304    }1305    def __init__(1306        self,1307        request_id: str = None,1308        status: ResponseStatusCode = None,1309        error_message: str = None,1310    ):1311        pass1312        self.__request_id = request_id1313        self.__status = status1314        self.__error_message = error_message1315    def _get_request_id(self):1316        return self.__request_id1317    def _set_request_id(self, value):1318        if not isinstance(value, str):1319            raise TypeError("request_id must be str")1320        self.__request_id = value1321    request_id = property(_get_request_id, _set_request_id)1322    def _get_status(self):1323        return self.__status1324    def _set_status(self, value):1325        if not isinstance(value, ResponseStatusCode):1326            raise TypeError("status must be ResponseStatusCode")1327        self.__status = value1328    status = property(_get_status, _set_status)1329    def _get_error_message(self):1330        return self.__error_message1331    def _set_error_message(self, value):1332        if value is not None and not isinstance(value, str):1333            raise TypeError("error_message must be str")1334        self.__error_message = value1335    error_message = property(_get_error_message, _set_error_message)1336    @staticmethod1337    def from_dict(d):1338        v = {}1339        if "requestId" in d:1340            v["request_id"] = (1341                str.from_dict(d["requestId"])1342                if hasattr(str, "from_dict")1343                else d["requestId"]1344            )1345        if "status" in d:1346            v["status"] = (1347                ResponseStatusCode.from_dict(d["status"])1348                if hasattr(ResponseStatusCode, "from_dict")1349                else d["status"]1350            )1351        if "errorMessage" in d:1352            v["error_message"] = (1353                str.from_dict(d["errorMessage"])1354                if hasattr(str, "from_dict")1355                else d["errorMessage"]1356            )1357        return UnknownOperationError(**v)1358    def as_dict(self):1359        d = {}1360        if self.__request_id is not None:1361            d["requestId"] = (1362                self.__request_id.as_dict()1363                if hasattr(self.__request_id, "as_dict")1364                else self.__request_id1365            )1366        if self.__status is not None:1367            d["status"] = (1368                self.__status.as_dict()1369                if hasattr(self.__status, "as_dict")1370                else self.__status1371            )1372        if self.__error_message is not None:1373            d["errorMessage"] = (1374                self.__error_message.as_dict()1375                if hasattr(self.__error_message, "as_dict")1376                else self.__error_message1377            )1378        return d1379    def __repr__(self):1380        return "<Class UnknownOperationError. request_id: {}, status: {}, error_message: {}>".format(1381            limitedRepr(1382                self.__request_id[:20]1383                if isinstance(self.__request_id, bytes)1384                else self.__request_id1385            ),1386            limitedRepr(1387                self.__status[:20]1388                if isinstance(self.__status, bytes)1389                else self.__status1390            ),1391            limitedRepr(1392                self.__error_message[:20]1393                if isinstance(self.__error_message, bytes)1394                else self.__error_message1395            ),1396        )1397class KinesisConfig:1398    """1399    Configuration object for Kinesis data streams export destination.1400    """1401    __slots__ = [1402        "__identifier",1403        "__kinesis_stream_name",1404        "__batch_size",1405        "__batch_interval_millis",1406        "__priority",1407        "__start_sequence_number",1408        "__disabled",1409    ]1410    _types_map = {1411        "identifier": {"type": str, "subtype": None},1412        "kinesis_stream_name": {"type": str, "subtype": None},1413        "batch_size": {"type": int, "subtype": None},1414        "batch_interval_millis": {"type": int, "subtype": None},1415        "priority": {"type": int, "subtype": None},1416        "start_sequence_number": {"type": int, "subtype": None},1417        "disabled": {"type": bool, "subtype": None},1418    }1419    _formats_map = {}1420    _validations_map = {1421        "identifier": {1422            "required": True,1423            "minLength": 1,1424            "maxLength": 255,1425            "pattern": "^[\w ,.\-_]*$",1426        },1427        "kinesis_stream_name": {1428            "required": True,1429            "minLength": 1,1430        },1431        "batch_size": {1432            "required": False,1433            "maximum": 500,1434            "minimum": 1,1435        },1436        "batch_interval_millis": {1437            "required": False,1438            "maximum": 9223372036854,1439            "minimum": 60000,1440        },1441        "priority": {1442            "required": False,1443            "maximum": 10,1444            "minimum": 1,1445        },1446        "start_sequence_number": {1447            "required": False,1448            "maximum": 9223372036854775807,1449            "minimum": 0,1450        },1451        "disabled": {1452            "required": False,1453        },1454    }1455    def __init__(1456        self,1457        identifier: str = None,1458        kinesis_stream_name: str = None,1459        batch_size: int = None,1460        batch_interval_millis: int = None,1461        priority: int = None,1462        start_sequence_number: int = None,1463        disabled: bool = None,1464    ):1465        """1466        :param identifier: A unique identifier to identify this individual upload stream.1467            Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.1468        :param kinesis_stream_name: The name of the Kinesis data stream that this exporter should upload to.1469        :param batch_size: The maximum size of a batch to send to Kinesis. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 500.1470            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1471            The batch size must be between 1 and 500.1472        :param batch_interval_millis: The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.1473            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1474            The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.1475        :param priority: Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.1476        :param start_sequence_number: The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.1477        :param disabled: Enable or disable this export. Default is false.1478        """1479        pass1480        self.__identifier = identifier1481        self.__kinesis_stream_name = kinesis_stream_name1482        self.__batch_size = batch_size1483        self.__batch_interval_millis = batch_interval_millis1484        self.__priority = priority1485        self.__start_sequence_number = start_sequence_number1486        self.__disabled = disabled1487    def _get_identifier(self):1488        return self.__identifier1489    def _set_identifier(self, value):1490        if not isinstance(value, str):1491            raise TypeError("identifier must be str")1492        self.__identifier = value1493    identifier = property(_get_identifier, _set_identifier)1494    """1495    A unique identifier to identify this individual upload stream.1496    Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.1497    """1498    def _get_kinesis_stream_name(self):1499        return self.__kinesis_stream_name1500    def _set_kinesis_stream_name(self, value):1501        if not isinstance(value, str):1502            raise TypeError("kinesis_stream_name must be str")1503        self.__kinesis_stream_name = value1504    kinesis_stream_name = property(_get_kinesis_stream_name, _set_kinesis_stream_name)1505    """1506    The name of the Kinesis data stream that this exporter should upload to.1507    """1508    def _get_batch_size(self):1509        return self.__batch_size1510    def _set_batch_size(self, value):1511        if value is not None and not isinstance(value, int):1512            raise TypeError("batch_size must be int")1513        self.__batch_size = value1514    batch_size = property(_get_batch_size, _set_batch_size)1515    """1516    The maximum size of a batch to send to Kinesis. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 500.1517    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1518    The batch size must be between 1 and 500.1519    """1520    def _get_batch_interval_millis(self):1521        return self.__batch_interval_millis1522    def _set_batch_interval_millis(self, value):1523        if value is not None and not isinstance(value, int):1524            raise TypeError("batch_interval_millis must be int")1525        self.__batch_interval_millis = value1526    batch_interval_millis = property(1527        _get_batch_interval_millis, _set_batch_interval_millis1528    )1529    """1530    The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.1531    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1532    The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.1533    """1534    def _get_priority(self):1535        return self.__priority1536    def _set_priority(self, value):1537        if value is not None and not isinstance(value, int):1538            raise TypeError("priority must be int")1539        self.__priority = value1540    priority = property(_get_priority, _set_priority)1541    """1542    Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.1543    """1544    def _get_start_sequence_number(self):1545        return self.__start_sequence_number1546    def _set_start_sequence_number(self, value):1547        if value is not None and not isinstance(value, int):1548            raise TypeError("start_sequence_number must be int")1549        self.__start_sequence_number = value1550    start_sequence_number = property(1551        _get_start_sequence_number, _set_start_sequence_number1552    )1553    """1554    The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.1555    """1556    def _get_disabled(self):1557        return self.__disabled1558    def _set_disabled(self, value):1559        if value is not None and not isinstance(value, bool):1560            raise TypeError("disabled must be bool")1561        self.__disabled = value1562    disabled = property(_get_disabled, _set_disabled)1563    """1564    Enable or disable this export. Default is false.1565    """1566    @staticmethod1567    def from_dict(d):1568        v = {}1569        if "identifier" in d:1570            v["identifier"] = (1571                str.from_dict(d["identifier"])1572                if hasattr(str, "from_dict")1573                else d["identifier"]1574            )1575        if "kinesisStreamName" in d:1576            v["kinesis_stream_name"] = (1577                str.from_dict(d["kinesisStreamName"])1578                if hasattr(str, "from_dict")1579                else d["kinesisStreamName"]1580            )1581        if "batchSize" in d:1582            v["batch_size"] = (1583                int.from_dict(d["batchSize"])1584                if hasattr(int, "from_dict")1585                else d["batchSize"]1586            )1587        if "batchIntervalMillis" in d:1588            v["batch_interval_millis"] = (1589                int.from_dict(d["batchIntervalMillis"])1590                if hasattr(int, "from_dict")1591                else d["batchIntervalMillis"]1592            )1593        if "priority" in d:1594            v["priority"] = (1595                int.from_dict(d["priority"])1596                if hasattr(int, "from_dict")1597                else d["priority"]1598            )1599        if "startSequenceNumber" in d:1600            v["start_sequence_number"] = (1601                int.from_dict(d["startSequenceNumber"])1602                if hasattr(int, "from_dict")1603                else d["startSequenceNumber"]1604            )1605        if "disabled" in d:1606            v["disabled"] = (1607                bool.from_dict(d["disabled"])1608                if hasattr(bool, "from_dict")1609                else d["disabled"]1610            )1611        return KinesisConfig(**v)1612    def as_dict(self):1613        d = {}1614        if self.__identifier is not None:1615            d["identifier"] = (1616                self.__identifier.as_dict()1617                if hasattr(self.__identifier, "as_dict")1618                else self.__identifier1619            )1620        if self.__kinesis_stream_name is not None:1621            d["kinesisStreamName"] = (1622                self.__kinesis_stream_name.as_dict()1623                if hasattr(self.__kinesis_stream_name, "as_dict")1624                else self.__kinesis_stream_name1625            )1626        if self.__batch_size is not None:1627            d["batchSize"] = (1628                self.__batch_size.as_dict()1629                if hasattr(self.__batch_size, "as_dict")1630                else self.__batch_size1631            )1632        if self.__batch_interval_millis is not None:1633            d["batchIntervalMillis"] = (1634                self.__batch_interval_millis.as_dict()1635                if hasattr(self.__batch_interval_millis, "as_dict")1636                else self.__batch_interval_millis1637            )1638        if self.__priority is not None:1639            d["priority"] = (1640                self.__priority.as_dict()1641                if hasattr(self.__priority, "as_dict")1642                else self.__priority1643            )1644        if self.__start_sequence_number is not None:1645            d["startSequenceNumber"] = (1646                self.__start_sequence_number.as_dict()1647                if hasattr(self.__start_sequence_number, "as_dict")1648                else self.__start_sequence_number1649            )1650        if self.__disabled is not None:1651            d["disabled"] = (1652                self.__disabled.as_dict()1653                if hasattr(self.__disabled, "as_dict")1654                else self.__disabled1655            )1656        return d1657    def __repr__(self):1658        return "<Class KinesisConfig. identifier: {}, kinesis_stream_name: {}, batch_size: {}, batch_interval_millis: {}, priority: {}, start_sequence_number: {}, disabled: {}>".format(1659            limitedRepr(1660                self.__identifier[:20]1661                if isinstance(self.__identifier, bytes)1662                else self.__identifier1663            ),1664            limitedRepr(1665                self.__kinesis_stream_name[:20]1666                if isinstance(self.__kinesis_stream_name, bytes)1667                else self.__kinesis_stream_name1668            ),1669            limitedRepr(1670                self.__batch_size[:20]1671                if isinstance(self.__batch_size, bytes)1672                else self.__batch_size1673            ),1674            limitedRepr(1675                self.__batch_interval_millis[:20]1676                if isinstance(self.__batch_interval_millis, bytes)1677                else self.__batch_interval_millis1678            ),1679            limitedRepr(1680                self.__priority[:20]1681                if isinstance(self.__priority, bytes)1682                else self.__priority1683            ),1684            limitedRepr(1685                self.__start_sequence_number[:20]1686                if isinstance(self.__start_sequence_number, bytes)1687                else self.__start_sequence_number1688            ),1689            limitedRepr(1690                self.__disabled[:20]1691                if isinstance(self.__disabled, bytes)1692                else self.__disabled1693            ),1694        )1695class IoTSiteWiseConfig:1696    """1697    Configuration object for IotSiteWise data streams export destination. Minimum version requirements: StreamManager server version 1.1 (or AWS IoT Greengrass Core 1.11.0)1698    """1699    __slots__ = [1700        "__identifier",1701        "__batch_size",1702        "__batch_interval_millis",1703        "__priority",1704        "__start_sequence_number",1705        "__disabled",1706    ]1707    _types_map = {1708        "identifier": {"type": str, "subtype": None},1709        "batch_size": {"type": int, "subtype": None},1710        "batch_interval_millis": {"type": int, "subtype": None},1711        "priority": {"type": int, "subtype": None},1712        "start_sequence_number": {"type": int, "subtype": None},1713        "disabled": {"type": bool, "subtype": None},1714    }1715    _formats_map = {}1716    _validations_map = {1717        "identifier": {1718            "required": True,1719            "minLength": 1,1720            "maxLength": 255,1721            "pattern": "^[\w ,.\-_]*$",1722        },1723        "batch_size": {1724            "required": False,1725            "maximum": 10,1726            "minimum": 1,1727        },1728        "batch_interval_millis": {1729            "required": False,1730            "maximum": 9223372036854,1731            "minimum": 60000,1732        },1733        "priority": {1734            "required": False,1735            "maximum": 10,1736            "minimum": 1,1737        },1738        "start_sequence_number": {1739            "required": False,1740            "maximum": 9223372036854775807,1741            "minimum": 0,1742        },1743        "disabled": {1744            "required": False,1745        },1746    }1747    def __init__(1748        self,1749        identifier: str = None,1750        batch_size: int = None,1751        batch_interval_millis: int = None,1752        priority: int = None,1753        start_sequence_number: int = None,1754        disabled: bool = None,1755    ):1756        """1757        :param identifier: A unique identifier to identify this individual upload stream.1758            Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.1759        :param batch_size: The maximum size of a batch to send to the destination. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 10.1760            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1761            The minimum batch size is 1 and the maximum is 10.1762        :param batch_interval_millis: The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.1763            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1764            The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.1765        :param priority: Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.1766        :param start_sequence_number: The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.1767        :param disabled: Enable or disable this export. Default is false.1768        """1769        pass1770        self.__identifier = identifier1771        self.__batch_size = batch_size1772        self.__batch_interval_millis = batch_interval_millis1773        self.__priority = priority1774        self.__start_sequence_number = start_sequence_number1775        self.__disabled = disabled1776    def _get_identifier(self):1777        return self.__identifier1778    def _set_identifier(self, value):1779        if not isinstance(value, str):1780            raise TypeError("identifier must be str")1781        self.__identifier = value1782    identifier = property(_get_identifier, _set_identifier)1783    """1784    A unique identifier to identify this individual upload stream.1785    Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.1786    """1787    def _get_batch_size(self):1788        return self.__batch_size1789    def _set_batch_size(self, value):1790        if value is not None and not isinstance(value, int):1791            raise TypeError("batch_size must be int")1792        self.__batch_size = value1793    batch_size = property(_get_batch_size, _set_batch_size)1794    """1795    The maximum size of a batch to send to the destination. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 10.1796    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1797    The minimum batch size is 1 and the maximum is 10.1798    """1799    def _get_batch_interval_millis(self):1800        return self.__batch_interval_millis1801    def _set_batch_interval_millis(self, value):1802        if value is not None and not isinstance(value, int):1803            raise TypeError("batch_interval_millis must be int")1804        self.__batch_interval_millis = value1805    batch_interval_millis = property(1806        _get_batch_interval_millis, _set_batch_interval_millis1807    )1808    """1809    The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.1810    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.1811    The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.1812    """1813    def _get_priority(self):1814        return self.__priority1815    def _set_priority(self, value):1816        if value is not None and not isinstance(value, int):1817            raise TypeError("priority must be int")1818        self.__priority = value1819    priority = property(_get_priority, _set_priority)1820    """1821    Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.1822    """1823    def _get_start_sequence_number(self):1824        return self.__start_sequence_number1825    def _set_start_sequence_number(self, value):1826        if value is not None and not isinstance(value, int):1827            raise TypeError("start_sequence_number must be int")1828        self.__start_sequence_number = value1829    start_sequence_number = property(1830        _get_start_sequence_number, _set_start_sequence_number1831    )1832    """1833    The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.1834    """1835    def _get_disabled(self):1836        return self.__disabled1837    def _set_disabled(self, value):1838        if value is not None and not isinstance(value, bool):1839            raise TypeError("disabled must be bool")1840        self.__disabled = value1841    disabled = property(_get_disabled, _set_disabled)1842    """1843    Enable or disable this export. Default is false.1844    """1845    @staticmethod1846    def from_dict(d):1847        v = {}1848        if "identifier" in d:1849            v["identifier"] = (1850                str.from_dict(d["identifier"])1851                if hasattr(str, "from_dict")1852                else d["identifier"]1853            )1854        if "batchSize" in d:1855            v["batch_size"] = (1856                int.from_dict(d["batchSize"])1857                if hasattr(int, "from_dict")1858                else d["batchSize"]1859            )1860        if "batchIntervalMillis" in d:1861            v["batch_interval_millis"] = (1862                int.from_dict(d["batchIntervalMillis"])1863                if hasattr(int, "from_dict")1864                else d["batchIntervalMillis"]1865            )1866        if "priority" in d:1867            v["priority"] = (1868                int.from_dict(d["priority"])1869                if hasattr(int, "from_dict")1870                else d["priority"]1871            )1872        if "startSequenceNumber" in d:1873            v["start_sequence_number"] = (1874                int.from_dict(d["startSequenceNumber"])1875                if hasattr(int, "from_dict")1876                else d["startSequenceNumber"]1877            )1878        if "disabled" in d:1879            v["disabled"] = (1880                bool.from_dict(d["disabled"])1881                if hasattr(bool, "from_dict")1882                else d["disabled"]1883            )1884        return IoTSiteWiseConfig(**v)1885    def as_dict(self):1886        d = {}1887        if self.__identifier is not None:1888            d["identifier"] = (1889                self.__identifier.as_dict()1890                if hasattr(self.__identifier, "as_dict")1891                else self.__identifier1892            )1893        if self.__batch_size is not None:1894            d["batchSize"] = (1895                self.__batch_size.as_dict()1896                if hasattr(self.__batch_size, "as_dict")1897                else self.__batch_size1898            )1899        if self.__batch_interval_millis is not None:1900            d["batchIntervalMillis"] = (1901                self.__batch_interval_millis.as_dict()1902                if hasattr(self.__batch_interval_millis, "as_dict")1903                else self.__batch_interval_millis1904            )1905        if self.__priority is not None:1906            d["priority"] = (1907                self.__priority.as_dict()1908                if hasattr(self.__priority, "as_dict")1909                else self.__priority1910            )1911        if self.__start_sequence_number is not None:1912            d["startSequenceNumber"] = (1913                self.__start_sequence_number.as_dict()1914                if hasattr(self.__start_sequence_number, "as_dict")1915                else self.__start_sequence_number1916            )1917        if self.__disabled is not None:1918            d["disabled"] = (1919                self.__disabled.as_dict()1920                if hasattr(self.__disabled, "as_dict")1921                else self.__disabled1922            )1923        return d1924    def __repr__(self):1925        return "<Class IoTSiteWiseConfig. identifier: {}, batch_size: {}, batch_interval_millis: {}, priority: {}, start_sequence_number: {}, disabled: {}>".format(1926            limitedRepr(1927                self.__identifier[:20]1928                if isinstance(self.__identifier, bytes)1929                else self.__identifier1930            ),1931            limitedRepr(1932                self.__batch_size[:20]1933                if isinstance(self.__batch_size, bytes)1934                else self.__batch_size1935            ),1936            limitedRepr(1937                self.__batch_interval_millis[:20]1938                if isinstance(self.__batch_interval_millis, bytes)1939                else self.__batch_interval_millis1940            ),1941            limitedRepr(1942                self.__priority[:20]1943                if isinstance(self.__priority, bytes)1944                else self.__priority1945            ),1946            limitedRepr(1947                self.__start_sequence_number[:20]1948                if isinstance(self.__start_sequence_number, bytes)1949                else self.__start_sequence_number1950            ),1951            limitedRepr(1952                self.__disabled[:20]1953                if isinstance(self.__disabled, bytes)1954                else self.__disabled1955            ),1956        )1957class ExportFormat(enum.Enum):1958    """1959    ExportFormat is used to define how messages are batched and formatted in the export payload.1960    RAW_NOT_BATCHED: Each message in a batch will be sent as an individual HTTP POST with the payload as the body (even if batchSize is set).1961    JSON_BATCHED: Each batch of messages will be sent as a JSON list of Message objects as the body.1962    """1963    RAW_NOT_BATCHED = 01964    JSON_BATCHED = 11965    @staticmethod1966    def from_dict(d):1967        return ExportFormat(d)1968    def as_dict(self):1969        return self.value1970    def __repr__(self):1971        return "<Enum ExportFormat. {}: {}>".format(1972            limitedRepr(self.name), limitedRepr(self.value)1973        )1974class HTTPConfig:1975    """1976    This export destination is not supported! The interface may change at any time without notice and should not be relied on for any production use.1977    There are no guarantees around its correctness.1978    This configures an HTTP endpoint which sends a POST request to the provided URI. Each request contains a single message in the body of the request.1979    """1980    __slots__ = [1981        "__identifier",1982        "__uri",1983        "__batch_size",1984        "__batch_interval_millis",1985        "__priority",1986        "__start_sequence_number",1987        "__disabled",1988        "__export_format",1989    ]1990    _types_map = {1991        "identifier": {"type": str, "subtype": None},1992        "uri": {"type": str, "subtype": None},1993        "batch_size": {"type": int, "subtype": None},1994        "batch_interval_millis": {"type": int, "subtype": None},1995        "priority": {"type": int, "subtype": None},1996        "start_sequence_number": {"type": int, "subtype": None},1997        "disabled": {"type": bool, "subtype": None},1998        "export_format": {"type": ExportFormat, "subtype": None},1999    }2000    _formats_map = {}2001    _validations_map = {2002        "identifier": {2003            "required": True,2004            "minLength": 1,2005            "maxLength": 255,2006            "pattern": "^[\w ,.\-_]*$",2007        },2008        "uri": {2009            "required": True,2010            "minLength": 1,2011        },2012        "batch_size": {2013            "required": False,2014            "maximum": 500,2015            "minimum": 1,2016        },2017        "batch_interval_millis": {2018            "required": False,2019            "maximum": 9223372036854,2020            "minimum": 60000,2021        },2022        "priority": {2023            "required": False,2024            "maximum": 10,2025            "minimum": 1,2026        },2027        "start_sequence_number": {2028            "required": False,2029            "maximum": 9223372036854775807,2030            "minimum": 0,2031        },2032        "disabled": {2033            "required": False,2034        },2035        "export_format": {2036            "required": False,2037        },2038    }2039    def __init__(2040        self,2041        identifier: str = None,2042        uri: str = None,2043        batch_size: int = None,2044        batch_interval_millis: int = None,2045        priority: int = None,2046        start_sequence_number: int = None,2047        disabled: bool = None,2048        export_format: ExportFormat = None,2049    ):2050        """2051        :param identifier: A unique identifier to identify this individual upload stream.2052            Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.2053        :param uri: URL for HTTP endpoint which should receive the POST requests for export.2054        :param batch_size: The maximum size of a batch to send to the destination. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 500.2055            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2056            The minimum batch size is 1 and the maximum is 500.2057        :param batch_interval_millis: The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.2058            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2059            The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.2060        :param priority: Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.2061        :param start_sequence_number: The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.2062        :param disabled: Enable or disable this export. Default is false.2063        :param export_format: Defines how messages are batched and formatted in the export payload.2064        """2065        pass2066        self.__identifier = identifier2067        self.__uri = uri2068        self.__batch_size = batch_size2069        self.__batch_interval_millis = batch_interval_millis2070        self.__priority = priority2071        self.__start_sequence_number = start_sequence_number2072        self.__disabled = disabled2073        self.__export_format = export_format2074    def _get_identifier(self):2075        return self.__identifier2076    def _set_identifier(self, value):2077        if not isinstance(value, str):2078            raise TypeError("identifier must be str")2079        self.__identifier = value2080    identifier = property(_get_identifier, _set_identifier)2081    """2082    A unique identifier to identify this individual upload stream.2083    Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.2084    """2085    def _get_uri(self):2086        return self.__uri2087    def _set_uri(self, value):2088        if not isinstance(value, str):2089            raise TypeError("uri must be str")2090        self.__uri = value2091    uri = property(_get_uri, _set_uri)2092    """2093    URL for HTTP endpoint which should receive the POST requests for export.2094    """2095    def _get_batch_size(self):2096        return self.__batch_size2097    def _set_batch_size(self, value):2098        if value is not None and not isinstance(value, int):2099            raise TypeError("batch_size must be int")2100        self.__batch_size = value2101    batch_size = property(_get_batch_size, _set_batch_size)2102    """2103    The maximum size of a batch to send to the destination. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 500.2104    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2105    The minimum batch size is 1 and the maximum is 500.2106    """2107    def _get_batch_interval_millis(self):2108        return self.__batch_interval_millis2109    def _set_batch_interval_millis(self, value):2110        if value is not None and not isinstance(value, int):2111            raise TypeError("batch_interval_millis must be int")2112        self.__batch_interval_millis = value2113    batch_interval_millis = property(2114        _get_batch_interval_millis, _set_batch_interval_millis2115    )2116    """2117    The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.2118    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2119    The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.2120    """2121    def _get_priority(self):2122        return self.__priority2123    def _set_priority(self, value):2124        if value is not None and not isinstance(value, int):2125            raise TypeError("priority must be int")2126        self.__priority = value2127    priority = property(_get_priority, _set_priority)2128    """2129    Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.2130    """2131    def _get_start_sequence_number(self):2132        return self.__start_sequence_number2133    def _set_start_sequence_number(self, value):2134        if value is not None and not isinstance(value, int):2135            raise TypeError("start_sequence_number must be int")2136        self.__start_sequence_number = value2137    start_sequence_number = property(2138        _get_start_sequence_number, _set_start_sequence_number2139    )2140    """2141    The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.2142    """2143    def _get_disabled(self):2144        return self.__disabled2145    def _set_disabled(self, value):2146        if value is not None and not isinstance(value, bool):2147            raise TypeError("disabled must be bool")2148        self.__disabled = value2149    disabled = property(_get_disabled, _set_disabled)2150    """2151    Enable or disable this export. Default is false.2152    """2153    def _get_export_format(self):2154        return self.__export_format2155    def _set_export_format(self, value):2156        if value is not None and not isinstance(value, ExportFormat):2157            raise TypeError("export_format must be ExportFormat")2158        self.__export_format = value2159    export_format = property(_get_export_format, _set_export_format)2160    """2161    Defines how messages are batched and formatted in the export payload.2162    """2163    @staticmethod2164    def from_dict(d):2165        v = {}2166        if "identifier" in d:2167            v["identifier"] = (2168                str.from_dict(d["identifier"])2169                if hasattr(str, "from_dict")2170                else d["identifier"]2171            )2172        if "uri" in d:2173            v["uri"] = (2174                str.from_dict(d["uri"]) if hasattr(str, "from_dict") else d["uri"]2175            )2176        if "batchSize" in d:2177            v["batch_size"] = (2178                int.from_dict(d["batchSize"])2179                if hasattr(int, "from_dict")2180                else d["batchSize"]2181            )2182        if "batchIntervalMillis" in d:2183            v["batch_interval_millis"] = (2184                int.from_dict(d["batchIntervalMillis"])2185                if hasattr(int, "from_dict")2186                else d["batchIntervalMillis"]2187            )2188        if "priority" in d:2189            v["priority"] = (2190                int.from_dict(d["priority"])2191                if hasattr(int, "from_dict")2192                else d["priority"]2193            )2194        if "startSequenceNumber" in d:2195            v["start_sequence_number"] = (2196                int.from_dict(d["startSequenceNumber"])2197                if hasattr(int, "from_dict")2198                else d["startSequenceNumber"]2199            )2200        if "disabled" in d:2201            v["disabled"] = (2202                bool.from_dict(d["disabled"])2203                if hasattr(bool, "from_dict")2204                else d["disabled"]2205            )2206        if "exportFormat" in d:2207            v["export_format"] = (2208                ExportFormat.from_dict(d["exportFormat"])2209                if hasattr(ExportFormat, "from_dict")2210                else d["exportFormat"]2211            )2212        return HTTPConfig(**v)2213    def as_dict(self):2214        d = {}2215        if self.__identifier is not None:2216            d["identifier"] = (2217                self.__identifier.as_dict()2218                if hasattr(self.__identifier, "as_dict")2219                else self.__identifier2220            )2221        if self.__uri is not None:2222            d["uri"] = (2223                self.__uri.as_dict() if hasattr(self.__uri, "as_dict") else self.__uri2224            )2225        if self.__batch_size is not None:2226            d["batchSize"] = (2227                self.__batch_size.as_dict()2228                if hasattr(self.__batch_size, "as_dict")2229                else self.__batch_size2230            )2231        if self.__batch_interval_millis is not None:2232            d["batchIntervalMillis"] = (2233                self.__batch_interval_millis.as_dict()2234                if hasattr(self.__batch_interval_millis, "as_dict")2235                else self.__batch_interval_millis2236            )2237        if self.__priority is not None:2238            d["priority"] = (2239                self.__priority.as_dict()2240                if hasattr(self.__priority, "as_dict")2241                else self.__priority2242            )2243        if self.__start_sequence_number is not None:2244            d["startSequenceNumber"] = (2245                self.__start_sequence_number.as_dict()2246                if hasattr(self.__start_sequence_number, "as_dict")2247                else self.__start_sequence_number2248            )2249        if self.__disabled is not None:2250            d["disabled"] = (2251                self.__disabled.as_dict()2252                if hasattr(self.__disabled, "as_dict")2253                else self.__disabled2254            )2255        if self.__export_format is not None:2256            d["exportFormat"] = (2257                self.__export_format.as_dict()2258                if hasattr(self.__export_format, "as_dict")2259                else self.__export_format2260            )2261        return d2262    def __repr__(self):2263        return "<Class HTTPConfig. identifier: {}, uri: {}, batch_size: {}, batch_interval_millis: {}, priority: {}, start_sequence_number: {}, disabled: {}, export_format: {}>".format(2264            limitedRepr(2265                self.__identifier[:20]2266                if isinstance(self.__identifier, bytes)2267                else self.__identifier2268            ),2269            limitedRepr(2270                self.__uri[:20] if isinstance(self.__uri, bytes) else self.__uri2271            ),2272            limitedRepr(2273                self.__batch_size[:20]2274                if isinstance(self.__batch_size, bytes)2275                else self.__batch_size2276            ),2277            limitedRepr(2278                self.__batch_interval_millis[:20]2279                if isinstance(self.__batch_interval_millis, bytes)2280                else self.__batch_interval_millis2281            ),2282            limitedRepr(2283                self.__priority[:20]2284                if isinstance(self.__priority, bytes)2285                else self.__priority2286            ),2287            limitedRepr(2288                self.__start_sequence_number[:20]2289                if isinstance(self.__start_sequence_number, bytes)2290                else self.__start_sequence_number2291            ),2292            limitedRepr(2293                self.__disabled[:20]2294                if isinstance(self.__disabled, bytes)2295                else self.__disabled2296            ),2297            limitedRepr(2298                self.__export_format[:20]2299                if isinstance(self.__export_format, bytes)2300                else self.__export_format2301            ),2302        )2303class StatusConfig:2304    """2305    Configuration for status in a status-stream.2306    """2307    __slots__ = [2308        "__status_level",2309        "__status_stream_name",2310    ]2311    _types_map = {2312        "status_level": {"type": StatusLevel, "subtype": None},2313        "status_stream_name": {"type": str, "subtype": None},2314    }2315    _formats_map = {}2316    _validations_map = {2317        "status_level": {2318            "required": False,2319        },2320        "status_stream_name": {2321            "required": False,2322            "minLength": 1,2323            "maxLength": 255,2324            "pattern": "^[\w ,.\-_]*$",2325        },2326    }2327    def __init__(2328        self, status_level: StatusLevel = None, status_stream_name: str = None2329    ):2330        """2331        :param status_level: Defines the verbosity of status messages in a status-stream.2332        :param status_stream_name: The name of the stream to which status messages are appended.2333            The status-stream should be created before associating it with another stream.2334        """2335        pass2336        self.__status_level = status_level2337        self.__status_stream_name = status_stream_name2338    def _get_status_level(self):2339        return self.__status_level2340    def _set_status_level(self, value):2341        if value is not None and not isinstance(value, StatusLevel):2342            raise TypeError("status_level must be StatusLevel")2343        self.__status_level = value2344    status_level = property(_get_status_level, _set_status_level)2345    """2346    Defines the verbosity of status messages in a status-stream.2347    """2348    def _get_status_stream_name(self):2349        return self.__status_stream_name2350    def _set_status_stream_name(self, value):2351        if value is not None and not isinstance(value, str):2352            raise TypeError("status_stream_name must be str")2353        self.__status_stream_name = value2354    status_stream_name = property(_get_status_stream_name, _set_status_stream_name)2355    """2356    The name of the stream to which status messages are appended.2357    The status-stream should be created before associating it with another stream.2358    """2359    @staticmethod2360    def from_dict(d):2361        v = {}2362        if "statusLevel" in d:2363            v["status_level"] = (2364                StatusLevel.from_dict(d["statusLevel"])2365                if hasattr(StatusLevel, "from_dict")2366                else d["statusLevel"]2367            )2368        if "statusStreamName" in d:2369            v["status_stream_name"] = (2370                str.from_dict(d["statusStreamName"])2371                if hasattr(str, "from_dict")2372                else d["statusStreamName"]2373            )2374        return StatusConfig(**v)2375    def as_dict(self):2376        d = {}2377        if self.__status_level is not None:2378            d["statusLevel"] = (2379                self.__status_level.as_dict()2380                if hasattr(self.__status_level, "as_dict")2381                else self.__status_level2382            )2383        if self.__status_stream_name is not None:2384            d["statusStreamName"] = (2385                self.__status_stream_name.as_dict()2386                if hasattr(self.__status_stream_name, "as_dict")2387                else self.__status_stream_name2388            )2389        return d2390    def __repr__(self):2391        return "<Class StatusConfig. status_level: {}, status_stream_name: {}>".format(2392            limitedRepr(2393                self.__status_level[:20]2394                if isinstance(self.__status_level, bytes)2395                else self.__status_level2396            ),2397            limitedRepr(2398                self.__status_stream_name[:20]2399                if isinstance(self.__status_stream_name, bytes)2400                else self.__status_stream_name2401            ),2402        )2403class S3ExportTaskExecutorConfig:2404    """2405    Configuration object for S3 export tasks executor.  Minimum version requirements: StreamManager server version 1.1 (or AWS IoT Greengrass Core 1.11.0)2406    """2407    __slots__ = [2408        "__identifier",2409        "__size_threshold_for_multipart_upload_bytes",2410        "__priority",2411        "__disabled",2412        "__status_config",2413    ]2414    _types_map = {2415        "identifier": {"type": str, "subtype": None},2416        "size_threshold_for_multipart_upload_bytes": {"type": int, "subtype": None},2417        "priority": {"type": int, "subtype": None},2418        "disabled": {"type": bool, "subtype": None},2419        "status_config": {"type": StatusConfig, "subtype": None},2420    }2421    _formats_map = {}2422    _validations_map = {2423        "identifier": {2424            "required": True,2425            "minLength": 1,2426            "maxLength": 255,2427            "pattern": "^[\w ,.\-_]*$",2428        },2429        "size_threshold_for_multipart_upload_bytes": {2430            "required": False,2431            "minimum": 5242880,2432        },2433        "priority": {2434            "required": False,2435            "maximum": 10,2436            "minimum": 1,2437        },2438        "disabled": {2439            "required": False,2440        },2441        "status_config": {2442            "required": False,2443        },2444    }2445    def __init__(2446        self,2447        identifier: str = None,2448        size_threshold_for_multipart_upload_bytes: int = None,2449        priority: int = None,2450        disabled: bool = None,2451        status_config: StatusConfig = None,2452    ):2453        """2454        :param identifier: A unique identifier to identify this individual upload task.2455            Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.2456        :param size_threshold_for_multipart_upload_bytes: The size threshold in bytes for when to use multipart uploads. Uploads over this size will automatically use a multipart upload strategy, while uploads equal or smaller than this threshold will use a single connection to upload the whole object.2457        :param priority: Priority for this upload task. Lower values are higher priority. If not specified it will have the lowest priority.2458        :param disabled: Enable or disable this export. Default is false.2459        :param status_config: Event status configuration that specifies the target status stream and verbosity.2460        """2461        pass2462        self.__identifier = identifier2463        self.__size_threshold_for_multipart_upload_bytes = (2464            size_threshold_for_multipart_upload_bytes2465        )2466        self.__priority = priority2467        self.__disabled = disabled2468        self.__status_config = status_config2469    def _get_identifier(self):2470        return self.__identifier2471    def _set_identifier(self, value):2472        if not isinstance(value, str):2473            raise TypeError("identifier must be str")2474        self.__identifier = value2475    identifier = property(_get_identifier, _set_identifier)2476    """2477    A unique identifier to identify this individual upload task.2478    Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.2479    """2480    def _get_size_threshold_for_multipart_upload_bytes(self):2481        return self.__size_threshold_for_multipart_upload_bytes2482    def _set_size_threshold_for_multipart_upload_bytes(self, value):2483        if value is not None and not isinstance(value, int):2484            raise TypeError("size_threshold_for_multipart_upload_bytes must be int")2485        self.__size_threshold_for_multipart_upload_bytes = value2486    size_threshold_for_multipart_upload_bytes = property(2487        _get_size_threshold_for_multipart_upload_bytes,2488        _set_size_threshold_for_multipart_upload_bytes,2489    )2490    """2491    The size threshold in bytes for when to use multipart uploads. Uploads over this size will automatically use a multipart upload strategy, while uploads equal or smaller than this threshold will use a single connection to upload the whole object.2492    """2493    def _get_priority(self):2494        return self.__priority2495    def _set_priority(self, value):2496        if value is not None and not isinstance(value, int):2497            raise TypeError("priority must be int")2498        self.__priority = value2499    priority = property(_get_priority, _set_priority)2500    """2501    Priority for this upload task. Lower values are higher priority. If not specified it will have the lowest priority.2502    """2503    def _get_disabled(self):2504        return self.__disabled2505    def _set_disabled(self, value):2506        if value is not None and not isinstance(value, bool):2507            raise TypeError("disabled must be bool")2508        self.__disabled = value2509    disabled = property(_get_disabled, _set_disabled)2510    """2511    Enable or disable this export. Default is false.2512    """2513    def _get_status_config(self):2514        return self.__status_config2515    def _set_status_config(self, value):2516        if value is not None and not isinstance(value, StatusConfig):2517            raise TypeError("status_config must be StatusConfig")2518        self.__status_config = value2519    status_config = property(_get_status_config, _set_status_config)2520    """2521    Event status configuration that specifies the target status stream and verbosity.2522    """2523    @staticmethod2524    def from_dict(d):2525        v = {}2526        if "identifier" in d:2527            v["identifier"] = (2528                str.from_dict(d["identifier"])2529                if hasattr(str, "from_dict")2530                else d["identifier"]2531            )2532        if "sizeThresholdForMultipartUploadBytes" in d:2533            v["size_threshold_for_multipart_upload_bytes"] = (2534                int.from_dict(d["sizeThresholdForMultipartUploadBytes"])2535                if hasattr(int, "from_dict")2536                else d["sizeThresholdForMultipartUploadBytes"]2537            )2538        if "priority" in d:2539            v["priority"] = (2540                int.from_dict(d["priority"])2541                if hasattr(int, "from_dict")2542                else d["priority"]2543            )2544        if "disabled" in d:2545            v["disabled"] = (2546                bool.from_dict(d["disabled"])2547                if hasattr(bool, "from_dict")2548                else d["disabled"]2549            )2550        if "statusConfig" in d:2551            v["status_config"] = (2552                StatusConfig.from_dict(d["statusConfig"])2553                if hasattr(StatusConfig, "from_dict")2554                else d["statusConfig"]2555            )2556        return S3ExportTaskExecutorConfig(**v)2557    def as_dict(self):2558        d = {}2559        if self.__identifier is not None:2560            d["identifier"] = (2561                self.__identifier.as_dict()2562                if hasattr(self.__identifier, "as_dict")2563                else self.__identifier2564            )2565        if self.__size_threshold_for_multipart_upload_bytes is not None:2566            d["sizeThresholdForMultipartUploadBytes"] = (2567                self.__size_threshold_for_multipart_upload_bytes.as_dict()2568                if hasattr(self.__size_threshold_for_multipart_upload_bytes, "as_dict")2569                else self.__size_threshold_for_multipart_upload_bytes2570            )2571        if self.__priority is not None:2572            d["priority"] = (2573                self.__priority.as_dict()2574                if hasattr(self.__priority, "as_dict")2575                else self.__priority2576            )2577        if self.__disabled is not None:2578            d["disabled"] = (2579                self.__disabled.as_dict()2580                if hasattr(self.__disabled, "as_dict")2581                else self.__disabled2582            )2583        if self.__status_config is not None:2584            d["statusConfig"] = (2585                self.__status_config.as_dict()2586                if hasattr(self.__status_config, "as_dict")2587                else self.__status_config2588            )2589        return d2590    def __repr__(self):2591        return "<Class S3ExportTaskExecutorConfig. identifier: {}, size_threshold_for_multipart_upload_bytes: {}, priority: {}, disabled: {}, status_config: {}>".format(2592            limitedRepr(2593                self.__identifier[:20]2594                if isinstance(self.__identifier, bytes)2595                else self.__identifier2596            ),2597            limitedRepr(2598                self.__size_threshold_for_multipart_upload_bytes[:20]2599                if isinstance(self.__size_threshold_for_multipart_upload_bytes, bytes)2600                else self.__size_threshold_for_multipart_upload_bytes2601            ),2602            limitedRepr(2603                self.__priority[:20]2604                if isinstance(self.__priority, bytes)2605                else self.__priority2606            ),2607            limitedRepr(2608                self.__disabled[:20]2609                if isinstance(self.__disabled, bytes)2610                else self.__disabled2611            ),2612            limitedRepr(2613                self.__status_config[:20]2614                if isinstance(self.__status_config, bytes)2615                else self.__status_config2616            ),2617        )2618class IoTAnalyticsConfig:2619    """2620    Configuration object for IoT Analytics export destination.2621    """2622    __slots__ = [2623        "__identifier",2624        "__iot_channel",2625        "__iot_msg_id_prefix",2626        "__batch_size",2627        "__batch_interval_millis",2628        "__priority",2629        "__start_sequence_number",2630        "__disabled",2631    ]2632    _types_map = {2633        "identifier": {"type": str, "subtype": None},2634        "iot_channel": {"type": str, "subtype": None},2635        "iot_msg_id_prefix": {"type": str, "subtype": None},2636        "batch_size": {"type": int, "subtype": None},2637        "batch_interval_millis": {"type": int, "subtype": None},2638        "priority": {"type": int, "subtype": None},2639        "start_sequence_number": {"type": int, "subtype": None},2640        "disabled": {"type": bool, "subtype": None},2641    }2642    _formats_map = {}2643    _validations_map = {2644        "identifier": {2645            "required": True,2646            "minLength": 1,2647            "maxLength": 255,2648            "pattern": "^[\w ,.\-_]*$",2649        },2650        "iot_channel": {2651            "required": True,2652            "minLength": 1,2653        },2654        "iot_msg_id_prefix": {2655            "required": False,2656            "maxLength": 32,2657        },2658        "batch_size": {2659            "required": False,2660            "maximum": 100,2661            "minimum": 1,2662        },2663        "batch_interval_millis": {2664            "required": False,2665            "maximum": 9223372036854,2666            "minimum": 60000,2667        },2668        "priority": {2669            "required": False,2670            "maximum": 10,2671            "minimum": 1,2672        },2673        "start_sequence_number": {2674            "required": False,2675            "maximum": 9223372036854775807,2676            "minimum": 0,2677        },2678        "disabled": {2679            "required": False,2680        },2681    }2682    def __init__(2683        self,2684        identifier: str = None,2685        iot_channel: str = None,2686        iot_msg_id_prefix: str = None,2687        batch_size: int = None,2688        batch_interval_millis: int = None,2689        priority: int = None,2690        start_sequence_number: int = None,2691        disabled: bool = None,2692    ):2693        """2694        :param identifier: A unique identifier to identify this individual upload stream.2695            Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.2696        :param iot_channel: The name of the IoT Analytics Channel that this exporter should upload to.2697        :param iot_msg_id_prefix: A string prefixed to each unique message id. After this prefix, StreamManager may append more data to make the message ID unique.2698            This prefix must be less than 32 characters.2699        :param batch_size: The maximum size of a batch to send to IoT Analytics. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 100.2700            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2701            The batch size must be between 1 and 100.2702        :param batch_interval_millis: The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.2703            If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2704            The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.2705        :param priority: Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.2706        :param start_sequence_number: The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.2707        :param disabled: Enable or disable this export. Default is false.2708        """2709        pass2710        self.__identifier = identifier2711        self.__iot_channel = iot_channel2712        self.__iot_msg_id_prefix = iot_msg_id_prefix2713        self.__batch_size = batch_size2714        self.__batch_interval_millis = batch_interval_millis2715        self.__priority = priority2716        self.__start_sequence_number = start_sequence_number2717        self.__disabled = disabled2718    def _get_identifier(self):2719        return self.__identifier2720    def _set_identifier(self, value):2721        if not isinstance(value, str):2722            raise TypeError("identifier must be str")2723        self.__identifier = value2724    identifier = property(_get_identifier, _set_identifier)2725    """2726    A unique identifier to identify this individual upload stream.2727    Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.2728    """2729    def _get_iot_channel(self):2730        return self.__iot_channel2731    def _set_iot_channel(self, value):2732        if not isinstance(value, str):2733            raise TypeError("iot_channel must be str")2734        self.__iot_channel = value2735    iot_channel = property(_get_iot_channel, _set_iot_channel)2736    """2737    The name of the IoT Analytics Channel that this exporter should upload to.2738    """2739    def _get_iot_msg_id_prefix(self):2740        return self.__iot_msg_id_prefix2741    def _set_iot_msg_id_prefix(self, value):2742        if value is not None and not isinstance(value, str):2743            raise TypeError("iot_msg_id_prefix must be str")2744        self.__iot_msg_id_prefix = value2745    iot_msg_id_prefix = property(_get_iot_msg_id_prefix, _set_iot_msg_id_prefix)2746    """2747    A string prefixed to each unique message id. After this prefix, StreamManager may append more data to make the message ID unique.2748    This prefix must be less than 32 characters.2749    """2750    def _get_batch_size(self):2751        return self.__batch_size2752    def _set_batch_size(self, value):2753        if value is not None and not isinstance(value, int):2754            raise TypeError("batch_size must be int")2755        self.__batch_size = value2756    batch_size = property(_get_batch_size, _set_batch_size)2757    """2758    The maximum size of a batch to send to IoT Analytics. Messages will be queued until the batch size is reached, after which they will then be uploaded. If unspecified the default will be 100.2759    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2760    The batch size must be between 1 and 100.2761    """2762    def _get_batch_interval_millis(self):2763        return self.__batch_interval_millis2764    def _set_batch_interval_millis(self, value):2765        if value is not None and not isinstance(value, int):2766            raise TypeError("batch_interval_millis must be int")2767        self.__batch_interval_millis = value2768    batch_interval_millis = property(2769        _get_batch_interval_millis, _set_batch_interval_millis2770    )2771    """2772    The time in milliseconds between the earliest un-uploaded message and the current time. If this time is exceeded, messages will be uploaded in the next batch. If unspecified messages will be eligible for upload immediately.2773    If both batchSize and batchIntervalMillis are specified, then messages will be eligible for upload when either condition is met.2774    The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.2775    """2776    def _get_priority(self):2777        return self.__priority2778    def _set_priority(self, value):2779        if value is not None and not isinstance(value, int):2780            raise TypeError("priority must be int")2781        self.__priority = value2782    priority = property(_get_priority, _set_priority)2783    """2784    Priority for this upload stream. Lower values are higher priority. If not specified it will have the lowest priority.2785    """2786    def _get_start_sequence_number(self):2787        return self.__start_sequence_number2788    def _set_start_sequence_number(self, value):2789        if value is not None and not isinstance(value, int):2790            raise TypeError("start_sequence_number must be int")2791        self.__start_sequence_number = value2792    start_sequence_number = property(2793        _get_start_sequence_number, _set_start_sequence_number2794    )2795    """2796    The sequence number of the message to use as the starting message in the export. Default is 0. The sequence number provided should be less than the newest sequence number in the stream, i.e., sequence number of the last messaged appended. To find the newest sequence number, describe the stream and then check the storage status of the returned MessageStreamInfo object.2797    """2798    def _get_disabled(self):2799        return self.__disabled2800    def _set_disabled(self, value):2801        if value is not None and not isinstance(value, bool):2802            raise TypeError("disabled must be bool")2803        self.__disabled = value2804    disabled = property(_get_disabled, _set_disabled)2805    """2806    Enable or disable this export. Default is false.2807    """2808    @staticmethod2809    def from_dict(d):2810        v = {}2811        if "identifier" in d:2812            v["identifier"] = (2813                str.from_dict(d["identifier"])2814                if hasattr(str, "from_dict")2815                else d["identifier"]2816            )2817        if "iotChannel" in d:2818            v["iot_channel"] = (2819                str.from_dict(d["iotChannel"])2820                if hasattr(str, "from_dict")2821                else d["iotChannel"]2822            )2823        if "iotMsgIdPrefix" in d:2824            v["iot_msg_id_prefix"] = (2825                str.from_dict(d["iotMsgIdPrefix"])2826                if hasattr(str, "from_dict")2827                else d["iotMsgIdPrefix"]2828            )2829        if "batchSize" in d:2830            v["batch_size"] = (2831                int.from_dict(d["batchSize"])2832                if hasattr(int, "from_dict")2833                else d["batchSize"]2834            )2835        if "batchIntervalMillis" in d:2836            v["batch_interval_millis"] = (2837                int.from_dict(d["batchIntervalMillis"])2838                if hasattr(int, "from_dict")2839                else d["batchIntervalMillis"]2840            )2841        if "priority" in d:2842            v["priority"] = (2843                int.from_dict(d["priority"])2844                if hasattr(int, "from_dict")2845                else d["priority"]2846            )2847        if "startSequenceNumber" in d:2848            v["start_sequence_number"] = (2849                int.from_dict(d["startSequenceNumber"])2850                if hasattr(int, "from_dict")2851                else d["startSequenceNumber"]2852            )2853        if "disabled" in d:2854            v["disabled"] = (2855                bool.from_dict(d["disabled"])2856                if hasattr(bool, "from_dict")2857                else d["disabled"]2858            )2859        return IoTAnalyticsConfig(**v)2860    def as_dict(self):2861        d = {}2862        if self.__identifier is not None:2863            d["identifier"] = (2864                self.__identifier.as_dict()2865                if hasattr(self.__identifier, "as_dict")2866                else self.__identifier2867            )2868        if self.__iot_channel is not None:2869            d["iotChannel"] = (2870                self.__iot_channel.as_dict()2871                if hasattr(self.__iot_channel, "as_dict")2872                else self.__iot_channel2873            )2874        if self.__iot_msg_id_prefix is not None:2875            d["iotMsgIdPrefix"] = (2876                self.__iot_msg_id_prefix.as_dict()2877                if hasattr(self.__iot_msg_id_prefix, "as_dict")2878                else self.__iot_msg_id_prefix2879            )2880        if self.__batch_size is not None:2881            d["batchSize"] = (2882                self.__batch_size.as_dict()2883                if hasattr(self.__batch_size, "as_dict")2884                else self.__batch_size2885            )2886        if self.__batch_interval_millis is not None:2887            d["batchIntervalMillis"] = (2888                self.__batch_interval_millis.as_dict()2889                if hasattr(self.__batch_interval_millis, "as_dict")2890                else self.__batch_interval_millis2891            )2892        if self.__priority is not None:2893            d["priority"] = (2894                self.__priority.as_dict()2895                if hasattr(self.__priority, "as_dict")2896                else self.__priority2897            )2898        if self.__start_sequence_number is not None:2899            d["startSequenceNumber"] = (2900                self.__start_sequence_number.as_dict()2901                if hasattr(self.__start_sequence_number, "as_dict")2902                else self.__start_sequence_number2903            )2904        if self.__disabled is not None:2905            d["disabled"] = (2906                self.__disabled.as_dict()2907                if hasattr(self.__disabled, "as_dict")2908                else self.__disabled2909            )2910        return d2911    def __repr__(self):2912        return "<Class IoTAnalyticsConfig. identifier: {}, iot_channel: {}, iot_msg_id_prefix: {}, batch_size: {}, batch_interval_millis: {}, priority: {}, start_sequence_number: {}, disabled: {}>".format(2913            limitedRepr(2914                self.__identifier[:20]2915                if isinstance(self.__identifier, bytes)2916                else self.__identifier2917            ),2918            limitedRepr(2919                self.__iot_channel[:20]2920                if isinstance(self.__iot_channel, bytes)2921                else self.__iot_channel2922            ),2923            limitedRepr(2924                self.__iot_msg_id_prefix[:20]2925                if isinstance(self.__iot_msg_id_prefix, bytes)2926                else self.__iot_msg_id_prefix2927            ),2928            limitedRepr(2929                self.__batch_size[:20]2930                if isinstance(self.__batch_size, bytes)2931                else self.__batch_size2932            ),2933            limitedRepr(2934                self.__batch_interval_millis[:20]2935                if isinstance(self.__batch_interval_millis, bytes)2936                else self.__batch_interval_millis2937            ),2938            limitedRepr(2939                self.__priority[:20]2940                if isinstance(self.__priority, bytes)2941                else self.__priority2942            ),2943            limitedRepr(2944                self.__start_sequence_number[:20]2945                if isinstance(self.__start_sequence_number, bytes)2946                else self.__start_sequence_number2947            ),2948            limitedRepr(2949                self.__disabled[:20]2950                if isinstance(self.__disabled, bytes)2951                else self.__disabled2952            ),2953        )2954class ExportDefinition:2955    """2956    Defines how and where the stream is uploaded.2957    """2958    __slots__ = [2959        "__http",2960        "__iot_analytics",2961        "__kinesis",2962        "__iot_sitewise",2963        "__s3_task_executor",2964    ]2965    _types_map = {2966        "http": {"type": list, "subtype": HTTPConfig},2967        "iot_analytics": {"type": list, "subtype": IoTAnalyticsConfig},2968        "kinesis": {"type": list, "subtype": KinesisConfig},2969        "iot_sitewise": {"type": list, "subtype": IoTSiteWiseConfig},2970        "s3_task_executor": {"type": list, "subtype": S3ExportTaskExecutorConfig},2971    }2972    _formats_map = {}2973    _validations_map = {2974        "http": {2975            "required": False,2976        },2977        "iot_analytics": {2978            "required": False,2979        },2980        "kinesis": {2981            "required": False,2982        },2983        "iot_sitewise": {2984            "required": False,2985        },2986        "s3_task_executor": {2987            "required": False,2988        },2989    }2990    def __init__(2991        self,2992        http: List[HTTPConfig] = None,2993        iot_analytics: List[IoTAnalyticsConfig] = None,2994        kinesis: List[KinesisConfig] = None,2995        iot_sitewise: List[IoTSiteWiseConfig] = None,2996        s3_task_executor: List[S3ExportTaskExecutorConfig] = None,2997    ):2998        """2999        :param http: Defines how the stream is uploaded to an HTTP endpoint.3000        :param iot_analytics: Defines how the stream is uploaded to IoT Analytics.3001        :param kinesis: Defines how the stream is uploaded to Kinesis.3002        :param iot_sitewise: Defines how the stream is uploaded to IoT SiteWise.3003        :param s3_task_executor: Defines the list of configs for S3 task executors.3004        """3005        pass3006        self.__http = http3007        self.__iot_analytics = iot_analytics3008        self.__kinesis = kinesis3009        self.__iot_sitewise = iot_sitewise3010        self.__s3_task_executor = s3_task_executor3011    def _get_http(self):3012        return self.__http3013    def _set_http(self, value):3014        if value is not None and not isinstance(value, list):3015            raise TypeError("http must be list")3016        if value is not None and not all(isinstance(i, HTTPConfig) for i in value):3017            raise TypeError("http list values must be HTTPConfig")3018        self.__http = value3019    http = property(_get_http, _set_http)3020    """3021    Defines how the stream is uploaded to an HTTP endpoint.3022    """3023    def _get_iot_analytics(self):3024        return self.__iot_analytics3025    def _set_iot_analytics(self, value):3026        if value is not None and not isinstance(value, list):3027            raise TypeError("iot_analytics must be list")3028        if value is not None and not all(3029            isinstance(i, IoTAnalyticsConfig) for i in value3030        ):3031            raise TypeError("iot_analytics list values must be IoTAnalyticsConfig")3032        self.__iot_analytics = value3033    iot_analytics = property(_get_iot_analytics, _set_iot_analytics)3034    """3035    Defines how the stream is uploaded to IoT Analytics.3036    """3037    def _get_kinesis(self):3038        return self.__kinesis3039    def _set_kinesis(self, value):3040        if value is not None and not isinstance(value, list):3041            raise TypeError("kinesis must be list")3042        if value is not None and not all(isinstance(i, KinesisConfig) for i in value):3043            raise TypeError("kinesis list values must be KinesisConfig")3044        self.__kinesis = value3045    kinesis = property(_get_kinesis, _set_kinesis)3046    """3047    Defines how the stream is uploaded to Kinesis.3048    """3049    def _get_iot_sitewise(self):3050        return self.__iot_sitewise3051    def _set_iot_sitewise(self, value):3052        if value is not None and not isinstance(value, list):3053            raise TypeError("iot_sitewise must be list")3054        if value is not None and not all(3055            isinstance(i, IoTSiteWiseConfig) for i in value3056        ):3057            raise TypeError("iot_sitewise list values must be IoTSiteWiseConfig")3058        self.__iot_sitewise = value3059    iot_sitewise = property(_get_iot_sitewise, _set_iot_sitewise)3060    """3061    Defines how the stream is uploaded to IoT SiteWise.3062    """3063    def _get_s3_task_executor(self):3064        return self.__s3_task_executor3065    def _set_s3_task_executor(self, value):3066        if value is not None and not isinstance(value, list):3067            raise TypeError("s3_task_executor must be list")3068        if value is not None and not all(3069            isinstance(i, S3ExportTaskExecutorConfig) for i in value3070        ):3071            raise TypeError(3072                "s3_task_executor list values must be S3ExportTaskExecutorConfig"3073            )3074        self.__s3_task_executor = value3075    s3_task_executor = property(_get_s3_task_executor, _set_s3_task_executor)3076    """3077    Defines the list of configs for S3 task executors.3078    """3079    @staticmethod3080    def from_dict(d):3081        v = {}3082        if "http" in d:3083            v["http"] = [3084                HTTPConfig.from_dict(p) if hasattr(HTTPConfig, "from_dict") else p3085                for p in d["http"]3086            ]3087        if "iotAnalytics" in d:3088            v["iot_analytics"] = [3089                IoTAnalyticsConfig.from_dict(p)3090                if hasattr(IoTAnalyticsConfig, "from_dict")3091                else p3092                for p in d["iotAnalytics"]3093            ]3094        if "kinesis" in d:3095            v["kinesis"] = [3096                KinesisConfig.from_dict(p) if hasattr(KinesisConfig, "from_dict") else p3097                for p in d["kinesis"]3098            ]3099        if "IotSitewise" in d:3100            v["iot_sitewise"] = [3101                IoTSiteWiseConfig.from_dict(p)3102                if hasattr(IoTSiteWiseConfig, "from_dict")3103                else p3104                for p in d["IotSitewise"]3105            ]3106        if "s3TaskExecutor" in d:3107            v["s3_task_executor"] = [3108                S3ExportTaskExecutorConfig.from_dict(p)3109                if hasattr(S3ExportTaskExecutorConfig, "from_dict")3110                else p3111                for p in d["s3TaskExecutor"]3112            ]3113        return ExportDefinition(**v)3114    def as_dict(self):3115        d = {}3116        if self.__http is not None:3117            d["http"] = [3118                p.as_dict() if hasattr(p, "as_dict") else p for p in self.__http3119            ]3120        if self.__iot_analytics is not None:3121            d["iotAnalytics"] = [3122                p.as_dict() if hasattr(p, "as_dict") else p3123                for p in self.__iot_analytics3124            ]3125        if self.__kinesis is not None:3126            d["kinesis"] = [3127                p.as_dict() if hasattr(p, "as_dict") else p for p in self.__kinesis3128            ]3129        if self.__iot_sitewise is not None:3130            d["IotSitewise"] = [3131                p.as_dict() if hasattr(p, "as_dict") else p for p in self.__iot_sitewise3132            ]3133        if self.__s3_task_executor is not None:3134            d["s3TaskExecutor"] = [3135                p.as_dict() if hasattr(p, "as_dict") else p3136                for p in self.__s3_task_executor3137            ]3138        return d3139    def __repr__(self):3140        return "<Class ExportDefinition. http: {}, iot_analytics: {}, kinesis: {}, iot_sitewise: {}, s3_task_executor: {}>".format(3141            limitedRepr(3142                self.__http[:20] if isinstance(self.__http, bytes) else self.__http3143            ),3144            limitedRepr(3145                self.__iot_analytics[:20]3146                if isinstance(self.__iot_analytics, bytes)3147                else self.__iot_analytics3148            ),3149            limitedRepr(3150                self.__kinesis[:20]3151                if isinstance(self.__kinesis, bytes)3152                else self.__kinesis3153            ),3154            limitedRepr(3155                self.__iot_sitewise[:20]3156                if isinstance(self.__iot_sitewise, bytes)3157                else self.__iot_sitewise3158            ),3159            limitedRepr(3160                self.__s3_task_executor[:20]3161                if isinstance(self.__s3_task_executor, bytes)3162                else self.__s3_task_executor3163            ),3164        )3165class StrategyOnFull(enum.Enum):3166    """3167    StrategyOnFull is used in the MessageStreamDefinition when creating a stream.3168    It defines the behavior when the stream has reached the maximum size.3169    RejectNewData: any append message request after the stream is full will be rejected with an exception.3170    OverwriteOldestData: the oldest stream segments will be deleted until there is room for the new message.3171    """3172    RejectNewData = 03173    OverwriteOldestData = 13174    @staticmethod3175    def from_dict(d):3176        return StrategyOnFull(d)3177    def as_dict(self):3178        return self.value3179    def __repr__(self):3180        return "<Enum StrategyOnFull. {}: {}>".format(3181            limitedRepr(self.name), limitedRepr(self.value)3182        )3183class Persistence(enum.Enum):3184    """3185    Stream persistence. If set to File, the file system will be used to persist messages long-term and is resilient to restarts.3186    Memory should be used when performance matters more than durability as it only stores the stream in memory and never writes to the disk.3187    """3188    File = 03189    Memory = 13190    @staticmethod3191    def from_dict(d):3192        return Persistence(d)3193    def as_dict(self):3194        return self.value3195    def __repr__(self):3196        return "<Enum Persistence. {}: {}>".format(3197            limitedRepr(self.name), limitedRepr(self.value)3198        )3199class MessageStreamDefinition:3200    """3201    Object defining a message stream used in the CreateMessageStream and UpdateMessageStream API.3202    """3203    __slots__ = [3204        "__name",3205        "__max_size",3206        "__stream_segment_size",3207        "__time_to_live_millis",3208        "__strategy_on_full",3209        "__persistence",3210        "__flush_on_write",3211        "__export_definition",3212    ]3213    _types_map = {3214        "name": {"type": str, "subtype": None},3215        "max_size": {"type": int, "subtype": None},3216        "stream_segment_size": {"type": int, "subtype": None},3217        "time_to_live_millis": {"type": int, "subtype": None},3218        "strategy_on_full": {"type": StrategyOnFull, "subtype": None},3219        "persistence": {"type": Persistence, "subtype": None},3220        "flush_on_write": {"type": bool, "subtype": None},3221        "export_definition": {"type": ExportDefinition, "subtype": None},3222    }3223    _formats_map = {}3224    _validations_map = {3225        "name": {3226            "required": True,3227            "minLength": 1,3228            "maxLength": 255,3229            "pattern": "^[\w ,.\-_]*$",3230        },3231        "max_size": {3232            "required": False,3233            "maximum": 9223372036854775807,3234            "minimum": 1024,3235        },3236        "stream_segment_size": {3237            "required": False,3238            "maximum": 2147483647,3239            "minimum": 1024,3240        },3241        "time_to_live_millis": {3242            "required": False,3243            "maximum": 9223372036854,3244            "minimum": 60000,3245        },3246        "strategy_on_full": {3247            "required": True,3248        },3249        "persistence": {3250            "required": False,3251        },3252        "flush_on_write": {3253            "required": False,3254        },3255        "export_definition": {3256            "required": False,3257        },3258    }3259    def __init__(3260        self,3261        name: str = None,3262        max_size: int = 268435456,3263        stream_segment_size: int = 16777216,3264        time_to_live_millis: int = None,3265        strategy_on_full: StrategyOnFull = None,3266        persistence: Persistence = None,3267        flush_on_write: bool = None,3268        export_definition: ExportDefinition = None,3269    ):3270        """3271        :param name: The unique name of the stream.3272            Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.3273        :param max_size: The maximum size in bytes for the entire stream. Set to 256MB by default with a minimum of 1KB and a maximum of 8192PB.3274        :param stream_segment_size: The size of each segment of the stream. Set to 16MB by default with a minimum of 1KB and a maximum of 2GB.3275            Data is only deleted segment by segment, so the segment size is the smallest amount of data which can be deleted.3276        :param time_to_live_millis: Time to live for each message in milliseconds. Data may be deleted at any time after the TTL expires; deletion is not guaranteed to occur immediately when the TTL expires.3277            The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.3278        :param strategy_on_full: What to do when the maximum size of the stream is reached.3279            RejectNewData: any append message request after the stream is full will be rejected with an exception.3280            OverwriteOldestData: the oldest stream segments will be deleted until there is room for the new message.3281        :param persistence: Stream persistence. If set to File, the file system will be used to persist messages long-term and is resilient to restarts.3282            Memory should be used when performance matters more than durability as it only stores the stream in memory and never writes to the disk.3283        :param flush_on_write: This only applies when Persistence is set to File mode.3284            Waits for the filesystem to complete the write for every message. This is safer, but slower. Default is false.3285        :param export_definition: Defines how and where the stream is uploaded. See the definition of the ExportDefinition object for more detail.3286        """3287        pass3288        self.__name = name3289        self.__max_size = max_size3290        self.__stream_segment_size = stream_segment_size3291        self.__time_to_live_millis = time_to_live_millis3292        self.__strategy_on_full = strategy_on_full3293        self.__persistence = persistence3294        self.__flush_on_write = flush_on_write3295        self.__export_definition = export_definition3296    def _get_name(self):3297        return self.__name3298    def _set_name(self, value):3299        if not isinstance(value, str):3300            raise TypeError("name must be str")3301        self.__name = value3302    name = property(_get_name, _set_name)3303    """3304    The unique name of the stream.3305    Must be an alphanumeric string including spaces, commas, periods, hyphens, and underscores with length between 1 and 255.3306    """3307    def _get_max_size(self):3308        return self.__max_size3309    def _set_max_size(self, value):3310        if value is not None and not isinstance(value, int):3311            raise TypeError("max_size must be int")3312        self.__max_size = value3313    max_size = property(_get_max_size, _set_max_size)3314    """3315    The maximum size in bytes for the entire stream. Set to 256MB by default with a minimum of 1KB and a maximum of 8192PB.3316    """3317    def _get_stream_segment_size(self):3318        return self.__stream_segment_size3319    def _set_stream_segment_size(self, value):3320        if value is not None and not isinstance(value, int):3321            raise TypeError("stream_segment_size must be int")3322        self.__stream_segment_size = value3323    stream_segment_size = property(_get_stream_segment_size, _set_stream_segment_size)3324    """3325    The size of each segment of the stream. Set to 16MB by default with a minimum of 1KB and a maximum of 2GB.3326    Data is only deleted segment by segment, so the segment size is the smallest amount of data which can be deleted.3327    """3328    def _get_time_to_live_millis(self):3329        return self.__time_to_live_millis3330    def _set_time_to_live_millis(self, value):3331        if value is not None and not isinstance(value, int):3332            raise TypeError("time_to_live_millis must be int")3333        self.__time_to_live_millis = value3334    time_to_live_millis = property(_get_time_to_live_millis, _set_time_to_live_millis)3335    """3336    Time to live for each message in milliseconds. Data may be deleted at any time after the TTL expires; deletion is not guaranteed to occur immediately when the TTL expires.3337    The minimum value is 60000 milliseconds and the maximum is 9223372036854 milliseconds.3338    """3339    def _get_strategy_on_full(self):3340        return self.__strategy_on_full3341    def _set_strategy_on_full(self, value):3342        if not isinstance(value, StrategyOnFull):3343            raise TypeError("strategy_on_full must be StrategyOnFull")3344        self.__strategy_on_full = value3345    strategy_on_full = property(_get_strategy_on_full, _set_strategy_on_full)3346    """3347    What to do when the maximum size of the stream is reached.3348    RejectNewData: any append message request after the stream is full will be rejected with an exception.3349    OverwriteOldestData: the oldest stream segments will be deleted until there is room for the new message.3350    """3351    def _get_persistence(self):3352        return self.__persistence3353    def _set_persistence(self, value):3354        if value is not None and not isinstance(value, Persistence):3355            raise TypeError("persistence must be Persistence")3356        self.__persistence = value3357    persistence = property(_get_persistence, _set_persistence)3358    """3359    Stream persistence. If set to File, the file system will be used to persist messages long-term and is resilient to restarts.3360    Memory should be used when performance matters more than durability as it only stores the stream in memory and never writes to the disk.3361    """3362    def _get_flush_on_write(self):3363        return self.__flush_on_write3364    def _set_flush_on_write(self, value):3365        if value is not None and not isinstance(value, bool):3366            raise TypeError("flush_on_write must be bool")3367        self.__flush_on_write = value3368    flush_on_write = property(_get_flush_on_write, _set_flush_on_write)3369    """3370    This only applies when Persistence is set to File mode.3371    Waits for the filesystem to complete the write for every message. This is safer, but slower. Default is false.3372    """3373    def _get_export_definition(self):3374        return self.__export_definition3375    def _set_export_definition(self, value):3376        if value is not None and not isinstance(value, ExportDefinition):3377            raise TypeError("export_definition must be ExportDefinition")3378        self.__export_definition = value3379    export_definition = property(_get_export_definition, _set_export_definition)3380    """3381    Defines how and where the stream is uploaded. See the definition of the ExportDefinition object for more detail.3382    """3383    @staticmethod3384    def from_dict(d):3385        v = {}3386        if "name" in d:3387            v["name"] = (3388                str.from_dict(d["name"]) if hasattr(str, "from_dict") else d["name"]3389            )3390        if "maxSize" in d:3391            v["max_size"] = (3392                int.from_dict(d["maxSize"])3393                if hasattr(int, "from_dict")3394                else d["maxSize"]3395            )3396        if "streamSegmentSize" in d:3397            v["stream_segment_size"] = (3398                int.from_dict(d["streamSegmentSize"])3399                if hasattr(int, "from_dict")3400                else d["streamSegmentSize"]3401            )3402        if "timeToLiveMillis" in d:3403            v["time_to_live_millis"] = (3404                int.from_dict(d["timeToLiveMillis"])3405                if hasattr(int, "from_dict")3406                else d["timeToLiveMillis"]3407            )3408        if "strategyOnFull" in d:3409            v["strategy_on_full"] = (3410                StrategyOnFull.from_dict(d["strategyOnFull"])3411                if hasattr(StrategyOnFull, "from_dict")3412                else d["strategyOnFull"]3413            )3414        if "persistence" in d:3415            v["persistence"] = (3416                Persistence.from_dict(d["persistence"])3417                if hasattr(Persistence, "from_dict")3418                else d["persistence"]3419            )3420        if "flushOnWrite" in d:3421            v["flush_on_write"] = (3422                bool.from_dict(d["flushOnWrite"])3423                if hasattr(bool, "from_dict")3424                else d["flushOnWrite"]3425            )3426        if "exportDefinition" in d:3427            v["export_definition"] = (3428                ExportDefinition.from_dict(d["exportDefinition"])3429                if hasattr(ExportDefinition, "from_dict")3430                else d["exportDefinition"]3431            )3432        return MessageStreamDefinition(**v)3433    def as_dict(self):3434        d = {}3435        if self.__name is not None:3436            d["name"] = (3437                self.__name.as_dict()3438                if hasattr(self.__name, "as_dict")3439                else self.__name3440            )3441        if self.__max_size is not None:3442            d["maxSize"] = (3443                self.__max_size.as_dict()3444                if hasattr(self.__max_size, "as_dict")3445                else self.__max_size3446            )3447        if self.__stream_segment_size is not None:3448            d["streamSegmentSize"] = (3449                self.__stream_segment_size.as_dict()3450                if hasattr(self.__stream_segment_size, "as_dict")3451                else self.__stream_segment_size3452            )3453        if self.__time_to_live_millis is not None:3454            d["timeToLiveMillis"] = (3455                self.__time_to_live_millis.as_dict()3456                if hasattr(self.__time_to_live_millis, "as_dict")3457                else self.__time_to_live_millis3458            )3459        if self.__strategy_on_full is not None:3460            d["strategyOnFull"] = (3461                self.__strategy_on_full.as_dict()3462                if hasattr(self.__strategy_on_full, "as_dict")3463                else self.__strategy_on_full3464            )3465        if self.__persistence is not None:3466            d["persistence"] = (3467                self.__persistence.as_dict()3468                if hasattr(self.__persistence, "as_dict")3469                else self.__persistence3470            )3471        if self.__flush_on_write is not None:3472            d["flushOnWrite"] = (3473                self.__flush_on_write.as_dict()3474                if hasattr(self.__flush_on_write, "as_dict")3475                else self.__flush_on_write3476            )3477        if self.__export_definition is not None:3478            d["exportDefinition"] = (3479                self.__export_definition.as_dict()3480                if hasattr(self.__export_definition, "as_dict")3481                else self.__export_definition3482            )3483        return d3484    def __repr__(self):3485        return "<Class MessageStreamDefinition. name: {}, max_size: {}, stream_segment_size: {}, time_to_live_millis: {}, strategy_on_full: {}, persistence: {}, flush_on_write: {}, export_definition: {}>".format(3486            limitedRepr(3487                self.__name[:20] if isinstance(self.__name, bytes) else self.__name3488            ),3489            limitedRepr(3490                self.__max_size[:20]3491                if isinstance(self.__max_size, bytes)3492                else self.__max_size3493            ),3494            limitedRepr(3495                self.__stream_segment_size[:20]3496                if isinstance(self.__stream_segment_size, bytes)3497                else self.__stream_segment_size3498            ),3499            limitedRepr(3500                self.__time_to_live_millis[:20]3501                if isinstance(self.__time_to_live_millis, bytes)3502                else self.__time_to_live_millis3503            ),3504            limitedRepr(3505                self.__strategy_on_full[:20]3506                if isinstance(self.__strategy_on_full, bytes)3507                else self.__strategy_on_full3508            ),3509            limitedRepr(3510                self.__persistence[:20]3511                if isinstance(self.__persistence, bytes)3512                else self.__persistence3513            ),3514            limitedRepr(3515                self.__flush_on_write[:20]3516                if isinstance(self.__flush_on_write, bytes)3517                else self.__flush_on_write3518            ),3519            limitedRepr(3520                self.__export_definition[:20]3521                if isinstance(self.__export_definition, bytes)3522                else self.__export_definition3523            ),3524        )3525class CreateMessageStreamRequest:3526    """3527    (Internal Only) Request object for creating a message stream.3528    """3529    __slots__ = [3530        "__request_id",3531        "__definition",3532    ]3533    _types_map = {3534        "request_id": {"type": str, "subtype": None},3535        "definition": {"type": MessageStreamDefinition, "subtype": None},3536    }3537    _formats_map = {}3538    _validations_map = {3539        "request_id": {3540            "required": True,3541            "minLength": 1,3542            "pattern": "^[\w ,.\-_]*$",3543        },3544        "definition": {3545            "required": True,3546        },3547    }3548    def __init__(3549        self, request_id: str = None, definition: MessageStreamDefinition = None3550    ):3551        pass3552        self.__request_id = request_id3553        self.__definition = definition3554    def _get_request_id(self):3555        return self.__request_id3556    def _set_request_id(self, value):3557        if not isinstance(value, str):3558            raise TypeError("request_id must be str")3559        self.__request_id = value3560    request_id = property(_get_request_id, _set_request_id)3561    def _get_definition(self):3562        return self.__definition3563    def _set_definition(self, value):3564        if not isinstance(value, MessageStreamDefinition):3565            raise TypeError("definition must be MessageStreamDefinition")3566        self.__definition = value3567    definition = property(_get_definition, _set_definition)3568    @staticmethod3569    def from_dict(d):3570        v = {}3571        if "requestId" in d:3572            v["request_id"] = (3573                str.from_dict(d["requestId"])3574                if hasattr(str, "from_dict")3575                else d["requestId"]3576            )3577        if "definition" in d:3578            v["definition"] = (3579                MessageStreamDefinition.from_dict(d["definition"])3580                if hasattr(MessageStreamDefinition, "from_dict")3581                else d["definition"]3582            )3583        return CreateMessageStreamRequest(**v)3584    def as_dict(self):3585        d = {}3586        if self.__request_id is not None:3587            d["requestId"] = (3588                self.__request_id.as_dict()3589                if hasattr(self.__request_id, "as_dict")3590                else self.__request_id3591            )3592        if self.__definition is not None:3593            d["definition"] = (3594                self.__definition.as_dict()3595                if hasattr(self.__definition, "as_dict")3596                else self.__definition3597            )3598        return d3599    def __repr__(self):3600        return (3601            "<Class CreateMessageStreamRequest. request_id: {}, definition: {}>".format(3602                limitedRepr(3603                    self.__request_id[:20]3604                    if isinstance(self.__request_id, bytes)3605                    else self.__request_id3606                ),3607                limitedRepr(3608                    self.__definition[:20]3609                    if isinstance(self.__definition, bytes)3610                    else self.__definition3611                ),3612            )3613        )3614class CreateMessageStreamResponse:3615    """3616    Internal Only.3617    """3618    __slots__ = [3619        "__request_id",3620        "__status",3621        "__error_message",3622    ]3623    _types_map = {3624        "request_id": {"type": str, "subtype": None},3625        "status": {"type": ResponseStatusCode, "subtype": None},3626        "error_message": {"type": str, "subtype": None},3627    }3628    _formats_map = {}3629    _validations_map = {3630        "request_id": {3631            "required": True,3632            "minLength": 1,3633            "pattern": "^[\w ,.\-_]*$",3634        },3635        "status": {3636            "required": True,3637        },3638        "error_message": {3639            "required": False,3640        },3641    }3642    def __init__(3643        self,3644        request_id: str = None,3645        status: ResponseStatusCode = None,3646        error_message: str = None,3647    ):3648        pass3649        self.__request_id = request_id3650        self.__status = status3651        self.__error_message = error_message3652    def _get_request_id(self):3653        return self.__request_id3654    def _set_request_id(self, value):3655        if not isinstance(value, str):3656            raise TypeError("request_id must be str")3657        self.__request_id = value3658    request_id = property(_get_request_id, _set_request_id)3659    def _get_status(self):3660        return self.__status3661    def _set_status(self, value):3662        if not isinstance(value, ResponseStatusCode):3663            raise TypeError("status must be ResponseStatusCode")3664        self.__status = value3665    status = property(_get_status, _set_status)3666    def _get_error_message(self):3667        return self.__error_message3668    def _set_error_message(self, value):3669        if value is not None and not isinstance(value, str):3670            raise TypeError("error_message must be str")3671        self.__error_message = value3672    error_message = property(_get_error_message, _set_error_message)3673    @staticmethod3674    def from_dict(d):3675        v = {}3676        if "requestId" in d:3677            v["request_id"] = (3678                str.from_dict(d["requestId"])3679                if hasattr(str, "from_dict")3680                else d["requestId"]3681            )3682        if "status" in d:3683            v["status"] = (3684                ResponseStatusCode.from_dict(d["status"])3685                if hasattr(ResponseStatusCode, "from_dict")3686                else d["status"]3687            )3688        if "errorMessage" in d:3689            v["error_message"] = (3690                str.from_dict(d["errorMessage"])3691                if hasattr(str, "from_dict")3692                else d["errorMessage"]3693            )3694        return CreateMessageStreamResponse(**v)3695    def as_dict(self):3696        d = {}3697        if self.__request_id is not None:3698            d["requestId"] = (3699                self.__request_id.as_dict()3700                if hasattr(self.__request_id, "as_dict")3701                else self.__request_id3702            )3703        if self.__status is not None:3704            d["status"] = (3705                self.__status.as_dict()3706                if hasattr(self.__status, "as_dict")3707                else self.__status3708            )3709        if self.__error_message is not None:3710            d["errorMessage"] = (3711                self.__error_message.as_dict()3712                if hasattr(self.__error_message, "as_dict")3713                else self.__error_message3714            )3715        return d3716    def __repr__(self):3717        return "<Class CreateMessageStreamResponse. request_id: {}, status: {}, error_message: {}>".format(3718            limitedRepr(3719                self.__request_id[:20]3720                if isinstance(self.__request_id, bytes)3721                else self.__request_id3722            ),3723            limitedRepr(3724                self.__status[:20]3725                if isinstance(self.__status, bytes)3726                else self.__status3727            ),3728            limitedRepr(3729                self.__error_message[:20]3730                if isinstance(self.__error_message, bytes)3731                else self.__error_message3732            ),3733        )3734class UpdateMessageStreamRequest:3735    """3736    (Internal Only) Request object for updating a message stream.3737    """3738    __slots__ = [3739        "__request_id",3740        "__definition",3741    ]3742    _types_map = {3743        "request_id": {"type": str, "subtype": None},3744        "definition": {"type": MessageStreamDefinition, "subtype": None},3745    }3746    _formats_map = {}3747    _validations_map = {3748        "request_id": {3749            "required": True,3750            "minLength": 1,3751            "pattern": "^[\w ,.\-_]*$",3752        },3753        "definition": {3754            "required": True,3755        },3756    }3757    def __init__(3758        self, request_id: str = None, definition: MessageStreamDefinition = None3759    ):3760        pass3761        self.__request_id = request_id3762        self.__definition = definition3763    def _get_request_id(self):3764        return self.__request_id3765    def _set_request_id(self, value):3766        if not isinstance(value, str):3767            raise TypeError("request_id must be str")3768        self.__request_id = value3769    request_id = property(_get_request_id, _set_request_id)3770    def _get_definition(self):3771        return self.__definition3772    def _set_definition(self, value):3773        if not isinstance(value, MessageStreamDefinition):3774            raise TypeError("definition must be MessageStreamDefinition")3775        self.__definition = value3776    definition = property(_get_definition, _set_definition)3777    @staticmethod3778    def from_dict(d):3779        v = {}3780        if "requestId" in d:3781            v["request_id"] = (3782                str.from_dict(d["requestId"])3783                if hasattr(str, "from_dict")3784                else d["requestId"]3785            )3786        if "definition" in d:3787            v["definition"] = (3788                MessageStreamDefinition.from_dict(d["definition"])3789                if hasattr(MessageStreamDefinition, "from_dict")3790                else d["definition"]3791            )3792        return UpdateMessageStreamRequest(**v)3793    def as_dict(self):3794        d = {}3795        if self.__request_id is not None:3796            d["requestId"] = (3797                self.__request_id.as_dict()3798                if hasattr(self.__request_id, "as_dict")3799                else self.__request_id3800            )3801        if self.__definition is not None:3802            d["definition"] = (3803                self.__definition.as_dict()3804                if hasattr(self.__definition, "as_dict")3805                else self.__definition3806            )3807        return d3808    def __repr__(self):3809        return (3810            "<Class UpdateMessageStreamRequest. request_id: {}, definition: {}>".format(3811                limitedRepr(3812                    self.__request_id[:20]3813                    if isinstance(self.__request_id, bytes)3814                    else self.__request_id3815                ),3816                limitedRepr(3817                    self.__definition[:20]3818                    if isinstance(self.__definition, bytes)3819                    else self.__definition3820                ),3821            )3822        )3823class UpdateMessageStreamResponse:3824    """3825    (Internal Only) Response for UpdateMessageStreamRequest.3826    """3827    __slots__ = [3828        "__request_id",3829        "__status",3830        "__error_message",3831    ]3832    _types_map = {3833        "request_id": {"type": str, "subtype": None},3834        "status": {"type": ResponseStatusCode, "subtype": None},3835        "error_message": {"type": str, "subtype": None},3836    }3837    _formats_map = {}3838    _validations_map = {3839        "request_id": {3840            "required": True,3841            "minLength": 1,3842            "pattern": "^[\w ,.\-_]*$",3843        },3844        "status": {3845            "required": True,3846        },3847        "error_message": {3848            "required": False,3849        },3850    }3851    def __init__(3852        self,3853        request_id: str = None,3854        status: ResponseStatusCode = None,3855        error_message: str = None,3856    ):3857        pass3858        self.__request_id = request_id3859        self.__status = status3860        self.__error_message = error_message3861    def _get_request_id(self):3862        return self.__request_id3863    def _set_request_id(self, value):3864        if not isinstance(value, str):3865            raise TypeError("request_id must be str")3866        self.__request_id = value3867    request_id = property(_get_request_id, _set_request_id)3868    def _get_status(self):3869        return self.__status3870    def _set_status(self, value):3871        if not isinstance(value, ResponseStatusCode):3872            raise TypeError("status must be ResponseStatusCode")3873        self.__status = value3874    status = property(_get_status, _set_status)3875    def _get_error_message(self):3876        return self.__error_message3877    def _set_error_message(self, value):3878        if value is not None and not isinstance(value, str):3879            raise TypeError("error_message must be str")3880        self.__error_message = value3881    error_message = property(_get_error_message, _set_error_message)3882    @staticmethod3883    def from_dict(d):3884        v = {}3885        if "requestId" in d:3886            v["request_id"] = (3887                str.from_dict(d["requestId"])3888                if hasattr(str, "from_dict")3889                else d["requestId"]3890            )3891        if "status" in d:3892            v["status"] = (3893                ResponseStatusCode.from_dict(d["status"])3894                if hasattr(ResponseStatusCode, "from_dict")3895                else d["status"]3896            )3897        if "errorMessage" in d:3898            v["error_message"] = (3899                str.from_dict(d["errorMessage"])3900                if hasattr(str, "from_dict")3901                else d["errorMessage"]3902            )3903        return UpdateMessageStreamResponse(**v)3904    def as_dict(self):3905        d = {}3906        if self.__request_id is not None:3907            d["requestId"] = (3908                self.__request_id.as_dict()3909                if hasattr(self.__request_id, "as_dict")3910                else self.__request_id3911            )3912        if self.__status is not None:3913            d["status"] = (3914                self.__status.as_dict()3915                if hasattr(self.__status, "as_dict")3916                else self.__status3917            )3918        if self.__error_message is not None:3919            d["errorMessage"] = (3920                self.__error_message.as_dict()3921                if hasattr(self.__error_message, "as_dict")3922                else self.__error_message3923            )3924        return d3925    def __repr__(self):3926        return "<Class UpdateMessageStreamResponse. request_id: {}, status: {}, error_message: {}>".format(3927            limitedRepr(3928                self.__request_id[:20]3929                if isinstance(self.__request_id, bytes)3930                else self.__request_id3931            ),3932            limitedRepr(3933                self.__status[:20]3934                if isinstance(self.__status, bytes)3935                else self.__status3936            ),3937            limitedRepr(3938                self.__error_message[:20]3939                if isinstance(self.__error_message, bytes)3940                else self.__error_message3941            ),3942        )3943class DeleteMessageStreamRequest:3944    """3945    (Internal Only) Request object for deleting a message stream.3946    """3947    __slots__ = [3948        "__request_id",3949        "__name",3950    ]3951    _types_map = {3952        "request_id": {"type": str, "subtype": None},3953        "name": {"type": str, "subtype": None},3954    }3955    _formats_map = {}3956    _validations_map = {3957        "request_id": {3958            "required": True,3959            "minLength": 1,3960            "pattern": "^[\w ,.\-_]*$",3961        },3962        "name": {3963            "required": True,3964            "minLength": 1,3965            "maxLength": 255,3966            "pattern": "^[\w ,.\-_]*$",3967        },3968    }3969    def __init__(self, request_id: str = None, name: str = None):3970        pass3971        self.__request_id = request_id3972        self.__name = name3973    def _get_request_id(self):3974        return self.__request_id3975    def _set_request_id(self, value):3976        if not isinstance(value, str):3977            raise TypeError("request_id must be str")3978        self.__request_id = value3979    request_id = property(_get_request_id, _set_request_id)3980    def _get_name(self):3981        return self.__name3982    def _set_name(self, value):3983        if not isinstance(value, str):3984            raise TypeError("name must be str")3985        self.__name = value3986    name = property(_get_name, _set_name)3987    @staticmethod3988    def from_dict(d):3989        v = {}3990        if "requestId" in d:3991            v["request_id"] = (3992                str.from_dict(d["requestId"])3993                if hasattr(str, "from_dict")3994                else d["requestId"]3995            )3996        if "name" in d:3997            v["name"] = (3998                str.from_dict(d["name"]) if hasattr(str, "from_dict") else d["name"]3999            )4000        return DeleteMessageStreamRequest(**v)4001    def as_dict(self):4002        d = {}4003        if self.__request_id is not None:4004            d["requestId"] = (4005                self.__request_id.as_dict()4006                if hasattr(self.__request_id, "as_dict")4007                else self.__request_id4008            )4009        if self.__name is not None:4010            d["name"] = (4011                self.__name.as_dict()4012                if hasattr(self.__name, "as_dict")4013                else self.__name4014            )4015        return d4016    def __repr__(self):4017        return "<Class DeleteMessageStreamRequest. request_id: {}, name: {}>".format(4018            limitedRepr(4019                self.__request_id[:20]4020                if isinstance(self.__request_id, bytes)4021                else self.__request_id4022            ),4023            limitedRepr(4024                self.__name[:20] if isinstance(self.__name, bytes) else self.__name4025            ),4026        )4027class DeleteMessageStreamResponse:4028    """4029    Internal Only.4030    """4031    __slots__ = [4032        "__request_id",4033        "__status",4034        "__error_message",4035    ]4036    _types_map = {4037        "request_id": {"type": str, "subtype": None},4038        "status": {"type": ResponseStatusCode, "subtype": None},4039        "error_message": {"type": str, "subtype": None},4040    }4041    _formats_map = {}4042    _validations_map = {4043        "request_id": {4044            "required": True,4045            "minLength": 1,4046            "pattern": "^[\w ,.\-_]*$",4047        },4048        "status": {4049            "required": True,4050        },4051        "error_message": {4052            "required": False,4053        },4054    }4055    def __init__(4056        self,4057        request_id: str = None,4058        status: ResponseStatusCode = None,4059        error_message: str = None,4060    ):4061        pass4062        self.__request_id = request_id4063        self.__status = status4064        self.__error_message = error_message4065    def _get_request_id(self):4066        return self.__request_id4067    def _set_request_id(self, value):4068        if not isinstance(value, str):4069            raise TypeError("request_id must be str")4070        self.__request_id = value4071    request_id = property(_get_request_id, _set_request_id)4072    def _get_status(self):4073        return self.__status4074    def _set_status(self, value):4075        if not isinstance(value, ResponseStatusCode):4076            raise TypeError("status must be ResponseStatusCode")4077        self.__status = value4078    status = property(_get_status, _set_status)4079    def _get_error_message(self):4080        return self.__error_message4081    def _set_error_message(self, value):4082        if value is not None and not isinstance(value, str):4083            raise TypeError("error_message must be str")4084        self.__error_message = value4085    error_message = property(_get_error_message, _set_error_message)4086    @staticmethod4087    def from_dict(d):4088        v = {}4089        if "requestId" in d:4090            v["request_id"] = (4091                str.from_dict(d["requestId"])4092                if hasattr(str, "from_dict")4093                else d["requestId"]4094            )4095        if "status" in d:4096            v["status"] = (4097                ResponseStatusCode.from_dict(d["status"])4098                if hasattr(ResponseStatusCode, "from_dict")4099                else d["status"]4100            )4101        if "errorMessage" in d:4102            v["error_message"] = (4103                str.from_dict(d["errorMessage"])4104                if hasattr(str, "from_dict")4105                else d["errorMessage"]4106            )4107        return DeleteMessageStreamResponse(**v)4108    def as_dict(self):4109        d = {}4110        if self.__request_id is not None:4111            d["requestId"] = (4112                self.__request_id.as_dict()4113                if hasattr(self.__request_id, "as_dict")4114                else self.__request_id4115            )4116        if self.__status is not None:4117            d["status"] = (4118                self.__status.as_dict()4119                if hasattr(self.__status, "as_dict")4120                else self.__status4121            )4122        if self.__error_message is not None:4123            d["errorMessage"] = (4124                self.__error_message.as_dict()4125                if hasattr(self.__error_message, "as_dict")4126                else self.__error_message4127            )4128        return d4129    def __repr__(self):4130        return "<Class DeleteMessageStreamResponse. request_id: {}, status: {}, error_message: {}>".format(4131            limitedRepr(4132                self.__request_id[:20]4133                if isinstance(self.__request_id, bytes)4134                else self.__request_id4135            ),4136            limitedRepr(4137                self.__status[:20]4138                if isinstance(self.__status, bytes)4139                else self.__status4140            ),4141            limitedRepr(4142                self.__error_message[:20]4143                if isinstance(self.__error_message, bytes)4144                else self.__error_message4145            ),4146        )4147class DescribeMessageStreamRequest:4148    """4149    (Internal Only) Request object for describing a message stream.4150    """4151    __slots__ = [4152        "__request_id",4153        "__name",4154    ]4155    _types_map = {4156        "request_id": {"type": str, "subtype": None},4157        "name": {"type": str, "subtype": None},4158    }4159    _formats_map = {}4160    _validations_map = {4161        "request_id": {4162            "required": True,4163            "minLength": 1,4164            "pattern": "^[\w ,.\-_]*$",4165        },4166        "name": {4167            "required": True,4168            "minLength": 1,4169            "maxLength": 255,4170            "pattern": "^[\w ,.\-_]*$",4171        },4172    }4173    def __init__(self, request_id: str = None, name: str = None):4174        pass4175        self.__request_id = request_id4176        self.__name = name4177    def _get_request_id(self):4178        return self.__request_id4179    def _set_request_id(self, value):4180        if not isinstance(value, str):4181            raise TypeError("request_id must be str")4182        self.__request_id = value4183    request_id = property(_get_request_id, _set_request_id)4184    def _get_name(self):4185        return self.__name4186    def _set_name(self, value):4187        if not isinstance(value, str):4188            raise TypeError("name must be str")4189        self.__name = value4190    name = property(_get_name, _set_name)4191    @staticmethod4192    def from_dict(d):4193        v = {}4194        if "requestId" in d:4195            v["request_id"] = (4196                str.from_dict(d["requestId"])4197                if hasattr(str, "from_dict")4198                else d["requestId"]4199            )4200        if "name" in d:4201            v["name"] = (4202                str.from_dict(d["name"]) if hasattr(str, "from_dict") else d["name"]4203            )4204        return DescribeMessageStreamRequest(**v)4205    def as_dict(self):4206        d = {}4207        if self.__request_id is not None:4208            d["requestId"] = (4209                self.__request_id.as_dict()4210                if hasattr(self.__request_id, "as_dict")4211                else self.__request_id4212            )4213        if self.__name is not None:4214            d["name"] = (4215                self.__name.as_dict()4216                if hasattr(self.__name, "as_dict")4217                else self.__name4218            )4219        return d4220    def __repr__(self):4221        return "<Class DescribeMessageStreamRequest. request_id: {}, name: {}>".format(4222            limitedRepr(4223                self.__request_id[:20]4224                if isinstance(self.__request_id, bytes)4225                else self.__request_id4226            ),4227            limitedRepr(4228                self.__name[:20] if isinstance(self.__name, bytes) else self.__name4229            ),4230        )4231class MessageStreamInfo:4232    """4233    Message stream information including its definition, storage status and export status.4234    """4235    class storageStatus:4236        """4237        Stream status including oldest/newest sequence number and total bytes.4238        """4239        __slots__ = [4240            "__oldest_sequence_number",4241            "__newest_sequence_number",4242            "__total_bytes",4243        ]4244        _types_map = {4245            "oldest_sequence_number": {"type": int, "subtype": None},4246            "newest_sequence_number": {"type": int, "subtype": None},4247            "total_bytes": {"type": int, "subtype": None},4248        }4249        _formats_map = {}4250        _validations_map = {4251            "oldest_sequence_number": {4252                "required": False,4253            },4254            "newest_sequence_number": {4255                "required": False,4256            },4257            "total_bytes": {4258                "required": False,4259            },4260        }4261        def __init__(4262            self,4263            oldest_sequence_number: int = None,4264            newest_sequence_number: int = None,4265            total_bytes: int = None,4266        ):4267            """4268            :param oldest_sequence_number: The sequence number of the first message which is still accessible in the stream.4269            :param newest_sequence_number: The sequence number of the last appended message.4270            :param total_bytes: The current total size of the stream in bytes.4271            """4272            pass4273            self.__oldest_sequence_number = oldest_sequence_number4274            self.__newest_sequence_number = newest_sequence_number4275            self.__total_bytes = total_bytes4276        def _get_oldest_sequence_number(self):4277            return self.__oldest_sequence_number4278        def _set_oldest_sequence_number(self, value):4279            if value is not None and not isinstance(value, int):4280                raise TypeError("oldest_sequence_number must be int")4281            self.__oldest_sequence_number = value4282        oldest_sequence_number = property(4283            _get_oldest_sequence_number, _set_oldest_sequence_number4284        )4285        """4286            The sequence number of the first message which is still accessible in the stream.4287            """4288        def _get_newest_sequence_number(self):4289            return self.__newest_sequence_number4290        def _set_newest_sequence_number(self, value):4291            if value is not None and not isinstance(value, int):4292                raise TypeError("newest_sequence_number must be int")4293            self.__newest_sequence_number = value4294        newest_sequence_number = property(4295            _get_newest_sequence_number, _set_newest_sequence_number4296        )4297        """4298            The sequence number of the last appended message.4299            """4300        def _get_total_bytes(self):4301            return self.__total_bytes4302        def _set_total_bytes(self, value):4303            if value is not None and not isinstance(value, int):4304                raise TypeError("total_bytes must be int")4305            self.__total_bytes = value4306        total_bytes = property(_get_total_bytes, _set_total_bytes)4307        """4308            The current total size of the stream in bytes.4309            """4310        @staticmethod4311        def from_dict(d):4312            v = {}4313            if "oldestSequenceNumber" in d:4314                v["oldest_sequence_number"] = (4315                    int.from_dict(d["oldestSequenceNumber"])4316                    if hasattr(int, "from_dict")4317                    else d["oldestSequenceNumber"]4318                )4319            if "newestSequenceNumber" in d:4320                v["newest_sequence_number"] = (4321                    int.from_dict(d["newestSequenceNumber"])4322                    if hasattr(int, "from_dict")4323                    else d["newestSequenceNumber"]4324                )4325            if "totalBytes" in d:4326                v["total_bytes"] = (4327                    int.from_dict(d["totalBytes"])4328                    if hasattr(int, "from_dict")4329                    else d["totalBytes"]4330                )4331            return MessageStreamInfo.storageStatus(**v)4332        def as_dict(self):4333            d = {}4334            if self.__oldest_sequence_number is not None:4335                d["oldestSequenceNumber"] = (4336                    self.__oldest_sequence_number.as_dict()4337                    if hasattr(self.__oldest_sequence_number, "as_dict")4338                    else self.__oldest_sequence_number4339                )4340            if self.__newest_sequence_number is not None:4341                d["newestSequenceNumber"] = (4342                    self.__newest_sequence_number.as_dict()4343                    if hasattr(self.__newest_sequence_number, "as_dict")4344                    else self.__newest_sequence_number4345                )4346            if self.__total_bytes is not None:4347                d["totalBytes"] = (4348                    self.__total_bytes.as_dict()4349                    if hasattr(self.__total_bytes, "as_dict")4350                    else self.__total_bytes4351                )4352            return d4353        def __repr__(self):4354            return "<Class storageStatus. oldest_sequence_number: {}, newest_sequence_number: {}, total_bytes: {}>".format(4355                limitedRepr(4356                    self.__oldest_sequence_number[:20]4357                    if isinstance(self.__oldest_sequence_number, bytes)4358                    else self.__oldest_sequence_number4359                ),4360                limitedRepr(4361                    self.__newest_sequence_number[:20]4362                    if isinstance(self.__newest_sequence_number, bytes)4363                    else self.__newest_sequence_number4364                ),4365                limitedRepr(4366                    self.__total_bytes[:20]4367                    if isinstance(self.__total_bytes, bytes)4368                    else self.__total_bytes4369                ),4370            )4371    class exportStatuses:4372        """4373        Export status including the export identifier and the last exported sequence number for that export task.4374        """4375        __slots__ = [4376            "__export_config_identifier",4377            "__last_exported_sequence_number",4378            "__last_export_time",4379            "__error_message",4380            "__exported_bytes_from_stream",4381            "__exported_messages_count",4382        ]4383        _types_map = {4384            "export_config_identifier": {"type": str, "subtype": None},4385            "last_exported_sequence_number": {"type": int, "subtype": None},4386            "last_export_time": {"type": int, "subtype": None},4387            "error_message": {"type": str, "subtype": None},4388            "exported_bytes_from_stream": {"type": int, "subtype": None},4389            "exported_messages_count": {"type": int, "subtype": None},4390        }4391        _formats_map = {}4392        _validations_map = {4393            "export_config_identifier": {4394                "required": False,4395            },4396            "last_exported_sequence_number": {4397                "required": True,4398            },4399            "last_export_time": {4400                "required": False,4401            },4402            "error_message": {4403                "required": False,4404            },4405            "exported_bytes_from_stream": {4406                "required": False,4407            },4408            "exported_messages_count": {4409                "required": False,4410            },4411        }4412        def __init__(4413            self,4414            export_config_identifier: str = None,4415            last_exported_sequence_number: int = None,4416            last_export_time: int = None,4417            error_message: str = None,4418            exported_bytes_from_stream: int = None,4419            exported_messages_count: int = None,4420        ):4421            """4422            :param export_config_identifier: The unique export identifier.4423            :param last_exported_sequence_number: The sequence number of the last message which was successfully exported.4424            :param last_export_time: The last time an export was attempted. Data is Unix epoch time in milliseconds.4425            :param error_message: Error message from the last export attempt if it failed.4426            :param exported_bytes_from_stream: Total bytes exported from the stream for this Export Config. It does not include the failed export attempts or messages which are skipped because of some non-retryable error.4427            :param exported_messages_count: Total messages exported/processed.4428            """4429            pass4430            self.__export_config_identifier = export_config_identifier4431            self.__last_exported_sequence_number = last_exported_sequence_number4432            self.__last_export_time = last_export_time4433            self.__error_message = error_message4434            self.__exported_bytes_from_stream = exported_bytes_from_stream4435            self.__exported_messages_count = exported_messages_count4436        def _get_export_config_identifier(self):4437            return self.__export_config_identifier4438        def _set_export_config_identifier(self, value):4439            if value is not None and not isinstance(value, str):4440                raise TypeError("export_config_identifier must be str")4441            self.__export_config_identifier = value4442        export_config_identifier = property(4443            _get_export_config_identifier, _set_export_config_identifier4444        )4445        """4446            The unique export identifier.4447            """4448        def _get_last_exported_sequence_number(self):4449            return self.__last_exported_sequence_number4450        def _set_last_exported_sequence_number(self, value):4451            if not isinstance(value, int):4452                raise TypeError("last_exported_sequence_number must be int")4453            self.__last_exported_sequence_number = value4454        last_exported_sequence_number = property(4455            _get_last_exported_sequence_number, _set_last_exported_sequence_number4456        )4457        """4458            The sequence number of the last message which was successfully exported.4459            """4460        def _get_last_export_time(self):4461            return self.__last_export_time4462        def _set_last_export_time(self, value):4463            if value is not None and not isinstance(value, int):4464                raise TypeError("last_export_time must be int")4465            self.__last_export_time = value4466        last_export_time = property(_get_last_export_time, _set_last_export_time)4467        """4468            The last time an export was attempted. Data is Unix epoch time in milliseconds.4469            """4470        def _get_error_message(self):4471            return self.__error_message4472        def _set_error_message(self, value):4473            if value is not None and not isinstance(value, str):4474                raise TypeError("error_message must be str")4475            self.__error_message = value4476        error_message = property(_get_error_message, _set_error_message)4477        """4478            Error message from the last export attempt if it failed.4479            """4480        def _get_exported_bytes_from_stream(self):4481            return self.__exported_bytes_from_stream4482        def _set_exported_bytes_from_stream(self, value):4483            if value is not None and not isinstance(value, int):4484                raise TypeError("exported_bytes_from_stream must be int")4485            self.__exported_bytes_from_stream = value4486        exported_bytes_from_stream = property(4487            _get_exported_bytes_from_stream, _set_exported_bytes_from_stream4488        )4489        """4490            Total bytes exported from the stream for this Export Config. It does not include the failed export attempts or messages which are skipped because of some non-retryable error.4491            """4492        def _get_exported_messages_count(self):4493            return self.__exported_messages_count4494        def _set_exported_messages_count(self, value):4495            if value is not None and not isinstance(value, int):4496                raise TypeError("exported_messages_count must be int")4497            self.__exported_messages_count = value4498        exported_messages_count = property(4499            _get_exported_messages_count, _set_exported_messages_count4500        )4501        """4502            Total messages exported/processed.4503            """4504        @staticmethod4505        def from_dict(d):4506            v = {}4507            if "exportConfigIdentifier" in d:4508                v["export_config_identifier"] = (4509                    str.from_dict(d["exportConfigIdentifier"])4510                    if hasattr(str, "from_dict")4511                    else d["exportConfigIdentifier"]4512                )4513            if "lastExportedSequenceNumber" in d:4514                v["last_exported_sequence_number"] = (4515                    int.from_dict(d["lastExportedSequenceNumber"])4516                    if hasattr(int, "from_dict")4517                    else d["lastExportedSequenceNumber"]4518                )4519            if "lastExportTime" in d:4520                v["last_export_time"] = (4521                    int.from_dict(d["lastExportTime"])4522                    if hasattr(int, "from_dict")4523                    else d["lastExportTime"]4524                )4525            if "errorMessage" in d:4526                v["error_message"] = (4527                    str.from_dict(d["errorMessage"])4528                    if hasattr(str, "from_dict")4529                    else d["errorMessage"]4530                )4531            if "exportedBytesFromStream" in d:4532                v["exported_bytes_from_stream"] = (4533                    int.from_dict(d["exportedBytesFromStream"])4534                    if hasattr(int, "from_dict")4535                    else d["exportedBytesFromStream"]4536                )4537            if "exportedMessagesCount" in d:4538                v["exported_messages_count"] = (4539                    int.from_dict(d["exportedMessagesCount"])4540                    if hasattr(int, "from_dict")4541                    else d["exportedMessagesCount"]4542                )4543            return MessageStreamInfo.exportStatuses(**v)4544        def as_dict(self):4545            d = {}4546            if self.__export_config_identifier is not None:4547                d["exportConfigIdentifier"] = (4548                    self.__export_config_identifier.as_dict()4549                    if hasattr(self.__export_config_identifier, "as_dict")4550                    else self.__export_config_identifier4551                )4552            if self.__last_exported_sequence_number is not None:4553                d["lastExportedSequenceNumber"] = (4554                    self.__last_exported_sequence_number.as_dict()4555                    if hasattr(self.__last_exported_sequence_number, "as_dict")4556                    else self.__last_exported_sequence_number4557                )4558            if self.__last_export_time is not None:4559                d["lastExportTime"] = (4560                    self.__last_export_time.as_dict()4561                    if hasattr(self.__last_export_time, "as_dict")4562                    else self.__last_export_time4563                )4564            if self.__error_message is not None:4565                d["errorMessage"] = (4566                    self.__error_message.as_dict()4567                    if hasattr(self.__error_message, "as_dict")4568                    else self.__error_message4569                )4570            if self.__exported_bytes_from_stream is not None:4571                d["exportedBytesFromStream"] = (4572                    self.__exported_bytes_from_stream.as_dict()4573                    if hasattr(self.__exported_bytes_from_stream, "as_dict")4574                    else self.__exported_bytes_from_stream4575                )4576            if self.__exported_messages_count is not None:4577                d["exportedMessagesCount"] = (4578                    self.__exported_messages_count.as_dict()4579                    if hasattr(self.__exported_messages_count, "as_dict")4580                    else self.__exported_messages_count4581                )4582            return d4583        def __repr__(self):4584            return "<Class exportStatuses. export_config_identifier: {}, last_exported_sequence_number: {}, last_export_time: {}, error_message: {}, exported_bytes_from_stream: {}, exported_messages_count: {}>".format(4585                limitedRepr(4586                    self.__export_config_identifier[:20]4587                    if isinstance(self.__export_config_identifier, bytes)4588                    else self.__export_config_identifier4589                ),4590                limitedRepr(4591                    self.__last_exported_sequence_number[:20]4592                    if isinstance(self.__last_exported_sequence_number, bytes)4593                    else self.__last_exported_sequence_number4594                ),4595                limitedRepr(4596                    self.__last_export_time[:20]4597                    if isinstance(self.__last_export_time, bytes)4598                    else self.__last_export_time4599                ),4600                limitedRepr(4601                    self.__error_message[:20]4602                    if isinstance(self.__error_message, bytes)4603                    else self.__error_message4604                ),4605                limitedRepr(4606                    self.__exported_bytes_from_stream[:20]4607                    if isinstance(self.__exported_bytes_from_stream, bytes)4608                    else self.__exported_bytes_from_stream4609                ),4610                limitedRepr(4611                    self.__exported_messages_count[:20]4612                    if isinstance(self.__exported_messages_count, bytes)4613                    else self.__exported_messages_count4614                ),4615            )4616    __slots__ = [4617        "__definition",4618        "__storage_status",4619        "__export_statuses",4620    ]4621    _types_map = {4622        "definition": {"type": MessageStreamDefinition, "subtype": None},4623        "storage_status": {"type": storageStatus, "subtype": None},4624        "export_statuses": {"type": list, "subtype": exportStatuses},4625    }4626    _formats_map = {}4627    _validations_map = {4628        "definition": {4629            "required": True,4630        },4631        "storage_status": {4632            "required": True,4633        },4634        "export_statuses": {4635            "required": False,4636        },4637    }4638    def __init__(4639        self,4640        definition: MessageStreamDefinition = None,4641        storage_status: storageStatus = None,4642        export_statuses: List[exportStatuses] = None,4643    ):4644        """4645        :param storage_status: Stream status including oldest/newest sequence number and total bytes.4646        """4647        pass4648        self.__definition = definition4649        self.__storage_status = storage_status4650        self.__export_statuses = export_statuses4651    def _get_definition(self):4652        return self.__definition4653    def _set_definition(self, value):4654        if not isinstance(value, MessageStreamDefinition):4655            raise TypeError("definition must be MessageStreamDefinition")4656        self.__definition = value4657    definition = property(_get_definition, _set_definition)4658    def _get_storage_status(self):4659        return self.__storage_status4660    def _set_storage_status(self, value):4661        if not isinstance(value, MessageStreamInfo.storageStatus):4662            raise TypeError("storage_status must be MessageStreamInfo.storageStatus")4663        self.__storage_status = value4664    storage_status = property(_get_storage_status, _set_storage_status)4665    """4666    Stream status including oldest/newest sequence number and total bytes.4667    """4668    def _get_export_statuses(self):4669        return self.__export_statuses4670    def _set_export_statuses(self, value):4671        if value is not None and not isinstance(value, list):4672            raise TypeError("export_statuses must be list")4673        if value is not None and not all(4674            isinstance(i, MessageStreamInfo.exportStatuses) for i in value4675        ):4676            raise TypeError(4677                "export_statuses list values must be MessageStreamInfo.exportStatuses"4678            )4679        self.__export_statuses = value4680    export_statuses = property(_get_export_statuses, _set_export_statuses)4681    @staticmethod4682    def from_dict(d):4683        v = {}4684        if "definition" in d:4685            v["definition"] = (4686                MessageStreamDefinition.from_dict(d["definition"])4687                if hasattr(MessageStreamDefinition, "from_dict")4688                else d["definition"]4689            )4690        if "storageStatus" in d:4691            v["storage_status"] = (4692                MessageStreamInfo.storageStatus.from_dict(d["storageStatus"])4693                if hasattr(MessageStreamInfo.storageStatus, "from_dict")4694                else d["storageStatus"]4695            )4696        if "exportStatuses" in d:4697            v["export_statuses"] = [4698                MessageStreamInfo.exportStatuses.from_dict(p)4699                if hasattr(MessageStreamInfo.exportStatuses, "from_dict")4700                else p4701                for p in d["exportStatuses"]4702            ]4703        return MessageStreamInfo(**v)4704    def as_dict(self):4705        d = {}4706        if self.__definition is not None:4707            d["definition"] = (4708                self.__definition.as_dict()4709                if hasattr(self.__definition, "as_dict")4710                else self.__definition4711            )4712        if self.__storage_status is not None:4713            d["storageStatus"] = (4714                self.__storage_status.as_dict()4715                if hasattr(self.__storage_status, "as_dict")4716                else self.__storage_status4717            )4718        if self.__export_statuses is not None:4719            d["exportStatuses"] = [4720                p.as_dict() if hasattr(p, "as_dict") else p4721                for p in self.__export_statuses4722            ]4723        return d4724    def __repr__(self):4725        return "<Class MessageStreamInfo. definition: {}, storage_status: {}, export_statuses: {}>".format(4726            limitedRepr(4727                self.__definition[:20]4728                if isinstance(self.__definition, bytes)4729                else self.__definition4730            ),4731            limitedRepr(4732                self.__storage_status[:20]4733                if isinstance(self.__storage_status, bytes)4734                else self.__storage_status4735            ),4736            limitedRepr(4737                self.__export_statuses[:20]4738                if isinstance(self.__export_statuses, bytes)4739                else self.__export_statuses4740            ),4741        )4742class DescribeMessageStreamResponse:4743    """4744    (Internal Only) Response object for describing a message stream.4745    """4746    __slots__ = [4747        "__request_id",4748        "__status",4749        "__error_message",4750        "__message_stream_info",4751    ]4752    _types_map = {4753        "request_id": {"type": str, "subtype": None},4754        "status": {"type": ResponseStatusCode, "subtype": None},4755        "error_message": {"type": str, "subtype": None},4756        "message_stream_info": {"type": MessageStreamInfo, "subtype": None},4757    }4758    _formats_map = {}4759    _validations_map = {4760        "request_id": {4761            "required": True,4762            "minLength": 1,4763            "pattern": "^[\w ,.\-_]*$",4764        },4765        "status": {4766            "required": True,4767        },4768        "error_message": {4769            "required": False,4770        },4771        "message_stream_info": {4772            "required": False,4773        },4774    }4775    def __init__(4776        self,4777        request_id: str = None,4778        status: ResponseStatusCode = None,4779        error_message: str = None,4780        message_stream_info: MessageStreamInfo = None,4781    ):4782        pass4783        self.__request_id = request_id4784        self.__status = status4785        self.__error_message = error_message4786        self.__message_stream_info = message_stream_info4787    def _get_request_id(self):4788        return self.__request_id4789    def _set_request_id(self, value):4790        if not isinstance(value, str):4791            raise TypeError("request_id must be str")4792        self.__request_id = value4793    request_id = property(_get_request_id, _set_request_id)4794    def _get_status(self):4795        return self.__status4796    def _set_status(self, value):4797        if not isinstance(value, ResponseStatusCode):4798            raise TypeError("status must be ResponseStatusCode")4799        self.__status = value4800    status = property(_get_status, _set_status)4801    def _get_error_message(self):4802        return self.__error_message4803    def _set_error_message(self, value):4804        if value is not None and not isinstance(value, str):4805            raise TypeError("error_message must be str")4806        self.__error_message = value4807    error_message = property(_get_error_message, _set_error_message)4808    def _get_message_stream_info(self):4809        return self.__message_stream_info4810    def _set_message_stream_info(self, value):4811        if value is not None and not isinstance(value, MessageStreamInfo):4812            raise TypeError("message_stream_info must be MessageStreamInfo")4813        self.__message_stream_info = value4814    message_stream_info = property(_get_message_stream_info, _set_message_stream_info)4815    @staticmethod4816    def from_dict(d):4817        v = {}4818        if "requestId" in d:4819            v["request_id"] = (4820                str.from_dict(d["requestId"])4821                if hasattr(str, "from_dict")4822                else d["requestId"]4823            )4824        if "status" in d:4825            v["status"] = (4826                ResponseStatusCode.from_dict(d["status"])4827                if hasattr(ResponseStatusCode, "from_dict")4828                else d["status"]4829            )4830        if "errorMessage" in d:4831            v["error_message"] = (4832                str.from_dict(d["errorMessage"])4833                if hasattr(str, "from_dict")4834                else d["errorMessage"]4835            )4836        if "messageStreamInfo" in d:4837            v["message_stream_info"] = (4838                MessageStreamInfo.from_dict(d["messageStreamInfo"])4839                if hasattr(MessageStreamInfo, "from_dict")4840                else d["messageStreamInfo"]4841            )4842        return DescribeMessageStreamResponse(**v)4843    def as_dict(self):4844        d = {}4845        if self.__request_id is not None:4846            d["requestId"] = (4847                self.__request_id.as_dict()4848                if hasattr(self.__request_id, "as_dict")4849                else self.__request_id4850            )4851        if self.__status is not None:4852            d["status"] = (4853                self.__status.as_dict()4854                if hasattr(self.__status, "as_dict")4855                else self.__status4856            )4857        if self.__error_message is not None:4858            d["errorMessage"] = (4859                self.__error_message.as_dict()4860                if hasattr(self.__error_message, "as_dict")4861                else self.__error_message4862            )4863        if self.__message_stream_info is not None:4864            d["messageStreamInfo"] = (4865                self.__message_stream_info.as_dict()4866                if hasattr(self.__message_stream_info, "as_dict")4867                else self.__message_stream_info4868            )4869        return d4870    def __repr__(self):4871        return "<Class DescribeMessageStreamResponse. request_id: {}, status: {}, error_message: {}, message_stream_info: {}>".format(4872            limitedRepr(4873                self.__request_id[:20]4874                if isinstance(self.__request_id, bytes)4875                else self.__request_id4876            ),4877            limitedRepr(4878                self.__status[:20]4879                if isinstance(self.__status, bytes)4880                else self.__status4881            ),4882            limitedRepr(4883                self.__error_message[:20]4884                if isinstance(self.__error_message, bytes)4885                else self.__error_message4886            ),4887            limitedRepr(4888                self.__message_stream_info[:20]4889                if isinstance(self.__message_stream_info, bytes)4890                else self.__message_stream_info4891            ),4892        )4893class AppendMessageRequest:4894    """4895    (Internal Only) Request object for appending to a message stream.4896    """4897    __slots__ = [4898        "__request_id",4899        "__name",4900        "__payload",4901    ]4902    _types_map = {4903        "request_id": {"type": str, "subtype": None},4904        "name": {"type": str, "subtype": None},4905        "payload": {"type": bytes, "subtype": None},4906    }4907    _formats_map = {}4908    _validations_map = {4909        "request_id": {4910            "required": True,4911            "minLength": 1,4912            "pattern": "^[\w ,.\-_]*$",4913        },4914        "name": {4915            "required": True,4916            "minLength": 1,4917            "maxLength": 255,4918            "pattern": "^[\w ,.\-_]*$",4919        },4920        "payload": {4921            "required": True,4922            "minLength": 1,4923        },4924    }4925    def __init__(self, request_id: str = None, name: str = None, payload: bytes = None):4926        pass4927        self.__request_id = request_id4928        self.__name = name4929        self.__payload = payload4930    def _get_request_id(self):4931        return self.__request_id4932    def _set_request_id(self, value):4933        if not isinstance(value, str):4934            raise TypeError("request_id must be str")4935        self.__request_id = value4936    request_id = property(_get_request_id, _set_request_id)4937    def _get_name(self):4938        return self.__name4939    def _set_name(self, value):4940        if not isinstance(value, str):4941            raise TypeError("name must be str")4942        self.__name = value4943    name = property(_get_name, _set_name)4944    def _get_payload(self):4945        return self.__payload4946    def _set_payload(self, value):4947        if not isinstance(value, bytes):4948            raise TypeError("payload must be bytes")4949        self.__payload = value4950    payload = property(_get_payload, _set_payload)4951    @staticmethod4952    def from_dict(d):4953        v = {}4954        if "requestId" in d:4955            v["request_id"] = (4956                str.from_dict(d["requestId"])4957                if hasattr(str, "from_dict")4958                else d["requestId"]4959            )4960        if "name" in d:4961            v["name"] = (4962                str.from_dict(d["name"]) if hasattr(str, "from_dict") else d["name"]4963            )4964        if "payload" in d:4965            v["payload"] = (4966                bytes.from_dict(d["payload"])4967                if hasattr(bytes, "from_dict")4968                else d["payload"]4969            )4970        return AppendMessageRequest(**v)4971    def as_dict(self):4972        d = {}4973        if self.__request_id is not None:4974            d["requestId"] = (4975                self.__request_id.as_dict()4976                if hasattr(self.__request_id, "as_dict")4977                else self.__request_id4978            )4979        if self.__name is not None:4980            d["name"] = (4981                self.__name.as_dict()4982                if hasattr(self.__name, "as_dict")4983                else self.__name4984            )4985        if self.__payload is not None:4986            d["payload"] = (4987                self.__payload.as_dict()4988                if hasattr(self.__payload, "as_dict")4989                else self.__payload4990            )4991        return d4992    def __repr__(self):4993        return "<Class AppendMessageRequest. request_id: {}, name: {}, payload: {}>".format(4994            limitedRepr(4995                self.__request_id[:20]4996                if isinstance(self.__request_id, bytes)4997                else self.__request_id4998            ),4999            limitedRepr(5000                self.__name[:20] if isinstance(self.__name, bytes) else self.__name5001            ),5002            limitedRepr(5003                self.__payload[:20]5004                if isinstance(self.__payload, bytes)5005                else self.__payload5006            ),5007        )5008class AppendMessageResponse:5009    """5010    Internal Only.5011    """5012    __slots__ = [5013        "__request_id",5014        "__status",5015        "__error_message",5016        "__sequence_number",5017    ]5018    _types_map = {5019        "request_id": {"type": str, "subtype": None},5020        "status": {"type": ResponseStatusCode, "subtype": None},5021        "error_message": {"type": str, "subtype": None},5022        "sequence_number": {"type": int, "subtype": None},5023    }5024    _formats_map = {}5025    _validations_map = {5026        "request_id": {5027            "required": True,5028            "minLength": 1,5029            "pattern": "^[\w ,.\-_]*$",5030        },5031        "status": {5032            "required": True,5033        },5034        "error_message": {5035            "required": False,5036        },5037        "sequence_number": {5038            "required": False,5039        },5040    }5041    def __init__(5042        self,5043        request_id: str = None,5044        status: ResponseStatusCode = None,5045        error_message: str = None,5046        sequence_number: int = None,5047    ):5048        pass5049        self.__request_id = request_id5050        self.__status = status5051        self.__error_message = error_message5052        self.__sequence_number = sequence_number5053    def _get_request_id(self):5054        return self.__request_id5055    def _set_request_id(self, value):5056        if not isinstance(value, str):5057            raise TypeError("request_id must be str")5058        self.__request_id = value5059    request_id = property(_get_request_id, _set_request_id)5060    def _get_status(self):5061        return self.__status5062    def _set_status(self, value):5063        if not isinstance(value, ResponseStatusCode):5064            raise TypeError("status must be ResponseStatusCode")5065        self.__status = value5066    status = property(_get_status, _set_status)5067    def _get_error_message(self):5068        return self.__error_message5069    def _set_error_message(self, value):5070        if value is not None and not isinstance(value, str):5071            raise TypeError("error_message must be str")5072        self.__error_message = value5073    error_message = property(_get_error_message, _set_error_message)5074    def _get_sequence_number(self):5075        return self.__sequence_number5076    def _set_sequence_number(self, value):5077        if value is not None and not isinstance(value, int):5078            raise TypeError("sequence_number must be int")5079        self.__sequence_number = value5080    sequence_number = property(_get_sequence_number, _set_sequence_number)5081    @staticmethod5082    def from_dict(d):5083        v = {}5084        if "requestId" in d:5085            v["request_id"] = (5086                str.from_dict(d["requestId"])5087                if hasattr(str, "from_dict")5088                else d["requestId"]5089            )5090        if "status" in d:5091            v["status"] = (5092                ResponseStatusCode.from_dict(d["status"])5093                if hasattr(ResponseStatusCode, "from_dict")5094                else d["status"]5095            )5096        if "errorMessage" in d:5097            v["error_message"] = (5098                str.from_dict(d["errorMessage"])5099                if hasattr(str, "from_dict")5100                else d["errorMessage"]5101            )5102        if "sequenceNumber" in d:5103            v["sequence_number"] = (5104                int.from_dict(d["sequenceNumber"])5105                if hasattr(int, "from_dict")5106                else d["sequenceNumber"]5107            )5108        return AppendMessageResponse(**v)5109    def as_dict(self):5110        d = {}5111        if self.__request_id is not None:5112            d["requestId"] = (5113                self.__request_id.as_dict()5114                if hasattr(self.__request_id, "as_dict")5115                else self.__request_id5116            )5117        if self.__status is not None:5118            d["status"] = (5119                self.__status.as_dict()5120                if hasattr(self.__status, "as_dict")5121                else self.__status5122            )5123        if self.__error_message is not None:5124            d["errorMessage"] = (5125                self.__error_message.as_dict()5126                if hasattr(self.__error_message, "as_dict")5127                else self.__error_message5128            )5129        if self.__sequence_number is not None:5130            d["sequenceNumber"] = (5131                self.__sequence_number.as_dict()5132                if hasattr(self.__sequence_number, "as_dict")5133                else self.__sequence_number5134            )5135        return d5136    def __repr__(self):5137        return "<Class AppendMessageResponse. request_id: {}, status: {}, error_message: {}, sequence_number: {}>".format(5138            limitedRepr(5139                self.__request_id[:20]5140                if isinstance(self.__request_id, bytes)5141                else self.__request_id5142            ),5143            limitedRepr(5144                self.__status[:20]5145                if isinstance(self.__status, bytes)5146                else self.__status5147            ),5148            limitedRepr(5149                self.__error_message[:20]5150                if isinstance(self.__error_message, bytes)5151                else self.__error_message5152            ),5153            limitedRepr(5154                self.__sequence_number[:20]5155                if isinstance(self.__sequence_number, bytes)5156                else self.__sequence_number5157            ),5158        )5159class ReadMessagesOptions:5160    """5161    Options for the ReadMessages API. All fields are optional.5162    """5163    __slots__ = [5164        "__desired_start_sequence_number",5165        "__min_message_count",5166        "__max_message_count",5167        "__read_timeout_millis",5168    ]5169    _types_map = {5170        "desired_start_sequence_number": {"type": int, "subtype": None},5171        "min_message_count": {"type": int, "subtype": None},5172        "max_message_count": {"type": int, "subtype": None},5173        "read_timeout_millis": {"type": int, "subtype": None},5174    }5175    _formats_map = {}5176    _validations_map = {5177        "desired_start_sequence_number": {5178            "required": False,5179            "maximum": 9223372036854775807,5180            "minimum": 0,5181        },5182        "min_message_count": {5183            "required": False,5184            "maximum": 2147483647,5185            "minimum": 1,5186        },5187        "max_message_count": {5188            "required": False,5189            "maximum": 2147483647,5190            "minimum": 1,5191        },5192        "read_timeout_millis": {5193            "required": False,5194            "maximum": 9223372036854,5195            "minimum": 0,5196        },5197    }5198    def __init__(5199        self,5200        desired_start_sequence_number: int = None,5201        min_message_count: int = 1,5202        max_message_count: int = None,5203        read_timeout_millis: int = 0,5204    ):5205        """5206        :param desired_start_sequence_number: The desired beginning sequence number to start reading from. If the desired sequence number is less than the current minimum of the stream, then it will instead start reading from the current minimum.5207        :param min_message_count: The minimum number of messages that will be returned. If not enough messages are available for reading, then NotEnoughMessages exception will be thrown.5208            The minimum values is 1 and the maximum value is 2147483647.5209        :param max_message_count: The maximum number of messages that will be returned.5210            The minimum values is the value of the minimum message count and the maximum value is 2147483647.5211        :param read_timeout_millis: The time to wait for messages in milliseconds. Default is 0, meaning that the server will not wait for messages.5212            If it can fulfill the minimum messages it will return them, but otherwise NotEnoughMessages exception will be thrown.5213            If the timeout is greater than zero, then the server will wait up to that time for more messages to be appended to the stream, waiting until the minimum number of messages is reached.5214            The maximum value is the value of the client timeout.5215        """5216        pass5217        self.__desired_start_sequence_number = desired_start_sequence_number5218        self.__min_message_count = min_message_count5219        self.__max_message_count = max_message_count5220        self.__read_timeout_millis = read_timeout_millis5221    def _get_desired_start_sequence_number(self):5222        return self.__desired_start_sequence_number5223    def _set_desired_start_sequence_number(self, value):5224        if value is not None and not isinstance(value, int):5225            raise TypeError("desired_start_sequence_number must be int")5226        self.__desired_start_sequence_number = value5227    desired_start_sequence_number = property(5228        _get_desired_start_sequence_number, _set_desired_start_sequence_number5229    )5230    """5231    The desired beginning sequence number to start reading from. If the desired sequence number is less than the current minimum of the stream, then it will instead start reading from the current minimum.5232    """5233    def _get_min_message_count(self):5234        return self.__min_message_count5235    def _set_min_message_count(self, value):5236        if value is not None and not isinstance(value, int):5237            raise TypeError("min_message_count must be int")5238        self.__min_message_count = value5239    min_message_count = property(_get_min_message_count, _set_min_message_count)5240    """5241    The minimum number of messages that will be returned. If not enough messages are available for reading, then NotEnoughMessages exception will be thrown.5242    The minimum values is 1 and the maximum value is 2147483647.5243    """5244    def _get_max_message_count(self):5245        return self.__max_message_count5246    def _set_max_message_count(self, value):5247        if value is not None and not isinstance(value, int):5248            raise TypeError("max_message_count must be int")5249        self.__max_message_count = value5250    max_message_count = property(_get_max_message_count, _set_max_message_count)5251    """5252    The maximum number of messages that will be returned.5253    The minimum values is the value of the minimum message count and the maximum value is 2147483647.5254    """5255    def _get_read_timeout_millis(self):5256        return self.__read_timeout_millis5257    def _set_read_timeout_millis(self, value):5258        if value is not None and not isinstance(value, int):5259            raise TypeError("read_timeout_millis must be int")5260        self.__read_timeout_millis = value5261    read_timeout_millis = property(_get_read_timeout_millis, _set_read_timeout_millis)5262    """5263    The time to wait for messages in milliseconds. Default is 0, meaning that the server will not wait for messages.5264    If it can fulfill the minimum messages it will return them, but otherwise NotEnoughMessages exception will be thrown.5265    If the timeout is greater than zero, then the server will wait up to that time for more messages to be appended to the stream, waiting until the minimum number of messages is reached.5266    The maximum value is the value of the client timeout.5267    """5268    @staticmethod5269    def from_dict(d):5270        v = {}5271        if "desiredStartSequenceNumber" in d:5272            v["desired_start_sequence_number"] = (5273                int.from_dict(d["desiredStartSequenceNumber"])5274                if hasattr(int, "from_dict")5275                else d["desiredStartSequenceNumber"]5276            )5277        if "minMessageCount" in d:5278            v["min_message_count"] = (5279                int.from_dict(d["minMessageCount"])5280                if hasattr(int, "from_dict")5281                else d["minMessageCount"]5282            )5283        if "maxMessageCount" in d:5284            v["max_message_count"] = (5285                int.from_dict(d["maxMessageCount"])5286                if hasattr(int, "from_dict")5287                else d["maxMessageCount"]5288            )5289        if "readTimeoutMillis" in d:5290            v["read_timeout_millis"] = (5291                int.from_dict(d["readTimeoutMillis"])5292                if hasattr(int, "from_dict")5293                else d["readTimeoutMillis"]5294            )5295        return ReadMessagesOptions(**v)5296    def as_dict(self):5297        d = {}5298        if self.__desired_start_sequence_number is not None:5299            d["desiredStartSequenceNumber"] = (5300                self.__desired_start_sequence_number.as_dict()5301                if hasattr(self.__desired_start_sequence_number, "as_dict")5302                else self.__desired_start_sequence_number5303            )5304        if self.__min_message_count is not None:5305            d["minMessageCount"] = (5306                self.__min_message_count.as_dict()5307                if hasattr(self.__min_message_count, "as_dict")5308                else self.__min_message_count5309            )5310        if self.__max_message_count is not None:5311            d["maxMessageCount"] = (5312                self.__max_message_count.as_dict()5313                if hasattr(self.__max_message_count, "as_dict")5314                else self.__max_message_count5315            )5316        if self.__read_timeout_millis is not None:5317            d["readTimeoutMillis"] = (5318                self.__read_timeout_millis.as_dict()5319                if hasattr(self.__read_timeout_millis, "as_dict")5320                else self.__read_timeout_millis5321            )5322        return d5323    def __repr__(self):5324        return "<Class ReadMessagesOptions. desired_start_sequence_number: {}, min_message_count: {}, max_message_count: {}, read_timeout_millis: {}>".format(5325            limitedRepr(5326                self.__desired_start_sequence_number[:20]5327                if isinstance(self.__desired_start_sequence_number, bytes)5328                else self.__desired_start_sequence_number5329            ),5330            limitedRepr(5331                self.__min_message_count[:20]5332                if isinstance(self.__min_message_count, bytes)5333                else self.__min_message_count5334            ),5335            limitedRepr(5336                self.__max_message_count[:20]5337                if isinstance(self.__max_message_count, bytes)5338                else self.__max_message_count5339            ),5340            limitedRepr(5341                self.__read_timeout_millis[:20]5342                if isinstance(self.__read_timeout_millis, bytes)5343                else self.__read_timeout_millis5344            ),5345        )5346class ReadMessagesRequest:5347    """5348    (Internal Only) Request object for reading from a message stream. readMessagesOptions is optional.5349    """5350    __slots__ = [5351        "__request_id",5352        "__stream_name",5353        "__read_messages_options",5354    ]5355    _types_map = {5356        "request_id": {"type": str, "subtype": None},5357        "stream_name": {"type": str, "subtype": None},5358        "read_messages_options": {"type": ReadMessagesOptions, "subtype": None},5359    }5360    _formats_map = {}5361    _validations_map = {5362        "request_id": {5363            "required": True,5364            "minLength": 1,5365            "pattern": "^[\w ,.\-_]*$",5366        },5367        "stream_name": {5368            "required": True,5369            "minLength": 1,5370            "maxLength": 255,5371            "pattern": "^[\w ,.\-_]*$",5372        },5373        "read_messages_options": {5374            "required": False,5375        },5376    }5377    def __init__(5378        self,5379        request_id: str = None,5380        stream_name: str = None,5381        read_messages_options: ReadMessagesOptions = None,5382    ):5383        pass5384        self.__request_id = request_id5385        self.__stream_name = stream_name5386        self.__read_messages_options = read_messages_options5387    def _get_request_id(self):5388        return self.__request_id5389    def _set_request_id(self, value):5390        if not isinstance(value, str):5391            raise TypeError("request_id must be str")5392        self.__request_id = value5393    request_id = property(_get_request_id, _set_request_id)5394    def _get_stream_name(self):5395        return self.__stream_name5396    def _set_stream_name(self, value):5397        if not isinstance(value, str):5398            raise TypeError("stream_name must be str")5399        self.__stream_name = value5400    stream_name = property(_get_stream_name, _set_stream_name)5401    def _get_read_messages_options(self):5402        return self.__read_messages_options5403    def _set_read_messages_options(self, value):5404        if value is not None and not isinstance(value, ReadMessagesOptions):5405            raise TypeError("read_messages_options must be ReadMessagesOptions")5406        self.__read_messages_options = value5407    read_messages_options = property(5408        _get_read_messages_options, _set_read_messages_options5409    )5410    @staticmethod5411    def from_dict(d):5412        v = {}5413        if "requestId" in d:5414            v["request_id"] = (5415                str.from_dict(d["requestId"])5416                if hasattr(str, "from_dict")5417                else d["requestId"]5418            )5419        if "streamName" in d:5420            v["stream_name"] = (5421                str.from_dict(d["streamName"])5422                if hasattr(str, "from_dict")5423                else d["streamName"]5424            )5425        if "readMessagesOptions" in d:5426            v["read_messages_options"] = (5427                ReadMessagesOptions.from_dict(d["readMessagesOptions"])5428                if hasattr(ReadMessagesOptions, "from_dict")5429                else d["readMessagesOptions"]5430            )5431        return ReadMessagesRequest(**v)5432    def as_dict(self):5433        d = {}5434        if self.__request_id is not None:5435            d["requestId"] = (5436                self.__request_id.as_dict()5437                if hasattr(self.__request_id, "as_dict")5438                else self.__request_id5439            )5440        if self.__stream_name is not None:5441            d["streamName"] = (5442                self.__stream_name.as_dict()5443                if hasattr(self.__stream_name, "as_dict")5444                else self.__stream_name5445            )5446        if self.__read_messages_options is not None:5447            d["readMessagesOptions"] = (5448                self.__read_messages_options.as_dict()5449                if hasattr(self.__read_messages_options, "as_dict")5450                else self.__read_messages_options5451            )5452        return d5453    def __repr__(self):5454        return "<Class ReadMessagesRequest. request_id: {}, stream_name: {}, read_messages_options: {}>".format(5455            limitedRepr(5456                self.__request_id[:20]5457                if isinstance(self.__request_id, bytes)5458                else self.__request_id5459            ),5460            limitedRepr(5461                self.__stream_name[:20]5462                if isinstance(self.__stream_name, bytes)5463                else self.__stream_name5464            ),5465            limitedRepr(5466                self.__read_messages_options[:20]5467                if isinstance(self.__read_messages_options, bytes)5468                else self.__read_messages_options5469            ),5470        )5471class Message:5472    """5473    Message object containing metadata and the user's payload.5474    """5475    __slots__ = [5476        "__stream_name",5477        "__sequence_number",5478        "__ingest_time",5479        "__payload",5480    ]5481    _types_map = {5482        "stream_name": {"type": str, "subtype": None},5483        "sequence_number": {"type": int, "subtype": None},5484        "ingest_time": {"type": int, "subtype": None},5485        "payload": {"type": bytes, "subtype": None},5486    }5487    _formats_map = {}5488    _validations_map = {5489        "stream_name": {5490            "required": True,5491        },5492        "sequence_number": {5493            "required": False,5494        },5495        "ingest_time": {5496            "required": False,5497        },5498        "payload": {5499            "required": True,5500        },5501    }5502    def __init__(5503        self,5504        stream_name: str = None,5505        sequence_number: int = None,5506        ingest_time: int = None,5507        payload: bytes = None,5508    ):5509        """5510        :param stream_name: The name of the stream which this message is in.5511        :param sequence_number: The sequence number of this message within the stream.5512        :param ingest_time: The time that the message was ingested to Stream Manager. Data is Unix epoch time in milliseconds.5513        :param payload: The binary message data.5514        """5515        pass5516        self.__stream_name = stream_name5517        self.__sequence_number = sequence_number5518        self.__ingest_time = ingest_time5519        self.__payload = payload5520    def _get_stream_name(self):5521        return self.__stream_name5522    def _set_stream_name(self, value):5523        if not isinstance(value, str):5524            raise TypeError("stream_name must be str")5525        self.__stream_name = value5526    stream_name = property(_get_stream_name, _set_stream_name)5527    """5528    The name of the stream which this message is in.5529    """5530    def _get_sequence_number(self):5531        return self.__sequence_number5532    def _set_sequence_number(self, value):5533        if value is not None and not isinstance(value, int):5534            raise TypeError("sequence_number must be int")5535        self.__sequence_number = value5536    sequence_number = property(_get_sequence_number, _set_sequence_number)5537    """5538    The sequence number of this message within the stream.5539    """5540    def _get_ingest_time(self):5541        return self.__ingest_time5542    def _set_ingest_time(self, value):5543        if value is not None and not isinstance(value, int):5544            raise TypeError("ingest_time must be int")5545        self.__ingest_time = value5546    ingest_time = property(_get_ingest_time, _set_ingest_time)5547    """5548    The time that the message was ingested to Stream Manager. Data is Unix epoch time in milliseconds.5549    """5550    def _get_payload(self):5551        return self.__payload5552    def _set_payload(self, value):5553        if not isinstance(value, bytes):5554            raise TypeError("payload must be bytes")5555        self.__payload = value5556    payload = property(_get_payload, _set_payload)5557    """5558    The binary message data.5559    """5560    @staticmethod5561    def from_dict(d):5562        v = {}5563        if "streamName" in d:5564            v["stream_name"] = (5565                str.from_dict(d["streamName"])5566                if hasattr(str, "from_dict")5567                else d["streamName"]5568            )5569        if "sequenceNumber" in d:5570            v["sequence_number"] = (5571                int.from_dict(d["sequenceNumber"])5572                if hasattr(int, "from_dict")5573                else d["sequenceNumber"]5574            )5575        if "ingestTime" in d:5576            v["ingest_time"] = (5577                int.from_dict(d["ingestTime"])5578                if hasattr(int, "from_dict")5579                else d["ingestTime"]5580            )5581        if "payload" in d:5582            v["payload"] = (5583                bytes.from_dict(d["payload"])5584                if hasattr(bytes, "from_dict")5585                else d["payload"]5586            )5587        return Message(**v)5588    def as_dict(self):5589        d = {}5590        if self.__stream_name is not None:5591            d["streamName"] = (5592                self.__stream_name.as_dict()5593                if hasattr(self.__stream_name, "as_dict")5594                else self.__stream_name5595            )5596        if self.__sequence_number is not None:5597            d["sequenceNumber"] = (5598                self.__sequence_number.as_dict()5599                if hasattr(self.__sequence_number, "as_dict")5600                else self.__sequence_number5601            )5602        if self.__ingest_time is not None:5603            d["ingestTime"] = (5604                self.__ingest_time.as_dict()5605                if hasattr(self.__ingest_time, "as_dict")5606                else self.__ingest_time5607            )5608        if self.__payload is not None:5609            d["payload"] = (5610                self.__payload.as_dict()5611                if hasattr(self.__payload, "as_dict")5612                else self.__payload5613            )5614        return d5615    def __repr__(self):5616        return "<Class Message. stream_name: {}, sequence_number: {}, ingest_time: {}, payload: {}>".format(5617            limitedRepr(5618                self.__stream_name[:20]5619                if isinstance(self.__stream_name, bytes)5620                else self.__stream_name5621            ),5622            limitedRepr(5623                self.__sequence_number[:20]5624                if isinstance(self.__sequence_number, bytes)5625                else self.__sequence_number5626            ),5627            limitedRepr(5628                self.__ingest_time[:20]5629                if isinstance(self.__ingest_time, bytes)5630                else self.__ingest_time5631            ),5632            limitedRepr(5633                self.__payload[:20]5634                if isinstance(self.__payload, bytes)5635                else self.__payload5636            ),5637        )5638class ReadMessagesResponse:5639    """5640    Internal Only.5641    """5642    __slots__ = [5643        "__request_id",5644        "__messages",5645        "__status",5646        "__error_message",5647    ]5648    _types_map = {5649        "request_id": {"type": str, "subtype": None},5650        "messages": {"type": list, "subtype": Message},5651        "status": {"type": ResponseStatusCode, "subtype": None},5652        "error_message": {"type": str, "subtype": None},5653    }5654    _formats_map = {}5655    _validations_map = {5656        "request_id": {5657            "required": False,5658            "minLength": 1,5659            "pattern": "^[\w ,.\-_]*$",5660        },5661        "messages": {5662            "required": False,5663        },5664        "status": {5665            "required": False,5666        },5667        "error_message": {5668            "required": False,5669        },5670    }5671    def __init__(5672        self,5673        request_id: str = None,5674        messages: List[Message] = None,5675        status: ResponseStatusCode = None,5676        error_message: str = None,5677    ):5678        pass5679        self.__request_id = request_id5680        self.__messages = messages5681        self.__status = status5682        self.__error_message = error_message5683    def _get_request_id(self):5684        return self.__request_id5685    def _set_request_id(self, value):5686        if value is not None and not isinstance(value, str):5687            raise TypeError("request_id must be str")5688        self.__request_id = value5689    request_id = property(_get_request_id, _set_request_id)5690    def _get_messages(self):5691        return self.__messages5692    def _set_messages(self, value):5693        if value is not None and not isinstance(value, list):5694            raise TypeError("messages must be list")5695        if value is not None and not all(isinstance(i, Message) for i in value):5696            raise TypeError("messages list values must be Message")5697        self.__messages = value5698    messages = property(_get_messages, _set_messages)5699    def _get_status(self):5700        return self.__status5701    def _set_status(self, value):5702        if value is not None and not isinstance(value, ResponseStatusCode):5703            raise TypeError("status must be ResponseStatusCode")5704        self.__status = value5705    status = property(_get_status, _set_status)5706    def _get_error_message(self):5707        return self.__error_message5708    def _set_error_message(self, value):5709        if value is not None and not isinstance(value, str):5710            raise TypeError("error_message must be str")5711        self.__error_message = value5712    error_message = property(_get_error_message, _set_error_message)5713    @staticmethod5714    def from_dict(d):5715        v = {}5716        if "requestId" in d:5717            v["request_id"] = (5718                str.from_dict(d["requestId"])5719                if hasattr(str, "from_dict")5720                else d["requestId"]5721            )5722        if "messages" in d:5723            v["messages"] = [5724                Message.from_dict(p) if hasattr(Message, "from_dict") else p5725                for p in d["messages"]5726            ]5727        if "status" in d:5728            v["status"] = (5729                ResponseStatusCode.from_dict(d["status"])5730                if hasattr(ResponseStatusCode, "from_dict")5731                else d["status"]5732            )5733        if "errorMessage" in d:5734            v["error_message"] = (5735                str.from_dict(d["errorMessage"])5736                if hasattr(str, "from_dict")5737                else d["errorMessage"]5738            )5739        return ReadMessagesResponse(**v)5740    def as_dict(self):5741        d = {}5742        if self.__request_id is not None:5743            d["requestId"] = (5744                self.__request_id.as_dict()5745                if hasattr(self.__request_id, "as_dict")5746                else self.__request_id5747            )5748        if self.__messages is not None:5749            d["messages"] = [5750                p.as_dict() if hasattr(p, "as_dict") else p for p in self.__messages5751            ]5752        if self.__status is not None:5753            d["status"] = (5754                self.__status.as_dict()5755                if hasattr(self.__status, "as_dict")5756                else self.__status5757            )5758        if self.__error_message is not None:5759            d["errorMessage"] = (5760                self.__error_message.as_dict()5761                if hasattr(self.__error_message, "as_dict")5762                else self.__error_message5763            )5764        return d5765    def __repr__(self):5766        return "<Class ReadMessagesResponse. request_id: {}, messages: {}, status: {}, error_message: {}>".format(5767            limitedRepr(5768                self.__request_id[:20]5769                if isinstance(self.__request_id, bytes)5770                else self.__request_id5771            ),5772            limitedRepr(5773                self.__messages[:20]5774                if isinstance(self.__messages, bytes)5775                else self.__messages5776            ),5777            limitedRepr(5778                self.__status[:20]5779                if isinstance(self.__status, bytes)5780                else self.__status5781            ),5782            limitedRepr(5783                self.__error_message[:20]5784                if isinstance(self.__error_message, bytes)5785                else self.__error_message5786            ),5787        )5788class ListStreamsRequest:5789    """5790    (Internal Only) Request object to list all available streams. There are no options.5791    """5792    __slots__ = [5793        "__request_id",5794    ]5795    _types_map = {5796        "request_id": {"type": str, "subtype": None},5797    }5798    _formats_map = {}5799    _validations_map = {5800        "request_id": {5801            "required": True,5802            "minLength": 1,5803            "pattern": "^[\w ,.\-_]*$",5804        },5805    }5806    def __init__(self, request_id: str = None):5807        pass5808        self.__request_id = request_id5809    def _get_request_id(self):5810        return self.__request_id5811    def _set_request_id(self, value):5812        if not isinstance(value, str):5813            raise TypeError("request_id must be str")5814        self.__request_id = value5815    request_id = property(_get_request_id, _set_request_id)5816    @staticmethod5817    def from_dict(d):5818        v = {}5819        if "requestId" in d:5820            v["request_id"] = (5821                str.from_dict(d["requestId"])5822                if hasattr(str, "from_dict")5823                else d["requestId"]5824            )5825        return ListStreamsRequest(**v)5826    def as_dict(self):5827        d = {}5828        if self.__request_id is not None:5829            d["requestId"] = (5830                self.__request_id.as_dict()5831                if hasattr(self.__request_id, "as_dict")5832                else self.__request_id5833            )5834        return d5835    def __repr__(self):5836        return "<Class ListStreamsRequest. request_id: {}>".format(5837            limitedRepr(5838                self.__request_id[:20]5839                if isinstance(self.__request_id, bytes)5840                else self.__request_id5841            )5842        )5843class ListStreamsResponse:5844    """5845    Internal Only.5846    """5847    __slots__ = [5848        "__request_id",5849        "__status",5850        "__error_message",5851        "__streams",5852    ]5853    _types_map = {5854        "request_id": {"type": str, "subtype": None},5855        "status": {"type": ResponseStatusCode, "subtype": None},5856        "error_message": {"type": str, "subtype": None},5857        "streams": {"type": list, "subtype": str},5858    }5859    _formats_map = {}5860    _validations_map = {5861        "request_id": {5862            "required": True,5863            "minLength": 1,5864            "pattern": "^[\w ,.\-_]*$",5865        },5866        "status": {5867            "required": True,5868        },5869        "error_message": {5870            "required": False,5871        },5872        "streams": {5873            "required": False,5874        },5875    }5876    def __init__(5877        self,5878        request_id: str = None,5879        status: ResponseStatusCode = None,5880        error_message: str = None,5881        streams: List[str] = None,5882    ):5883        pass5884        self.__request_id = request_id5885        self.__status = status5886        self.__error_message = error_message5887        self.__streams = streams5888    def _get_request_id(self):5889        return self.__request_id5890    def _set_request_id(self, value):5891        if not isinstance(value, str):5892            raise TypeError("request_id must be str")5893        self.__request_id = value5894    request_id = property(_get_request_id, _set_request_id)5895    def _get_status(self):5896        return self.__status5897    def _set_status(self, value):5898        if not isinstance(value, ResponseStatusCode):5899            raise TypeError("status must be ResponseStatusCode")5900        self.__status = value5901    status = property(_get_status, _set_status)5902    def _get_error_message(self):5903        return self.__error_message5904    def _set_error_message(self, value):5905        if value is not None and not isinstance(value, str):5906            raise TypeError("error_message must be str")5907        self.__error_message = value5908    error_message = property(_get_error_message, _set_error_message)5909    def _get_streams(self):5910        return self.__streams5911    def _set_streams(self, value):5912        if value is not None and not isinstance(value, list):5913            raise TypeError("streams must be list")5914        if value is not None and not all(isinstance(i, str) for i in value):5915            raise TypeError("streams list values must be str")5916        self.__streams = value5917    streams = property(_get_streams, _set_streams)5918    @staticmethod5919    def from_dict(d):5920        v = {}5921        if "requestId" in d:5922            v["request_id"] = (5923                str.from_dict(d["requestId"])5924                if hasattr(str, "from_dict")5925                else d["requestId"]5926            )5927        if "status" in d:5928            v["status"] = (5929                ResponseStatusCode.from_dict(d["status"])5930                if hasattr(ResponseStatusCode, "from_dict")5931                else d["status"]5932            )5933        if "errorMessage" in d:5934            v["error_message"] = (5935                str.from_dict(d["errorMessage"])5936                if hasattr(str, "from_dict")5937                else d["errorMessage"]5938            )5939        if "streams" in d:5940            v["streams"] = [5941                str.from_dict(p) if hasattr(str, "from_dict") else p5942                for p in d["streams"]5943            ]5944        return ListStreamsResponse(**v)5945    def as_dict(self):5946        d = {}5947        if self.__request_id is not None:5948            d["requestId"] = (5949                self.__request_id.as_dict()5950                if hasattr(self.__request_id, "as_dict")5951                else self.__request_id5952            )5953        if self.__status is not None:5954            d["status"] = (5955                self.__status.as_dict()5956                if hasattr(self.__status, "as_dict")5957                else self.__status5958            )5959        if self.__error_message is not None:5960            d["errorMessage"] = (5961                self.__error_message.as_dict()5962                if hasattr(self.__error_message, "as_dict")5963                else self.__error_message5964            )5965        if self.__streams is not None:5966            d["streams"] = [5967                p.as_dict() if hasattr(p, "as_dict") else p for p in self.__streams5968            ]5969        return d5970    def __repr__(self):5971        return "<Class ListStreamsResponse. request_id: {}, status: {}, error_message: {}, streams: {}>".format(5972            limitedRepr(5973                self.__request_id[:20]5974                if isinstance(self.__request_id, bytes)5975                else self.__request_id5976            ),5977            limitedRepr(5978                self.__status[:20]5979                if isinstance(self.__status, bytes)5980                else self.__status5981            ),5982            limitedRepr(5983                self.__error_message[:20]5984                if isinstance(self.__error_message, bytes)5985                else self.__error_message5986            ),5987            limitedRepr(5988                self.__streams[:20]5989                if isinstance(self.__streams, bytes)5990                else self.__streams5991            ),5992        )5993class TimeInNanos:5994    """5995    Contains a timestamp with optional nanosecond granularity.5996    """5997    __slots__ = [5998        "__time_in_seconds",5999        "__offset_in_nanos",6000    ]6001    _types_map = {6002        "time_in_seconds": {"type": int, "subtype": None},6003        "offset_in_nanos": {"type": int, "subtype": None},6004    }6005    _formats_map = {}6006    _validations_map = {6007        "time_in_seconds": {6008            "required": True,6009            "maximum": 31556889864403199,6010            "minimum": 1,6011        },6012        "offset_in_nanos": {6013            "required": False,6014            "maximum": 999999999,6015            "minimum": 0,6016        },6017    }6018    def __init__(self, time_in_seconds: int = None, offset_in_nanos: int = None):6019        """6020        :param time_in_seconds: The timestamp date, in seconds, in the Unix epoch format. Fractional nanosecond data is provided by offsetInNanos.6021        :param offset_in_nanos: The nanosecond offset from timeInSeconds.6022        """6023        pass6024        self.__time_in_seconds = time_in_seconds6025        self.__offset_in_nanos = offset_in_nanos6026    def _get_time_in_seconds(self):6027        return self.__time_in_seconds6028    def _set_time_in_seconds(self, value):6029        if not isinstance(value, int):6030            raise TypeError("time_in_seconds must be int")6031        self.__time_in_seconds = value6032    time_in_seconds = property(_get_time_in_seconds, _set_time_in_seconds)6033    """6034    The timestamp date, in seconds, in the Unix epoch format. Fractional nanosecond data is provided by offsetInNanos.6035    """6036    def _get_offset_in_nanos(self):6037        return self.__offset_in_nanos6038    def _set_offset_in_nanos(self, value):6039        if value is not None and not isinstance(value, int):6040            raise TypeError("offset_in_nanos must be int")6041        self.__offset_in_nanos = value6042    offset_in_nanos = property(_get_offset_in_nanos, _set_offset_in_nanos)6043    """6044    The nanosecond offset from timeInSeconds.6045    """6046    @staticmethod6047    def from_dict(d):6048        v = {}6049        if "timeInSeconds" in d:6050            v["time_in_seconds"] = (6051                int.from_dict(d["timeInSeconds"])6052                if hasattr(int, "from_dict")6053                else d["timeInSeconds"]6054            )6055        if "offsetInNanos" in d:6056            v["offset_in_nanos"] = (6057                int.from_dict(d["offsetInNanos"])6058                if hasattr(int, "from_dict")6059                else d["offsetInNanos"]6060            )6061        return TimeInNanos(**v)6062    def as_dict(self):6063        d = {}6064        if self.__time_in_seconds is not None:6065            d["timeInSeconds"] = (6066                self.__time_in_seconds.as_dict()6067                if hasattr(self.__time_in_seconds, "as_dict")6068                else self.__time_in_seconds6069            )6070        if self.__offset_in_nanos is not None:6071            d["offsetInNanos"] = (6072                self.__offset_in_nanos.as_dict()6073                if hasattr(self.__offset_in_nanos, "as_dict")6074                else self.__offset_in_nanos6075            )6076        return d6077    def __repr__(self):6078        return "<Class TimeInNanos. time_in_seconds: {}, offset_in_nanos: {}>".format(6079            limitedRepr(6080                self.__time_in_seconds[:20]6081                if isinstance(self.__time_in_seconds, bytes)6082                else self.__time_in_seconds6083            ),6084            limitedRepr(6085                self.__offset_in_nanos[:20]6086                if isinstance(self.__offset_in_nanos, bytes)6087                else self.__offset_in_nanos6088            ),6089        )6090class Quality(enum.Enum):6091    GOOD = "GOOD"6092    BAD = "BAD"6093    UNCERTAIN = "UNCERTAIN"6094    @staticmethod6095    def from_dict(d):6096        return Quality(d)6097    def as_dict(self):6098        return self.value6099    def __repr__(self):6100        return "<Enum Quality. {}: {}>".format(6101            limitedRepr(self.name), limitedRepr(self.value)6102        )6103class Variant:6104    """6105    Contains an asset property value (of a single type only).6106    """6107    __slots__ = [6108        "__string_value",6109        "__integer_value",6110        "__double_value",6111        "__boolean_value",6112    ]6113    _types_map = {6114        "string_value": {"type": str, "subtype": None},6115        "integer_value": {"type": int, "subtype": None},6116        "double_value": {"type": float, "subtype": None},6117        "boolean_value": {"type": bool, "subtype": None},6118    }6119    _formats_map = {}6120    _validations_map = {6121        "string_value": {6122            "required": False,6123            "minLength": 1,6124            "maxLength": 1024,6125            "pattern": "[^\u0000-\u001F\u007F]+",6126        },6127        "integer_value": {6128            "required": False,6129            "maximum": 2147483647,6130            "minimum": 0,6131        },6132        "double_value": {6133            "required": False,6134        },6135        "boolean_value": {6136            "required": False,6137        },6138    }6139    def __init__(6140        self,6141        string_value: str = None,6142        integer_value: int = None,6143        double_value: float = None,6144        boolean_value: bool = None,6145    ):6146        """6147        :param string_value: Asset property data of type string (sequence of characters).6148        :param integer_value: Asset property data of type integer (whole number).6149        :param double_value: Asset property data of type double (floating point number).6150        :param boolean_value: Asset property data of type Boolean (true or false).6151        """6152        pass6153        self.__string_value = string_value6154        self.__integer_value = integer_value6155        self.__double_value = double_value6156        self.__boolean_value = boolean_value6157    def _get_string_value(self):6158        return self.__string_value6159    def _set_string_value(self, value):6160        if value is not None and not isinstance(value, str):6161            raise TypeError("string_value must be str")6162        self.__string_value = value6163    string_value = property(_get_string_value, _set_string_value)6164    """6165    Asset property data of type string (sequence of characters).6166    """6167    def _get_integer_value(self):6168        return self.__integer_value6169    def _set_integer_value(self, value):6170        if value is not None and not isinstance(value, int):6171            raise TypeError("integer_value must be int")6172        self.__integer_value = value6173    integer_value = property(_get_integer_value, _set_integer_value)6174    """6175    Asset property data of type integer (whole number).6176    """6177    def _get_double_value(self):6178        return self.__double_value6179    def _set_double_value(self, value):6180        if value is not None and not isinstance(value, float):6181            raise TypeError("double_value must be float")6182        self.__double_value = value6183    double_value = property(_get_double_value, _set_double_value)6184    """6185    Asset property data of type double (floating point number).6186    """6187    def _get_boolean_value(self):6188        return self.__boolean_value6189    def _set_boolean_value(self, value):6190        if value is not None and not isinstance(value, bool):6191            raise TypeError("boolean_value must be bool")6192        self.__boolean_value = value6193    boolean_value = property(_get_boolean_value, _set_boolean_value)6194    """6195    Asset property data of type Boolean (true or false).6196    """6197    @staticmethod6198    def from_dict(d):6199        v = {}6200        if "stringValue" in d:6201            v["string_value"] = (6202                str.from_dict(d["stringValue"])6203                if hasattr(str, "from_dict")6204                else d["stringValue"]6205            )6206        if "integerValue" in d:6207            v["integer_value"] = (6208                int.from_dict(d["integerValue"])6209                if hasattr(int, "from_dict")6210                else d["integerValue"]6211            )6212        if "doubleValue" in d:6213            v["double_value"] = (6214                float.from_dict(d["doubleValue"])6215                if hasattr(float, "from_dict")6216                else d["doubleValue"]6217            )6218        if "booleanValue" in d:6219            v["boolean_value"] = (6220                bool.from_dict(d["booleanValue"])6221                if hasattr(bool, "from_dict")6222                else d["booleanValue"]6223            )6224        return Variant(**v)6225    def as_dict(self):6226        d = {}6227        if self.__string_value is not None:6228            d["stringValue"] = (6229                self.__string_value.as_dict()6230                if hasattr(self.__string_value, "as_dict")6231                else self.__string_value6232            )6233        if self.__integer_value is not None:6234            d["integerValue"] = (6235                self.__integer_value.as_dict()6236                if hasattr(self.__integer_value, "as_dict")6237                else self.__integer_value6238            )6239        if self.__double_value is not None:6240            d["doubleValue"] = (6241                self.__double_value.as_dict()6242                if hasattr(self.__double_value, "as_dict")6243                else self.__double_value6244            )6245        if self.__boolean_value is not None:6246            d["booleanValue"] = (6247                self.__boolean_value.as_dict()6248                if hasattr(self.__boolean_value, "as_dict")6249                else self.__boolean_value6250            )6251        return d6252    def __repr__(self):6253        return "<Class Variant. string_value: {}, integer_value: {}, double_value: {}, boolean_value: {}>".format(6254            limitedRepr(6255                self.__string_value[:20]6256                if isinstance(self.__string_value, bytes)6257                else self.__string_value6258            ),6259            limitedRepr(6260                self.__integer_value[:20]6261                if isinstance(self.__integer_value, bytes)6262                else self.__integer_value6263            ),6264            limitedRepr(6265                self.__double_value[:20]6266                if isinstance(self.__double_value, bytes)6267                else self.__double_value6268            ),6269            limitedRepr(6270                self.__boolean_value[:20]6271                if isinstance(self.__boolean_value, bytes)6272                else self.__boolean_value6273            ),6274        )6275class AssetPropertyValue:6276    """6277    Contains asset property value information.6278    """6279    __slots__ = [6280        "__value",6281        "__timestamp",6282        "__quality",6283    ]6284    _types_map = {6285        "value": {"type": Variant, "subtype": None},6286        "timestamp": {"type": TimeInNanos, "subtype": None},6287        "quality": {"type": Quality, "subtype": None},6288    }6289    _formats_map = {}6290    _validations_map = {6291        "value": {6292            "required": True,6293        },6294        "timestamp": {6295            "required": True,6296        },6297        "quality": {6298            "required": False,6299        },6300    }6301    def __init__(6302        self,6303        value: Variant = None,6304        timestamp: TimeInNanos = None,6305        quality: Quality = None,6306    ):6307        """6308        :param value: The value of the asset property.6309        :param timestamp: The timestamp of the asset property value.6310        :param quality: The quality of the asset property value.6311        """6312        pass6313        self.__value = value6314        self.__timestamp = timestamp6315        self.__quality = quality6316    def _get_value(self):6317        return self.__value6318    def _set_value(self, value):6319        if not isinstance(value, Variant):6320            raise TypeError("value must be Variant")6321        self.__value = value6322    value = property(_get_value, _set_value)6323    """6324    The value of the asset property.6325    """6326    def _get_timestamp(self):6327        return self.__timestamp6328    def _set_timestamp(self, value):6329        if not isinstance(value, TimeInNanos):6330            raise TypeError("timestamp must be TimeInNanos")6331        self.__timestamp = value6332    timestamp = property(_get_timestamp, _set_timestamp)6333    """6334    The timestamp of the asset property value.6335    """6336    def _get_quality(self):6337        return self.__quality6338    def _set_quality(self, value):6339        if value is not None and not isinstance(value, Quality):6340            raise TypeError("quality must be Quality")6341        self.__quality = value6342    quality = property(_get_quality, _set_quality)6343    """6344    The quality of the asset property value.6345    """6346    @staticmethod6347    def from_dict(d):6348        v = {}6349        if "value" in d:6350            v["value"] = (6351                Variant.from_dict(d["value"])6352                if hasattr(Variant, "from_dict")6353                else d["value"]6354            )6355        if "timestamp" in d:6356            v["timestamp"] = (6357                TimeInNanos.from_dict(d["timestamp"])6358                if hasattr(TimeInNanos, "from_dict")6359                else d["timestamp"]6360            )6361        if "quality" in d:6362            v["quality"] = (6363                Quality.from_dict(d["quality"])6364                if hasattr(Quality, "from_dict")6365                else d["quality"]6366            )6367        return AssetPropertyValue(**v)6368    def as_dict(self):6369        d = {}6370        if self.__value is not None:6371            d["value"] = (6372                self.__value.as_dict()6373                if hasattr(self.__value, "as_dict")6374                else self.__value6375            )6376        if self.__timestamp is not None:6377            d["timestamp"] = (6378                self.__timestamp.as_dict()6379                if hasattr(self.__timestamp, "as_dict")6380                else self.__timestamp6381            )6382        if self.__quality is not None:6383            d["quality"] = (6384                self.__quality.as_dict()6385                if hasattr(self.__quality, "as_dict")6386                else self.__quality6387            )6388        return d6389    def __repr__(self):6390        return (6391            "<Class AssetPropertyValue. value: {}, timestamp: {}, quality: {}>".format(6392                limitedRepr(6393                    self.__value[:20]6394                    if isinstance(self.__value, bytes)6395                    else self.__value6396                ),6397                limitedRepr(6398                    self.__timestamp[:20]6399                    if isinstance(self.__timestamp, bytes)6400                    else self.__timestamp6401                ),6402                limitedRepr(6403                    self.__quality[:20]6404                    if isinstance(self.__quality, bytes)6405                    else self.__quality6406                ),6407            )6408        )6409class PutAssetPropertyValueEntry:6410    """6411    Contains a list of value updates for a IoTSiteWise asset property in the list of asset entries consumed by the BatchPutAssetPropertyValue API. See https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html.6412    """6413    __slots__ = [6414        "__entry_id",6415        "__asset_id",6416        "__property_id",6417        "__property_alias",6418        "__property_values",6419    ]6420    _types_map = {6421        "entry_id": {"type": str, "subtype": None},6422        "asset_id": {"type": str, "subtype": None},6423        "property_id": {"type": str, "subtype": None},6424        "property_alias": {"type": str, "subtype": None},6425        "property_values": {"type": list, "subtype": AssetPropertyValue},6426    }6427    _formats_map = {}6428    _validations_map = {6429        "entry_id": {6430            "required": True,6431            "minLength": 1,6432            "maxLength": 64,6433            "pattern": "^[a-zA-Z0-9_-]+$",6434        },6435        "asset_id": {6436            "required": False,6437        },6438        "property_id": {6439            "required": False,6440        },6441        "property_alias": {6442            "required": False,6443            "minLength": 1,6444            "maxLength": 2048,6445            "pattern": "[^\u0000-\u001F\u007F]+",6446        },6447        "property_values": {6448            "required": True,6449            "maxItems": 10,6450            "minItems": 1,6451        },6452    }6453    def __init__(6454        self,6455        entry_id: str = None,6456        asset_id: str = None,6457        property_id: str = None,6458        property_alias: str = None,6459        property_values: List[AssetPropertyValue] = None,6460    ):6461        """6462        :param entry_id: The user specified ID for the entry. You can use this ID to identify which entries failed.6463        :param asset_id: The ID of the asset to update.6464        :param property_id: The ID of the asset property for this entry.6465        :param property_alias: The property alias that identifies the property, such as an OPC-UA server data stream path (for example, /company/windfarm/3/turbine/7/temperature). For more information, see https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html.6466        :param property_values: The list of property values to upload. You can specify up to 10 values.6467        """6468        pass6469        self.__entry_id = entry_id6470        self.__asset_id = asset_id6471        self.__property_id = property_id6472        self.__property_alias = property_alias6473        self.__property_values = property_values6474    def _get_entry_id(self):6475        return self.__entry_id6476    def _set_entry_id(self, value):6477        if not isinstance(value, str):6478            raise TypeError("entry_id must be str")6479        self.__entry_id = value6480    entry_id = property(_get_entry_id, _set_entry_id)6481    """6482    The user specified ID for the entry. You can use this ID to identify which entries failed.6483    """6484    def _get_asset_id(self):6485        return self.__asset_id6486    def _set_asset_id(self, value):6487        if value is not None and not isinstance(value, str):6488            raise TypeError("asset_id must be str")6489        self.__asset_id = value6490    asset_id = property(_get_asset_id, _set_asset_id)6491    """6492    The ID of the asset to update.6493    """6494    def _get_property_id(self):6495        return self.__property_id6496    def _set_property_id(self, value):6497        if value is not None and not isinstance(value, str):6498            raise TypeError("property_id must be str")6499        self.__property_id = value6500    property_id = property(_get_property_id, _set_property_id)6501    """6502    The ID of the asset property for this entry.6503    """6504    def _get_property_alias(self):6505        return self.__property_alias6506    def _set_property_alias(self, value):6507        if value is not None and not isinstance(value, str):6508            raise TypeError("property_alias must be str")6509        self.__property_alias = value6510    property_alias = property(_get_property_alias, _set_property_alias)6511    """6512    The property alias that identifies the property, such as an OPC-UA server data stream path (for example, /company/windfarm/3/turbine/7/temperature). For more information, see https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html.6513    """6514    def _get_property_values(self):6515        return self.__property_values6516    def _set_property_values(self, value):6517        if not isinstance(value, list):6518            raise TypeError("property_values must be list")6519        if not all(isinstance(i, AssetPropertyValue) for i in value):6520            raise TypeError("property_values list values must be AssetPropertyValue")6521        self.__property_values = value6522    property_values = property(_get_property_values, _set_property_values)6523    """6524    The list of property values to upload. You can specify up to 10 values.6525    """6526    @staticmethod6527    def from_dict(d):6528        v = {}6529        if "entryId" in d:6530            v["entry_id"] = (6531                str.from_dict(d["entryId"])6532                if hasattr(str, "from_dict")6533                else d["entryId"]6534            )6535        if "assetId" in d:6536            v["asset_id"] = (6537                str.from_dict(d["assetId"])6538                if hasattr(str, "from_dict")6539                else d["assetId"]6540            )6541        if "propertyId" in d:6542            v["property_id"] = (6543                str.from_dict(d["propertyId"])6544                if hasattr(str, "from_dict")6545                else d["propertyId"]6546            )6547        if "propertyAlias" in d:6548            v["property_alias"] = (6549                str.from_dict(d["propertyAlias"])6550                if hasattr(str, "from_dict")6551                else d["propertyAlias"]6552            )6553        if "propertyValues" in d:6554            v["property_values"] = [6555                AssetPropertyValue.from_dict(p)6556                if hasattr(AssetPropertyValue, "from_dict")6557                else p6558                for p in d["propertyValues"]6559            ]6560        return PutAssetPropertyValueEntry(**v)6561    def as_dict(self):6562        d = {}6563        if self.__entry_id is not None:6564            d["entryId"] = (6565                self.__entry_id.as_dict()6566                if hasattr(self.__entry_id, "as_dict")6567                else self.__entry_id6568            )6569        if self.__asset_id is not None:6570            d["assetId"] = (6571                self.__asset_id.as_dict()6572                if hasattr(self.__asset_id, "as_dict")6573                else self.__asset_id6574            )6575        if self.__property_id is not None:6576            d["propertyId"] = (6577                self.__property_id.as_dict()6578                if hasattr(self.__property_id, "as_dict")6579                else self.__property_id6580            )6581        if self.__property_alias is not None:6582            d["propertyAlias"] = (6583                self.__property_alias.as_dict()6584                if hasattr(self.__property_alias, "as_dict")6585                else self.__property_alias6586            )6587        if self.__property_values is not None:6588            d["propertyValues"] = [6589                p.as_dict() if hasattr(p, "as_dict") else p6590                for p in self.__property_values6591            ]6592        return d6593    def __repr__(self):6594        return "<Class PutAssetPropertyValueEntry. entry_id: {}, asset_id: {}, property_id: {}, property_alias: {}, property_values: {}>".format(6595            limitedRepr(6596                self.__entry_id[:20]6597                if isinstance(self.__entry_id, bytes)6598                else self.__entry_id6599            ),6600            limitedRepr(6601                self.__asset_id[:20]6602                if isinstance(self.__asset_id, bytes)6603                else self.__asset_id...mysql.py
Source:mysql.py  
...24        return crsr.execute(sql, params) if params is not None else crsr.execute(sql)25    def get_cursor(self) -> cursor.CursorBase:26        return self._conn.cursor()27    @staticmethod28    def _results_as_dict(crsr: cursor.CursorBase, results: List[Tuple]) -> List[dict]:29        return [{k[0]: v for (k, v) in zip(crsr.description, res)} for res in results]30    def fetch_one(self, sql: str, params: Optional[Tuple] = None, crsr: Optional[cursor.CursorBase] = None,31                  as_dict: bool = False):32        """Low level query33        :param sql: raw SQL34        :param params: params for the query35        :param crsr: Optional cursor. If not given, one will be created and closed at the end of the query36        :param as_dict: If True, every record will be returned as a dictionary where the key is the column's name37        :return: None if no record was found, single record otherwise (tuple if as_dict = False, dict if as_dict = True)38        """39        final_crsr = crsr or self._conn.cursor()40        self._execute(final_crsr, sql, params)41        res = final_crsr.fetchone()42        if final_crsr == crsr:43            crsr.close()44        return self._results_as_dict(final_crsr, res) if as_dict else res45    def fetch_limit(self, sql: str, params: Optional[Union[Tuple, Dict]] = None,46                    crsr: Optional[cursor.CursorBase] = None,47                    as_dict: bool = False, limit: Optional[int] = None):48        """Low level query49        :param sql: raw SQL50        :param params: params for the query51        :param crsr: Optional cursor. If not given, one will be created and closed at the end of the query52        :param as_dict: If True, every record will be returned as a dictionary where the key is the column's name53        :param limit: Maximum amount of records to return. If None, no limit is enforced54        :return: List of records (tuples if as_dict = False, dict if as_dict = True)55        """56        sql = f"""57        {sql}58        {"" if limit is None else f"limit {limit}"}59        """60        final_crsr = crsr or self._conn.cursor()61        self._execute(final_crsr, sql, params)62        res = final_crsr.fetchall()63        if final_crsr == crsr:64            crsr.close()65        return self._results_as_dict(final_crsr, res) if as_dict else res66    def fetch_all(self, sql: str, params: Optional[Union[Tuple, Dict]] = None,67                  crsr: Optional[cursor.CursorBase] = None,68                  as_dict: bool = False):69        return self.fetch_limit(sql, params, crsr, as_dict, None)70    def _generate_query(self, table: str, projection: List[str] = None, filters: Dict[str, Any] = None):71        projection = projection or ['*']72        filters = filters or dict()73        where_clauses = []74        where_values = []75        for column, value in filters.items():76            if isinstance(value, (list, tuple)):77                if len(value) > 0:78                    where_clauses.append(f"{column} in ({', '.join(['%s'] * len(value))})")79                    where_values.extend(value)...auth_constraints.py
Source:auth_constraints.py  
...30class AbstractAuthConstraint(metaclass=ABCMeta):31    def __init__(self):32        self.constraint_id = ''33    @property34    def as_dict(self):35        raise NotImplementedError()36    def __str__(self):37        return str(self)38    def __eq__(self, other):39        if self.as_dict != other.as_dict:40            return False41        return True42    def set_metadata(self, metadata: dict):43        raise NotImplementedError()44    @staticmethod45    def from_dict(as_dict):46        raise NotImplementedError()47class AuthConstraintForbidden(AbstractAuthConstraint):48    def __init__(self):49        self.constraint_id = ConstraintsEnum.FORBIDDEN_CONSTRAINT_ID50    @property51    def as_dict(self):52        return {CONSTRAINT_ID: self.constraint_id}53    def __str__(self):54        return "The action is forbidden"55    def set_metadata(self, metadata: dict):56        pass57    @staticmethod58    def from_dict(as_dict):59        return AuthConstraintForbidden()60class AuthConstraint(AbstractAuthConstraint):61    def __init__(self, role, sig_count,62                 need_to_be_owner=False,63                 off_ledger_signature=None,64                 metadata={}):65        self._role_validation(role, off_ledger_signature)66        self.role = role67        self.sig_count = sig_count68        self.need_to_be_owner = need_to_be_owner69        self.off_ledger_signature = off_ledger_signature70        self.metadata = metadata71        self.constraint_id = ConstraintsEnum.ROLE_CONSTRAINT_ID72    @property73    def as_dict(self):74        constraint = {75            CONSTRAINT_ID: self.constraint_id,76            ROLE: self.role,77            SIG_COUNT: self.sig_count,78            NEED_TO_BE_OWNER: self.need_to_be_owner,79            METADATA: self.metadata80        }81        if self.off_ledger_signature is not None:82            constraint[OFF_LEDGER_SIGNATURE] = self.off_ledger_signature83        return constraint84    @staticmethod85    def _role_validation(role, off_ledger_signature):86        if role not in accepted_roles:87            raise ValueError("Role {} is not acceptable".format(role))88        if off_ledger_signature and role != "*":89            raise ValueError("'off_ledger_signature' can be set to True only if any role is accepted (role='*'). "90                             "Got {} role instead.".format(role))91    def __str__(self):92        role = get_named_role(self.role) if self.role != '*' else 'ALL'93        error_msg = ""94        if self.off_ledger_signature and self.sig_count > 1:95            error_msg = "{} signatures of any role (off-ledger included) are required".format(self.sig_count)96        elif self.off_ledger_signature and self.sig_count == 1:97            error_msg = "1 signature of any role (off-ledger included) is required"98        elif role != 'ALL' and self.need_to_be_owner and self.sig_count > 1:99            error_msg = "{} {} signatures are required and needs to be owner".format(self.sig_count, role)100        elif role != 'ALL' and not self.need_to_be_owner and self.sig_count > 1:101            error_msg = "{} {} signatures are required".format(self.sig_count, role)102        elif role != 'ALL' and not self.need_to_be_owner and self.sig_count == 1:103            error_msg = "1 {} signature is required".format(role)104        elif role != 'ALL' and self.need_to_be_owner and self.sig_count == 1:105            error_msg = "1 {} signature is required and needs to be owner".format(role)106        elif role == "ALL" and self.need_to_be_owner and self.sig_count == 1:107            error_msg = "1 signature of any role is required and needs to be owner"108        elif role == 'ALL' and not self.need_to_be_owner and self.sig_count == 1:109            error_msg = "1 signature of any role is required".format(role)110        elif role == 'ALL' and not self.need_to_be_owner and self.sig_count > 1:111            error_msg = "{} signatures of any role are required".format(self.sig_count)112        elif role == "ALL" and self.need_to_be_owner and self.sig_count > 1:113            error_msg = "{} signatures of any role are required and needs to be owner".format(self.sig_count)114        metadata_str = self._metadata_str()115        if metadata_str:116            return "{} {}".format(error_msg, metadata_str)117        return error_msg118    def _metadata_str(self):119        if not self.metadata:120            return ""121        res = " ".join([str(item) for values in self.metadata.items() for item in values])122        return "with additional metadata {}".format(res)123    @staticmethod124    def from_dict(as_dict):125        return AuthConstraint(role=as_dict[ROLE], sig_count=as_dict[SIG_COUNT],126                              need_to_be_owner=as_dict.get(NEED_TO_BE_OWNER, False),127                              off_ledger_signature=as_dict.get(OFF_LEDGER_SIGNATURE, None),128                              metadata=as_dict.get(METADATA, {}))129    def set_metadata(self, metadata: dict):130        self.metadata = metadata131class AuthConstraintAnd(AbstractAuthConstraint):132    def __init__(self, auth_constraints: List[AbstractAuthConstraint]):133        self.auth_constraints = auth_constraints134        self.constraint_id = ConstraintsEnum.AND_CONSTRAINT_ID135    @property136    def as_dict(self):137        return {138            CONSTRAINT_ID: self.constraint_id,139            AUTH_CONSTRAINTS: [c.as_dict for c in self.auth_constraints]140        }141    def __str__(self):142        return " AND ".join([str(ac) for ac in self.auth_constraints])143    @staticmethod144    def from_dict(as_dict):145        auth_constraints = []146        for input_constraint in as_dict[AUTH_CONSTRAINTS]:147            dict_constraint = dict(input_constraint)148            constraint_id = dict_constraint.pop(CONSTRAINT_ID)149            constraint_cls = constraint_to_class_map.get(constraint_id)150            auth_constraints.append(constraint_cls.from_dict(dict_constraint))151        as_dict[AUTH_CONSTRAINTS] = auth_constraints152        return AuthConstraintAnd(**as_dict)153    def set_metadata(self, metadata: dict):154        for constraint in self.auth_constraints:155            constraint.set_metadata(metadata)156class AuthConstraintOr(AbstractAuthConstraint):157    def __init__(self, auth_constraints: List[AbstractAuthConstraint]):158        self.auth_constraints = auth_constraints159        self.constraint_id = ConstraintsEnum.OR_CONSTRAINT_ID160    @property161    def as_dict(self):162        return {163            CONSTRAINT_ID: self.constraint_id,164            AUTH_CONSTRAINTS: [c.as_dict for c in self.auth_constraints]165        }166    def __str__(self):167        return " OR ".join([str(ac) for ac in self.auth_constraints])168    @staticmethod169    def from_dict(as_dict):170        auth_constraints = []171        for input_constraint in as_dict[AUTH_CONSTRAINTS]:172            dict_constraint = dict(input_constraint)173            constraint_id = dict_constraint.pop(CONSTRAINT_ID)174            if constraint_id is None:175                raise KeyError('There is no "constraint_id" field in deserialised dict: {}'.format(as_dict))...batch.py
Source:batch.py  
1import csv2import logging3from django.conf import settings4from apps.banner import models5logger = logging.getLogger('apps.banner')6class Batch:7    test = False8    def import_all(self, test=False):9        if test:10            self.test = True11            self.import_impressions(1)12            self.import_clicks(1)13            self.import_conversions(1)14            return15        for quarter in range(1, 5):16            self.import_impressions(quarter)17            self.import_clicks(quarter)18            self.import_conversions(quarter)19    def import_impressions(self, quarter):20        file = '%s/data/test/impressions.csv' % settings.BASE_DIR if self.test else '%s/data/%d/impressions_%d.csv' % (21            settings.BASE_DIR, quarter, quarter)22        with open(file) as csvfile:23            reader = csv.reader(csvfile)24            headers = next(reader)25            for row in reader:26                as_dict = dict(zip(headers, row))27                banner, _ = models.Banner.objects.get_or_create(28                    banner_id=as_dict['banner_id']29                )30                campaign, _ = models.Campaign.objects.get_or_create(31                    campaign_id=as_dict['campaign_id']32                )33                models.Impression.objects.create(34                    quarter=quarter,35                    banner=banner,36                    campaign=campaign37                )38    def import_clicks(self, quarter):39        file = '%s/data/test/clicks.csv' % settings.BASE_DIR if self.test else '%s/data/%d/clicks_%d.csv' % (40            settings.BASE_DIR, quarter, quarter)41        num_exist = 042        with open(file) as csvfile:43            reader = csv.reader(csvfile)44            headers = next(reader)45            for row in reader:46                as_dict = dict(zip(headers, row))47                banner = models.Banner.objects.get(banner_id=as_dict['banner_id'])48                campaign = models.Campaign.objects.get(campaign_id=as_dict['campaign_id'])49                num_impressions = models.Impression.objects.filter(50                    quarter=quarter,51                    banner=banner,52                    campaign=campaign53                ).count()54                try:55                    click = models.Click.objects.get(click_id=as_dict['click_id'])56                    click.quarter = quarter57                    click.num_impressions = num_impressions58                    click.banner = banner59                    click.campaign = campaign60                    click.save()61                    num_exist += 162                    logger.debug('duplicate click_id: %s' % as_dict['click_id'])63                except models.Click.DoesNotExist:64                    models.Click.objects.create(65                        click_id=as_dict['click_id'],66                        quarter=quarter,67                        num_impressions=num_impressions,68                        banner=banner,69                        campaign=campaign,70                    )71        logger.info('%d duplicate clicks' % num_exist)72    def import_conversions(self, quarter):73        file = '%s/data/test/conversions.csv' % settings.BASE_DIR if self.test else '%s/data/%d/conversions_%d.csv' % (74            settings.BASE_DIR, quarter, quarter)75        num_exist = 076        with open(file) as csvfile:77            reader = csv.reader(csvfile)78            headers = next(reader)79            for row in reader:80                as_dict = dict(zip(headers, row))81                click = models.Click.objects.get(click_id=as_dict['click_id'])82                try:83                    conversion = models.Conversion.objects.get(conversion_id=as_dict['conversion_id'])84                    conversion.click = click85                    conversion.revenue = float(as_dict['revenue'])86                    conversion.save()87                    num_exist += 188                    logger.debug('duplicate conversion_id: %s' % as_dict['conversion_id'])89                except models.Conversion.DoesNotExist:90                    models.Conversion.objects.create(91                        conversion_id=as_dict['conversion_id'],92                        click=click,93                        revenue=float(as_dict['revenue'])94                    )...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
