# Path: magnumclient/common/base.py
# def getid(obj):
#     def __init__(self, api):
#     def _create(self, url, body):
#     def _format_body_data(self, body, response_key):
#     def _list_pagination(self, url, response_key=None, obj_class=None,
#                          limit=None):
#     def _list(self, url, response_key=None, obj_class=None, body=None):
#     def _update(self, url, body=None, method='PATCH', response_key=None):
#     def _delete(self, url):
#     def to_dict(self):
# class Manager(object):
# class Resource(base.Resource):
# 
# Path: magnumclient/exceptions.py
# class AmbiguousAuthSystem(exceptions.ClientException):
# class InvalidAttribute(exceptions.ClientException):
# def from_response(response, message=None, traceback=None, method=None,
#                   url=None):


from magnumclient.common import base
from magnumclient import exceptions

CREATION_ATTRIBUTES = ['cluster_uuid', 'csr']


class Certificate(base.Resource):
    def __repr__(self):
        return "<Certificate %s>" % self._info


class CertificateManager(base.Manager):
    resource_class = Certificate

    @staticmethod
    def _path(id=None):
        return '/v1/certificates/%s' % id if id else '/v1/certificates'

    def get(self, cluster_uuid):
        try:
            return self._list(self._path(cluster_uuid))[0]
        except IndexError:
            return None

    def create(self, **kwargs):
        new = {}
        for (key, value) in kwargs.items():
            if key in CREATION_ATTRIBUTES:
                new[key] = value
            elif key == 'bay_uuid':
                new['cluster_uuid'] = value
            else:

# Path: magnumclient/common/base.py
# def getid(obj):
#     def __init__(self, api):
#     def _create(self, url, body):
#     def _format_body_data(self, body, response_key):
#     def _list_pagination(self, url, response_key=None, obj_class=None,
#                          limit=None):
#     def _list(self, url, response_key=None, obj_class=None, body=None):
#     def _update(self, url, body=None, method='PATCH', response_key=None):
#     def _delete(self, url):
#     def to_dict(self):
# class Manager(object):
# class Resource(base.Resource):
# 
# Path: magnumclient/exceptions.py
# class AmbiguousAuthSystem(exceptions.ClientException):
# class InvalidAttribute(exceptions.ClientException):
# def from_response(response, message=None, traceback=None, method=None,
#                   url=None):


# Path: magnumclient/v1/certificates.py
from magnumclient.common import base
from magnumclient import exceptions


CREATION_ATTRIBUTES = ['cluster_uuid', 'csr']


class Certificate(base.Resource):
    def __repr__(self):
        return "<Certificate %s>" % self._info


class CertificateManager(base.Manager):
    resource_class = Certificate

    @staticmethod
    def _path(id=None):
        return '/v1/certificates/%s' % id if id else '/v1/certificates'

    def get(self, cluster_uuid):
        try:
            return self._list(self._path(cluster_uuid))[0]
        except IndexError:
            return None

    def create(self, **kwargs):
        new = {}
        for (key, value) in kwargs.items():
            if key in CREATION_ATTRIBUTES:
                new[key] = value
            elif key == 'bay_uuid':
                new['cluster_uuid'] = value
            else:

                raise exceptions.InvalidAttribute(