Added resolved type reference. used example from #96
result:
@dataclass
class ResourceModel(BaseModel):
InstanceId: Optional[str]
Cloud9InstancePolicy: Optional["_Cloud9InstancePolicy"]
@classmethod
def _deserialize(
cls: Type["_ResourceModel"],
json_data: Optional[Mapping[str, Any]],
) -> Optional["_ResourceModel"]:
if not json_data:
return None
dataclasses = {n: o for n, o in getmembers(sys.modules[__name__]) if isclass(o)}
recast_object(cls, json_data, dataclasses)
return cls(
InstanceId=json_data.get("InstanceId"),
Cloud9InstancePolicy=Cloud9InstancePolicy._deserialize(json_data.get("Cloud9InstancePolicy")),
)
# work around possible type aliasing issues when variable has same name as a model
_ResourceModel = ResourceModel
@dataclass
class Cloud9InstancePolicy(BaseModel):
PolicyName: Optional[str]
Document: Optional["_PolicyDocument"]
@classmethod
def _deserialize(
cls: Type["_Cloud9InstancePolicy"],
json_data: Optional[Mapping[str, Any]],
) -> Optional["_Cloud9InstancePolicy"]:
if not json_data:
return None
return cls(
PolicyName=json_data.get("PolicyName"),
Document=PolicyDocument._deserialize(json_data.get("PolicyDocument")),
)
# work around possible type aliasing issues when variable has same name as a model
_Cloud9InstancePolicy = Cloud9InstancePolicy
@dataclass
class PolicyDocument(BaseModel):
Version: Optional[str]
Statement: Optional[Sequence["_PolicyStatement"]]
@classmethod
def _deserialize(
cls: Type["_PolicyDocument"],
json_data: Optional[Mapping[str, Any]],
) -> Optional["_PolicyDocument"]:
if not json_data:
return None
return cls(
Version=json_data.get("Version"),
Statement=deserialize_list(json_data.get("PolicyStatement"), PolicyStatement),
)
# work around possible type aliasing issues when variable has same name as a model
_PolicyDocument = PolicyDocument
@dataclass
class PolicyStatement(BaseModel):
Effect: Optional[str]
Action: Optional[Sequence[str]]
Resource: Optional[Sequence[str]]
@classmethod
def _deserialize(
cls: Type["_PolicyStatement"],
json_data: Optional[Mapping[str, Any]],
) -> Optional["_PolicyStatement"]:
if not json_data:
return None
return cls(
Effect=json_data.get("Effect"),
Action=json_data.get("Action"),
Resource=json_data.get("Resource"),
)
# work around possible type aliasing issues when variable has same name as a model
_PolicyStatement = PolicyStatement
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Issue #, if available:
Description of changes:
Added resolved type reference. used example from #96 result:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.