# Path: ironicclient/common/base.py
# def getid(obj):
#     def __init__(self, api):
#     def _path(self, resource_id=None):
#     def resource_class(self):
#     def _resource_name(self):
#     def _get(self, resource_id, fields=None, os_ironic_api_version=None,
#              global_request_id=None):
#     def _get_as_dict(self, resource_id, fields=None,
#                      os_ironic_api_version=None, global_request_id=None):
#     def _format_body_data(self, body, response_key):
#     def _list_pagination(self, url, response_key=None, obj_class=None,
#                          limit=None, os_ironic_api_version=None,
#                          global_request_id=None):
#     def __list(self, url, response_key=None, body=None,
#                os_ironic_api_version=None, global_request_id=None):
#     def _list(self, url, response_key=None, obj_class=None, body=None,
#               os_ironic_api_version=None, global_request_id=None):
#     def _list_primitives(self, url, response_key=None,
#                          os_ironic_api_version=None, global_request_id=None):
#     def _update(self, resource_id, patch, method='PATCH',
#                 os_ironic_api_version=None, global_request_id=None,
#                 params=None):
#     def _delete(self, resource_id,
#                 os_ironic_api_version=None, global_request_id=None):
#     def _creation_attributes(self):
#     def create(self, os_ironic_api_version=None, global_request_id=None,
#                **kwargs):
#     def to_dict(self):
# class Manager(object, metaclass=abc.ABCMeta):
# class CreateManager(Manager, metaclass=abc.ABCMeta):
# class Resource(base.Resource):
# 
# Path: ironicclient/common/i18n.py
# def _(msg):
#     return msg
# 
# Path: ironicclient/exc.py
# class AmbiguousAuthSystem(exceptions.ClientException):
# class InvalidAttribute(exceptions.ClientException):
# class StateTransitionFailed(exceptions.ClientException):
# class StateTransitionTimeout(exceptions.ClientException):
# def from_response(response, message=None, traceback=None, method=None,
#                   url=None):


from ironicclient.common import base
from ironicclient.common.i18n import _
from ironicclient import exc
    def __repr__(self):
        return "<Driver %s>" % self._info


class DriverManager(base.Manager):
    resource_class = Driver
    _resource_name = 'drivers'

    def list(self, driver_type=None, detail=None, os_ironic_api_version=None,
             global_request_id=None, fields=None):
        """Retrieve a list of drivers.

        :param driver_type: Optional, string to filter the drivers by type.
                            Value should be 'classic' or 'dynamic'.
        :param detail: Optional, flag whether to return detailed information
                       about drivers. Default is None means not to send the arg
                       to the server due to older versions of the server cannot
                       handle filtering on detail.
        :param os_ironic_api_version: String version (e.g. "1.35") to use for
            the request.  If not specified, the client's default is used.
        :param global_request_id: String containing global request ID header
            value (in form "req-<UUID>") to use for the request.
        :param fields: Optional, a list with a specified set of fields
                       of the resource to be returned. Can not be used
                       when 'detail' is set.
        :returns: A list of drivers.
        """

        filters = []
        if detail and fields:

# Path: ironicclient/common/base.py
# def getid(obj):
#     def __init__(self, api):
#     def _path(self, resource_id=None):
#     def resource_class(self):
#     def _resource_name(self):
#     def _get(self, resource_id, fields=None, os_ironic_api_version=None,
#              global_request_id=None):
#     def _get_as_dict(self, resource_id, fields=None,
#                      os_ironic_api_version=None, global_request_id=None):
#     def _format_body_data(self, body, response_key):
#     def _list_pagination(self, url, response_key=None, obj_class=None,
#                          limit=None, os_ironic_api_version=None,
#                          global_request_id=None):
#     def __list(self, url, response_key=None, body=None,
#                os_ironic_api_version=None, global_request_id=None):
#     def _list(self, url, response_key=None, obj_class=None, body=None,
#               os_ironic_api_version=None, global_request_id=None):
#     def _list_primitives(self, url, response_key=None,
#                          os_ironic_api_version=None, global_request_id=None):
#     def _update(self, resource_id, patch, method='PATCH',
#                 os_ironic_api_version=None, global_request_id=None,
#                 params=None):
#     def _delete(self, resource_id,
#                 os_ironic_api_version=None, global_request_id=None):
#     def _creation_attributes(self):
#     def create(self, os_ironic_api_version=None, global_request_id=None,
#                **kwargs):
#     def to_dict(self):
# class Manager(object, metaclass=abc.ABCMeta):
# class CreateManager(Manager, metaclass=abc.ABCMeta):
# class Resource(base.Resource):
# 
# Path: ironicclient/common/i18n.py
# def _(msg):
#     return msg
# 
# Path: ironicclient/exc.py
# class AmbiguousAuthSystem(exceptions.ClientException):
# class InvalidAttribute(exceptions.ClientException):
# class StateTransitionFailed(exceptions.ClientException):
# class StateTransitionTimeout(exceptions.ClientException):
# def from_response(response, message=None, traceback=None, method=None,
#                   url=None):


# Path: ironicclient/v1/driver.py
from ironicclient.common import base
from ironicclient.common.i18n import _
from ironicclient import exc

    def __repr__(self):
        return "<Driver %s>" % self._info


class DriverManager(base.Manager):
    resource_class = Driver
    _resource_name = 'drivers'

    def list(self, driver_type=None, detail=None, os_ironic_api_version=None,
             global_request_id=None, fields=None):
        """Retrieve a list of drivers.

        :param driver_type: Optional, string to filter the drivers by type.
                            Value should be 'classic' or 'dynamic'.
        :param detail: Optional, flag whether to return detailed information
                       about drivers. Default is None means not to send the arg
                       to the server due to older versions of the server cannot
                       handle filtering on detail.
        :param os_ironic_api_version: String version (e.g. "1.35") to use for
            the request.  If not specified, the client's default is used.
        :param global_request_id: String containing global request ID header
            value (in form "req-<UUID>") to use for the request.
        :param fields: Optional, a list with a specified set of fields
                       of the resource to be returned. Can not be used
                       when 'detail' is set.
        :returns: A list of drivers.
        """

        filters = []
        if detail and fields:

            raise exc.InvalidAttribute(_("Can't fetch a subset of fields "