Get the SubResource state

        If the parents state has a higher priority, then it overrides the
        SubResource state

        ..note:: This assumes that self.parent is populated

def state(self):
        """
        Get the SubResource state

        If the parents state has a higher priority, then it overrides the
        SubResource state

        ..note:: This assumes that self.parent is populated
        """
        state = self._resource.get('state', self.default_state)
        if state not in State:
            state = getattr(State, state)

        if not self.parent:
            raise Exception('Unable to check the parent state')

        parent_state = self.parent.state

        return max([state, parent_state], key=attrgetter('value'))