def validate()

in rostran/core/resources.py [0:0]


    def validate(self):
        if not isinstance(self.resource_id, str):
            raise InvalidTemplateResource(
                name=self.resource_id,
                reason=f"The type should be str",
            )
        if not self.resource_id:
            raise InvalidTemplateResource(
                name=self.resource_id,
                reason=f"ResourceId should not be empty",
            )
        if not isinstance(self.type, str):
            raise InvalidTemplateResource(
                name=self.resource_id,
                reason=f"The type should be str",
            )
        if not self.type:
            raise InvalidTemplateResource(
                name=self.type,
                reason=f"ResourceType should not be empty",
            )
        if self.depends_on is not None and not isinstance(self.depends_on, (str, list)):
            raise InvalidTemplateResource(
                name=self.resource_id,
                reason=f"The type of {self.DEPENDS_ON} should be str or list",
            )
        if self.condition is not None and not isinstance(self.condition, str):
            raise InvalidTemplateResource(
                name=self.resource_id,
                reason=f"The type of {self.CONDITION} should be str",
            )
        if (
            self.deletion_policy is not None
            and self.deletion_policy not in self.DELETION_POLICIES
        ):
            raise InvalidTemplateResource(
                name=self.resource_id,
                reason=f"DeletionPolicy {self.deletion_policy} is not supported. "
                f"Allowed types: {self.DELETION_POLICIES}",
            )
        if self.metadata is not None and not isinstance(self.metadata, dict):
            raise InvalidTemplateResource(
                name=self.resource_id,
                reason=f"The type of {self.METADATA} should be dict",
            )