# coding: utf-8

"""
    SnapTrade

    Connect brokerage accounts to your app for live positions and trading  # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Contact: api@snaptrade.com
    Generated by: https://konfigthis.com
"""

from datetime import date, datetime  # noqa: F401
import decimal  # noqa: F401
import functools  # noqa: F401
import io  # noqa: F401
import re  # noqa: F401
import typing  # noqa: F401
import typing_extensions  # noqa: F401
import uuid  # noqa: F401

import frozendict  # noqa: F401

from snaptrade_client import schemas  # noqa: F401


class StrategyOrderPlace(
    schemas.DictSchema
):
    """NOTE: This class is auto generated by Konfig.
    Ref: https://konfigthis.com

    Do not edit the class manually.

    The reponse for a correctly placed order
    """


    class MetaOapg:
        
        class properties:
            orderId = schemas.Int32Schema
            
            
            class orders(
                schemas.ListSchema
            ):
            
            
                class MetaOapg:
                    
                    
                    class items(
                        schemas.DictSchema
                    ):
                    
                    
                        class MetaOapg:
                            
                            class properties:
                                id = schemas.Int32Schema
                                symbol = schemas.StrSchema
                                symbolId = schemas.Int32Schema
                                totalQuantity = schemas.Int32Schema
                                openQuantity = schemas.Int32Schema
                                filledQuantity = schemas.Int32Schema
                                canceledQuantity = schemas.Int32Schema
                                side = schemas.StrSchema
                                orderType = schemas.StrSchema
                                limitPrice = schemas.StrSchema
                                stopPrice = schemas.StrSchema
                                isAllOrNone = schemas.BoolSchema
                                isAnonymous = schemas.BoolSchema
                                icebergQuantity = schemas.StrSchema
                                minQuantity = schemas.StrSchema
                                avgExecPrice = schemas.Int32Schema
                                lastExecPrice = schemas.StrSchema
                                source = schemas.StrSchema
                                timeInForce = schemas.StrSchema
                                gtdDate = schemas.StrSchema
                                state = schemas.StrSchema
                                rejectionReason = schemas.StrSchema
                                chainId = schemas.Int32Schema
                                creationTime = schemas.StrSchema
                                updateTime = schemas.StrSchema
                                notes = schemas.StrSchema
                                primaryRoute = schemas.StrSchema
                                secondaryRoute = schemas.StrSchema
                                orderRoute = schemas.StrSchema
                                venueHoldingOrder = schemas.StrSchema
                                comissionCharged = schemas.Int32Schema
                                exchangeOrderId = schemas.StrSchema
                                isSignificantShareHolder = schemas.BoolSchema
                                isInsider = schemas.BoolSchema
                                isLimitOffsetInDollar = schemas.BoolSchema
                                userId = schemas.Int32Schema
                                placementCommission = schemas.StrSchema
                                
                                
                                class legs(
                                    schemas.ListSchema
                                ):
                                
                                
                                    class MetaOapg:
                                        
                                        
                                        class items(
                                            schemas.DictSchema
                                        ):
                                        
                                        
                                            class MetaOapg:
                                                
                                                class properties:
                                                    legId = schemas.Int32Schema
                                                    symbol = schemas.StrSchema
                                                    symbolId = schemas.Int32Schema
                                                    legRatioQuantity = schemas.Int32Schema
                                                    side = schemas.StrSchema
                                                    avgExecPrice = schemas.Int32Schema
                                                    lastExecPrice = schemas.StrSchema
                                                    __annotations__ = {
                                                        "legId": legId,
                                                        "symbol": symbol,
                                                        "symbolId": symbolId,
                                                        "legRatioQuantity": legRatioQuantity,
                                                        "side": side,
                                                        "avgExecPrice": avgExecPrice,
                                                        "lastExecPrice": lastExecPrice,
                                                    }
                                                additional_properties = schemas.AnyTypeSchema
                                            
                                            @typing.overload
                                            def __getitem__(self, name: typing_extensions.Literal["legId"]) -> MetaOapg.properties.legId: ...
                                            
                                            @typing.overload
                                            def __getitem__(self, name: typing_extensions.Literal["symbol"]) -> MetaOapg.properties.symbol: ...
                                            
                                            @typing.overload
                                            def __getitem__(self, name: typing_extensions.Literal["symbolId"]) -> MetaOapg.properties.symbolId: ...
                                            
                                            @typing.overload
                                            def __getitem__(self, name: typing_extensions.Literal["legRatioQuantity"]) -> MetaOapg.properties.legRatioQuantity: ...
                                            
                                            @typing.overload
                                            def __getitem__(self, name: typing_extensions.Literal["side"]) -> MetaOapg.properties.side: ...
                                            
                                            @typing.overload
                                            def __getitem__(self, name: typing_extensions.Literal["avgExecPrice"]) -> MetaOapg.properties.avgExecPrice: ...
                                            
                                            @typing.overload
                                            def __getitem__(self, name: typing_extensions.Literal["lastExecPrice"]) -> MetaOapg.properties.lastExecPrice: ...
                                            
                                            @typing.overload
                                            def __getitem__(self, name: str) -> MetaOapg.additional_properties: ...
                                            
                                            def __getitem__(self, name: typing.Union[typing_extensions.Literal["legId"], typing_extensions.Literal["symbol"], typing_extensions.Literal["symbolId"], typing_extensions.Literal["legRatioQuantity"], typing_extensions.Literal["side"], typing_extensions.Literal["avgExecPrice"], typing_extensions.Literal["lastExecPrice"], str, ]):
                                                # dict_instance[name] accessor
                                                return super().__getitem__(name)
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: typing_extensions.Literal["legId"]) -> typing.Union[MetaOapg.properties.legId, schemas.Unset]: ...
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: typing_extensions.Literal["symbol"]) -> typing.Union[MetaOapg.properties.symbol, schemas.Unset]: ...
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: typing_extensions.Literal["symbolId"]) -> typing.Union[MetaOapg.properties.symbolId, schemas.Unset]: ...
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: typing_extensions.Literal["legRatioQuantity"]) -> typing.Union[MetaOapg.properties.legRatioQuantity, schemas.Unset]: ...
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: typing_extensions.Literal["side"]) -> typing.Union[MetaOapg.properties.side, schemas.Unset]: ...
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: typing_extensions.Literal["avgExecPrice"]) -> typing.Union[MetaOapg.properties.avgExecPrice, schemas.Unset]: ...
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: typing_extensions.Literal["lastExecPrice"]) -> typing.Union[MetaOapg.properties.lastExecPrice, schemas.Unset]: ...
                                            
                                            @typing.overload
                                            def get_item_oapg(self, name: str) -> typing.Union[MetaOapg.additional_properties, schemas.Unset]: ...
                                            
                                            def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["legId"], typing_extensions.Literal["symbol"], typing_extensions.Literal["symbolId"], typing_extensions.Literal["legRatioQuantity"], typing_extensions.Literal["side"], typing_extensions.Literal["avgExecPrice"], typing_extensions.Literal["lastExecPrice"], str, ]):
                                                return super().get_item_oapg(name)
                                        
                                            def __new__(
                                                cls,
                                                *args: typing.Union[dict, frozendict.frozendict, ],
                                                legId: typing.Union[MetaOapg.properties.legId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                                                symbol: typing.Union[MetaOapg.properties.symbol, str, schemas.Unset] = schemas.unset,
                                                symbolId: typing.Union[MetaOapg.properties.symbolId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                                                legRatioQuantity: typing.Union[MetaOapg.properties.legRatioQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                                                side: typing.Union[MetaOapg.properties.side, str, schemas.Unset] = schemas.unset,
                                                avgExecPrice: typing.Union[MetaOapg.properties.avgExecPrice, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                                                lastExecPrice: typing.Union[MetaOapg.properties.lastExecPrice, str, schemas.Unset] = schemas.unset,
                                                _configuration: typing.Optional[schemas.Configuration] = None,
                                                **kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, bool, None, list, tuple, bytes, io.FileIO, io.BufferedReader, ],
                                            ) -> 'items':
                                                return super().__new__(
                                                    cls,
                                                    *args,
                                                    legId=legId,
                                                    symbol=symbol,
                                                    symbolId=symbolId,
                                                    legRatioQuantity=legRatioQuantity,
                                                    side=side,
                                                    avgExecPrice=avgExecPrice,
                                                    lastExecPrice=lastExecPrice,
                                                    _configuration=_configuration,
                                                    **kwargs,
                                                )
                                
                                    def __new__(
                                        cls,
                                        arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
                                        _configuration: typing.Optional[schemas.Configuration] = None,
                                    ) -> 'legs':
                                        return super().__new__(
                                            cls,
                                            arg,
                                            _configuration=_configuration,
                                        )
                                
                                    def __getitem__(self, i: int) -> MetaOapg.items:
                                        return super().__getitem__(i)
                                strategyType = schemas.StrSchema
                                triggerStopPrice = schemas.StrSchema
                                orderGroupId = schemas.Int32Schema
                                orderClass = schemas.StrSchema
                                isCrossZero = schemas.BoolSchema
                                __annotations__ = {
                                    "id": id,
                                    "symbol": symbol,
                                    "symbolId": symbolId,
                                    "totalQuantity": totalQuantity,
                                    "openQuantity": openQuantity,
                                    "filledQuantity": filledQuantity,
                                    "canceledQuantity": canceledQuantity,
                                    "side": side,
                                    "orderType": orderType,
                                    "limitPrice": limitPrice,
                                    "stopPrice": stopPrice,
                                    "isAllOrNone": isAllOrNone,
                                    "isAnonymous": isAnonymous,
                                    "icebergQuantity": icebergQuantity,
                                    "minQuantity": minQuantity,
                                    "avgExecPrice": avgExecPrice,
                                    "lastExecPrice": lastExecPrice,
                                    "source": source,
                                    "timeInForce": timeInForce,
                                    "gtdDate": gtdDate,
                                    "state": state,
                                    "rejectionReason": rejectionReason,
                                    "chainId": chainId,
                                    "creationTime": creationTime,
                                    "updateTime": updateTime,
                                    "notes": notes,
                                    "primaryRoute": primaryRoute,
                                    "secondaryRoute": secondaryRoute,
                                    "orderRoute": orderRoute,
                                    "venueHoldingOrder": venueHoldingOrder,
                                    "comissionCharged": comissionCharged,
                                    "exchangeOrderId": exchangeOrderId,
                                    "isSignificantShareHolder": isSignificantShareHolder,
                                    "isInsider": isInsider,
                                    "isLimitOffsetInDollar": isLimitOffsetInDollar,
                                    "userId": userId,
                                    "placementCommission": placementCommission,
                                    "legs": legs,
                                    "strategyType": strategyType,
                                    "triggerStopPrice": triggerStopPrice,
                                    "orderGroupId": orderGroupId,
                                    "orderClass": orderClass,
                                    "isCrossZero": isCrossZero,
                                }
                            additional_properties = schemas.AnyTypeSchema
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["symbol"]) -> MetaOapg.properties.symbol: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["symbolId"]) -> MetaOapg.properties.symbolId: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["totalQuantity"]) -> MetaOapg.properties.totalQuantity: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["openQuantity"]) -> MetaOapg.properties.openQuantity: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["filledQuantity"]) -> MetaOapg.properties.filledQuantity: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["canceledQuantity"]) -> MetaOapg.properties.canceledQuantity: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["side"]) -> MetaOapg.properties.side: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["orderType"]) -> MetaOapg.properties.orderType: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["limitPrice"]) -> MetaOapg.properties.limitPrice: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["stopPrice"]) -> MetaOapg.properties.stopPrice: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["isAllOrNone"]) -> MetaOapg.properties.isAllOrNone: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["isAnonymous"]) -> MetaOapg.properties.isAnonymous: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["icebergQuantity"]) -> MetaOapg.properties.icebergQuantity: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["minQuantity"]) -> MetaOapg.properties.minQuantity: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["avgExecPrice"]) -> MetaOapg.properties.avgExecPrice: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["lastExecPrice"]) -> MetaOapg.properties.lastExecPrice: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["source"]) -> MetaOapg.properties.source: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["timeInForce"]) -> MetaOapg.properties.timeInForce: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["gtdDate"]) -> MetaOapg.properties.gtdDate: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["state"]) -> MetaOapg.properties.state: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["rejectionReason"]) -> MetaOapg.properties.rejectionReason: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["chainId"]) -> MetaOapg.properties.chainId: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["creationTime"]) -> MetaOapg.properties.creationTime: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["updateTime"]) -> MetaOapg.properties.updateTime: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["notes"]) -> MetaOapg.properties.notes: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["primaryRoute"]) -> MetaOapg.properties.primaryRoute: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["secondaryRoute"]) -> MetaOapg.properties.secondaryRoute: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["orderRoute"]) -> MetaOapg.properties.orderRoute: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["venueHoldingOrder"]) -> MetaOapg.properties.venueHoldingOrder: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["comissionCharged"]) -> MetaOapg.properties.comissionCharged: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["exchangeOrderId"]) -> MetaOapg.properties.exchangeOrderId: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["isSignificantShareHolder"]) -> MetaOapg.properties.isSignificantShareHolder: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["isInsider"]) -> MetaOapg.properties.isInsider: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["isLimitOffsetInDollar"]) -> MetaOapg.properties.isLimitOffsetInDollar: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["userId"]) -> MetaOapg.properties.userId: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["placementCommission"]) -> MetaOapg.properties.placementCommission: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["legs"]) -> MetaOapg.properties.legs: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["strategyType"]) -> MetaOapg.properties.strategyType: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["triggerStopPrice"]) -> MetaOapg.properties.triggerStopPrice: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["orderGroupId"]) -> MetaOapg.properties.orderGroupId: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["orderClass"]) -> MetaOapg.properties.orderClass: ...
                        
                        @typing.overload
                        def __getitem__(self, name: typing_extensions.Literal["isCrossZero"]) -> MetaOapg.properties.isCrossZero: ...
                        
                        @typing.overload
                        def __getitem__(self, name: str) -> MetaOapg.additional_properties: ...
                        
                        def __getitem__(self, name: typing.Union[typing_extensions.Literal["id"], typing_extensions.Literal["symbol"], typing_extensions.Literal["symbolId"], typing_extensions.Literal["totalQuantity"], typing_extensions.Literal["openQuantity"], typing_extensions.Literal["filledQuantity"], typing_extensions.Literal["canceledQuantity"], typing_extensions.Literal["side"], typing_extensions.Literal["orderType"], typing_extensions.Literal["limitPrice"], typing_extensions.Literal["stopPrice"], typing_extensions.Literal["isAllOrNone"], typing_extensions.Literal["isAnonymous"], typing_extensions.Literal["icebergQuantity"], typing_extensions.Literal["minQuantity"], typing_extensions.Literal["avgExecPrice"], typing_extensions.Literal["lastExecPrice"], typing_extensions.Literal["source"], typing_extensions.Literal["timeInForce"], typing_extensions.Literal["gtdDate"], typing_extensions.Literal["state"], typing_extensions.Literal["rejectionReason"], typing_extensions.Literal["chainId"], typing_extensions.Literal["creationTime"], typing_extensions.Literal["updateTime"], typing_extensions.Literal["notes"], typing_extensions.Literal["primaryRoute"], typing_extensions.Literal["secondaryRoute"], typing_extensions.Literal["orderRoute"], typing_extensions.Literal["venueHoldingOrder"], typing_extensions.Literal["comissionCharged"], typing_extensions.Literal["exchangeOrderId"], typing_extensions.Literal["isSignificantShareHolder"], typing_extensions.Literal["isInsider"], typing_extensions.Literal["isLimitOffsetInDollar"], typing_extensions.Literal["userId"], typing_extensions.Literal["placementCommission"], typing_extensions.Literal["legs"], typing_extensions.Literal["strategyType"], typing_extensions.Literal["triggerStopPrice"], typing_extensions.Literal["orderGroupId"], typing_extensions.Literal["orderClass"], typing_extensions.Literal["isCrossZero"], str, ]):
                            # dict_instance[name] accessor
                            return super().__getitem__(name)
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["symbol"]) -> typing.Union[MetaOapg.properties.symbol, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["symbolId"]) -> typing.Union[MetaOapg.properties.symbolId, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["totalQuantity"]) -> typing.Union[MetaOapg.properties.totalQuantity, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["openQuantity"]) -> typing.Union[MetaOapg.properties.openQuantity, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["filledQuantity"]) -> typing.Union[MetaOapg.properties.filledQuantity, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["canceledQuantity"]) -> typing.Union[MetaOapg.properties.canceledQuantity, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["side"]) -> typing.Union[MetaOapg.properties.side, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["orderType"]) -> typing.Union[MetaOapg.properties.orderType, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["limitPrice"]) -> typing.Union[MetaOapg.properties.limitPrice, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["stopPrice"]) -> typing.Union[MetaOapg.properties.stopPrice, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["isAllOrNone"]) -> typing.Union[MetaOapg.properties.isAllOrNone, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["isAnonymous"]) -> typing.Union[MetaOapg.properties.isAnonymous, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["icebergQuantity"]) -> typing.Union[MetaOapg.properties.icebergQuantity, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["minQuantity"]) -> typing.Union[MetaOapg.properties.minQuantity, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["avgExecPrice"]) -> typing.Union[MetaOapg.properties.avgExecPrice, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["lastExecPrice"]) -> typing.Union[MetaOapg.properties.lastExecPrice, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["source"]) -> typing.Union[MetaOapg.properties.source, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["timeInForce"]) -> typing.Union[MetaOapg.properties.timeInForce, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["gtdDate"]) -> typing.Union[MetaOapg.properties.gtdDate, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["state"]) -> typing.Union[MetaOapg.properties.state, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["rejectionReason"]) -> typing.Union[MetaOapg.properties.rejectionReason, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["chainId"]) -> typing.Union[MetaOapg.properties.chainId, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["creationTime"]) -> typing.Union[MetaOapg.properties.creationTime, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["updateTime"]) -> typing.Union[MetaOapg.properties.updateTime, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["notes"]) -> typing.Union[MetaOapg.properties.notes, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["primaryRoute"]) -> typing.Union[MetaOapg.properties.primaryRoute, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["secondaryRoute"]) -> typing.Union[MetaOapg.properties.secondaryRoute, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["orderRoute"]) -> typing.Union[MetaOapg.properties.orderRoute, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["venueHoldingOrder"]) -> typing.Union[MetaOapg.properties.venueHoldingOrder, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["comissionCharged"]) -> typing.Union[MetaOapg.properties.comissionCharged, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["exchangeOrderId"]) -> typing.Union[MetaOapg.properties.exchangeOrderId, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["isSignificantShareHolder"]) -> typing.Union[MetaOapg.properties.isSignificantShareHolder, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["isInsider"]) -> typing.Union[MetaOapg.properties.isInsider, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["isLimitOffsetInDollar"]) -> typing.Union[MetaOapg.properties.isLimitOffsetInDollar, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["userId"]) -> typing.Union[MetaOapg.properties.userId, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["placementCommission"]) -> typing.Union[MetaOapg.properties.placementCommission, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["legs"]) -> typing.Union[MetaOapg.properties.legs, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["strategyType"]) -> typing.Union[MetaOapg.properties.strategyType, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["triggerStopPrice"]) -> typing.Union[MetaOapg.properties.triggerStopPrice, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["orderGroupId"]) -> typing.Union[MetaOapg.properties.orderGroupId, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["orderClass"]) -> typing.Union[MetaOapg.properties.orderClass, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: typing_extensions.Literal["isCrossZero"]) -> typing.Union[MetaOapg.properties.isCrossZero, schemas.Unset]: ...
                        
                        @typing.overload
                        def get_item_oapg(self, name: str) -> typing.Union[MetaOapg.additional_properties, schemas.Unset]: ...
                        
                        def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id"], typing_extensions.Literal["symbol"], typing_extensions.Literal["symbolId"], typing_extensions.Literal["totalQuantity"], typing_extensions.Literal["openQuantity"], typing_extensions.Literal["filledQuantity"], typing_extensions.Literal["canceledQuantity"], typing_extensions.Literal["side"], typing_extensions.Literal["orderType"], typing_extensions.Literal["limitPrice"], typing_extensions.Literal["stopPrice"], typing_extensions.Literal["isAllOrNone"], typing_extensions.Literal["isAnonymous"], typing_extensions.Literal["icebergQuantity"], typing_extensions.Literal["minQuantity"], typing_extensions.Literal["avgExecPrice"], typing_extensions.Literal["lastExecPrice"], typing_extensions.Literal["source"], typing_extensions.Literal["timeInForce"], typing_extensions.Literal["gtdDate"], typing_extensions.Literal["state"], typing_extensions.Literal["rejectionReason"], typing_extensions.Literal["chainId"], typing_extensions.Literal["creationTime"], typing_extensions.Literal["updateTime"], typing_extensions.Literal["notes"], typing_extensions.Literal["primaryRoute"], typing_extensions.Literal["secondaryRoute"], typing_extensions.Literal["orderRoute"], typing_extensions.Literal["venueHoldingOrder"], typing_extensions.Literal["comissionCharged"], typing_extensions.Literal["exchangeOrderId"], typing_extensions.Literal["isSignificantShareHolder"], typing_extensions.Literal["isInsider"], typing_extensions.Literal["isLimitOffsetInDollar"], typing_extensions.Literal["userId"], typing_extensions.Literal["placementCommission"], typing_extensions.Literal["legs"], typing_extensions.Literal["strategyType"], typing_extensions.Literal["triggerStopPrice"], typing_extensions.Literal["orderGroupId"], typing_extensions.Literal["orderClass"], typing_extensions.Literal["isCrossZero"], str, ]):
                            return super().get_item_oapg(name)
                    
                        def __new__(
                            cls,
                            *args: typing.Union[dict, frozendict.frozendict, ],
                            id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            symbol: typing.Union[MetaOapg.properties.symbol, str, schemas.Unset] = schemas.unset,
                            symbolId: typing.Union[MetaOapg.properties.symbolId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            totalQuantity: typing.Union[MetaOapg.properties.totalQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            openQuantity: typing.Union[MetaOapg.properties.openQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            filledQuantity: typing.Union[MetaOapg.properties.filledQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            canceledQuantity: typing.Union[MetaOapg.properties.canceledQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            side: typing.Union[MetaOapg.properties.side, str, schemas.Unset] = schemas.unset,
                            orderType: typing.Union[MetaOapg.properties.orderType, str, schemas.Unset] = schemas.unset,
                            limitPrice: typing.Union[MetaOapg.properties.limitPrice, str, schemas.Unset] = schemas.unset,
                            stopPrice: typing.Union[MetaOapg.properties.stopPrice, str, schemas.Unset] = schemas.unset,
                            isAllOrNone: typing.Union[MetaOapg.properties.isAllOrNone, bool, schemas.Unset] = schemas.unset,
                            isAnonymous: typing.Union[MetaOapg.properties.isAnonymous, bool, schemas.Unset] = schemas.unset,
                            icebergQuantity: typing.Union[MetaOapg.properties.icebergQuantity, str, schemas.Unset] = schemas.unset,
                            minQuantity: typing.Union[MetaOapg.properties.minQuantity, str, schemas.Unset] = schemas.unset,
                            avgExecPrice: typing.Union[MetaOapg.properties.avgExecPrice, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            lastExecPrice: typing.Union[MetaOapg.properties.lastExecPrice, str, schemas.Unset] = schemas.unset,
                            source: typing.Union[MetaOapg.properties.source, str, schemas.Unset] = schemas.unset,
                            timeInForce: typing.Union[MetaOapg.properties.timeInForce, str, schemas.Unset] = schemas.unset,
                            gtdDate: typing.Union[MetaOapg.properties.gtdDate, str, schemas.Unset] = schemas.unset,
                            state: typing.Union[MetaOapg.properties.state, str, schemas.Unset] = schemas.unset,
                            rejectionReason: typing.Union[MetaOapg.properties.rejectionReason, str, schemas.Unset] = schemas.unset,
                            chainId: typing.Union[MetaOapg.properties.chainId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            creationTime: typing.Union[MetaOapg.properties.creationTime, str, schemas.Unset] = schemas.unset,
                            updateTime: typing.Union[MetaOapg.properties.updateTime, str, schemas.Unset] = schemas.unset,
                            notes: typing.Union[MetaOapg.properties.notes, str, schemas.Unset] = schemas.unset,
                            primaryRoute: typing.Union[MetaOapg.properties.primaryRoute, str, schemas.Unset] = schemas.unset,
                            secondaryRoute: typing.Union[MetaOapg.properties.secondaryRoute, str, schemas.Unset] = schemas.unset,
                            orderRoute: typing.Union[MetaOapg.properties.orderRoute, str, schemas.Unset] = schemas.unset,
                            venueHoldingOrder: typing.Union[MetaOapg.properties.venueHoldingOrder, str, schemas.Unset] = schemas.unset,
                            comissionCharged: typing.Union[MetaOapg.properties.comissionCharged, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            exchangeOrderId: typing.Union[MetaOapg.properties.exchangeOrderId, str, schemas.Unset] = schemas.unset,
                            isSignificantShareHolder: typing.Union[MetaOapg.properties.isSignificantShareHolder, bool, schemas.Unset] = schemas.unset,
                            isInsider: typing.Union[MetaOapg.properties.isInsider, bool, schemas.Unset] = schemas.unset,
                            isLimitOffsetInDollar: typing.Union[MetaOapg.properties.isLimitOffsetInDollar, bool, schemas.Unset] = schemas.unset,
                            userId: typing.Union[MetaOapg.properties.userId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            placementCommission: typing.Union[MetaOapg.properties.placementCommission, str, schemas.Unset] = schemas.unset,
                            legs: typing.Union[MetaOapg.properties.legs, list, tuple, schemas.Unset] = schemas.unset,
                            strategyType: typing.Union[MetaOapg.properties.strategyType, str, schemas.Unset] = schemas.unset,
                            triggerStopPrice: typing.Union[MetaOapg.properties.triggerStopPrice, str, schemas.Unset] = schemas.unset,
                            orderGroupId: typing.Union[MetaOapg.properties.orderGroupId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
                            orderClass: typing.Union[MetaOapg.properties.orderClass, str, schemas.Unset] = schemas.unset,
                            isCrossZero: typing.Union[MetaOapg.properties.isCrossZero, bool, schemas.Unset] = schemas.unset,
                            _configuration: typing.Optional[schemas.Configuration] = None,
                            **kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, bool, None, list, tuple, bytes, io.FileIO, io.BufferedReader, ],
                        ) -> 'items':
                            return super().__new__(
                                cls,
                                *args,
                                id=id,
                                symbol=symbol,
                                symbolId=symbolId,
                                totalQuantity=totalQuantity,
                                openQuantity=openQuantity,
                                filledQuantity=filledQuantity,
                                canceledQuantity=canceledQuantity,
                                side=side,
                                orderType=orderType,
                                limitPrice=limitPrice,
                                stopPrice=stopPrice,
                                isAllOrNone=isAllOrNone,
                                isAnonymous=isAnonymous,
                                icebergQuantity=icebergQuantity,
                                minQuantity=minQuantity,
                                avgExecPrice=avgExecPrice,
                                lastExecPrice=lastExecPrice,
                                source=source,
                                timeInForce=timeInForce,
                                gtdDate=gtdDate,
                                state=state,
                                rejectionReason=rejectionReason,
                                chainId=chainId,
                                creationTime=creationTime,
                                updateTime=updateTime,
                                notes=notes,
                                primaryRoute=primaryRoute,
                                secondaryRoute=secondaryRoute,
                                orderRoute=orderRoute,
                                venueHoldingOrder=venueHoldingOrder,
                                comissionCharged=comissionCharged,
                                exchangeOrderId=exchangeOrderId,
                                isSignificantShareHolder=isSignificantShareHolder,
                                isInsider=isInsider,
                                isLimitOffsetInDollar=isLimitOffsetInDollar,
                                userId=userId,
                                placementCommission=placementCommission,
                                legs=legs,
                                strategyType=strategyType,
                                triggerStopPrice=triggerStopPrice,
                                orderGroupId=orderGroupId,
                                orderClass=orderClass,
                                isCrossZero=isCrossZero,
                                _configuration=_configuration,
                                **kwargs,
                            )
            
                def __new__(
                    cls,
                    arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
                    _configuration: typing.Optional[schemas.Configuration] = None,
                ) -> 'orders':
                    return super().__new__(
                        cls,
                        arg,
                        _configuration=_configuration,
                    )
            
                def __getitem__(self, i: int) -> MetaOapg.items:
                    return super().__getitem__(i)
            __annotations__ = {
                "orderId": orderId,
                "orders": orders,
            }
        additional_properties = schemas.AnyTypeSchema
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["orderId"]) -> MetaOapg.properties.orderId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["orders"]) -> MetaOapg.properties.orders: ...
    
    @typing.overload
    def __getitem__(self, name: str) -> MetaOapg.additional_properties: ...
    
    def __getitem__(self, name: typing.Union[typing_extensions.Literal["orderId"], typing_extensions.Literal["orders"], str, ]):
        # dict_instance[name] accessor
        return super().__getitem__(name)
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["orderId"]) -> typing.Union[MetaOapg.properties.orderId, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["orders"]) -> typing.Union[MetaOapg.properties.orders, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: str) -> typing.Union[MetaOapg.additional_properties, schemas.Unset]: ...
    
    def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["orderId"], typing_extensions.Literal["orders"], str, ]):
        return super().get_item_oapg(name)

    def __new__(
        cls,
        *args: typing.Union[dict, frozendict.frozendict, ],
        orderId: typing.Union[MetaOapg.properties.orderId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        orders: typing.Union[MetaOapg.properties.orders, list, tuple, schemas.Unset] = schemas.unset,
        _configuration: typing.Optional[schemas.Configuration] = None,
        **kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, bool, None, list, tuple, bytes, io.FileIO, io.BufferedReader, ],
    ) -> 'StrategyOrderPlace':
        return super().__new__(
            cls,
            *args,
            orderId=orderId,
            orders=orders,
            _configuration=_configuration,
            **kwargs,
        )
