Gets the repository hierarchy design session.

        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.RepositoryHierarchyDesignSession) - a
                RepostoryHierarchyDesignSession
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_repository_hierarchy_design()
                is false
        compliance: optional - This method must be implemented if
                    supports_repository_hierarchy_design() is true.

def get_repository_hierarchy_design_session(self, proxy):
        """Gets the repository hierarchy design session.

        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.RepositoryHierarchyDesignSession) - a
                RepostoryHierarchyDesignSession
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_repository_hierarchy_design()
                is false
        compliance: optional - This method must be implemented if
                    supports_repository_hierarchy_design() is true.

        """
        if not self.supports_repository_hierarchy_design():
            raise Unimplemented()
        try:
            from . import sessions
        except ImportError:
            raise  # OperationFailed()
        proxy = self._convert_proxy(proxy)
        try:
            session = sessions.RepositoryHierarchyDesignSession(proxy, runtime=self._runtime)
        except AttributeError:
            raise  # OperationFailed()
        return session