# Path: barbicanclient/base.py
# LOG = logging.getLogger(__name__)
# def filter_null_keys(dictionary):
# def censored_copy(data_dict, censor_keys):
# def validate_ref_and_return_uuid(ref, entity):
# def calculate_uuid_ref(ref, entity):
#     def __init__(self, attribute=None):
#     def __init__(self, api, entity):
#     def total(self):
# class ImmutableException(Exception):
# class BaseEntityManager(object):
# 
# Path: barbicanclient/formatter.py
# class EntityFormatter(object):
#     def _list_objects(obj_list):
#     def _get_generic_data(self):
#     def _get_generic_columns(self):
#     def _get_formatted_entity(self):
#     def __str__(self):
#     def to_dict(self):


import functools
import logging
from oslo_utils.timeutils import parse_isotime
from barbicanclient import base
from barbicanclient import formatter
            self._updated = updated
            if self._created:
                self._created = parse_isotime(self._created)
            if self._updated:
                self._updated = parse_isotime(self._updated)
        else:
            self._status = None
            self._created = None
            self._updated = None

    def _fill_lazy_properties(self):
        if self._ca_ref and not self._plugin_name:
            uuid_ref = base.calculate_uuid_ref(self._ca_ref, self._entity)
            result = self._api.get(uuid_ref)
            self._fill_from_data(
                meta=result.get('meta'),
                expiration=result.get('expiration'),
                plugin_name=result.get('plugin_name'),
                plugin_ca_id=result.get('plugin_ca_id'),
                created=result.get('created'),
                updated=result.get('updated'),
                status=result.get('status')
            )

    def __repr__(self):
        if self._ca_ref:
            return 'CA(ca_ref="{0}")'.format(self._ca_ref)
        return 'CA(name="{0}")'.format(self._name)



# Path: barbicanclient/base.py
# LOG = logging.getLogger(__name__)
# def filter_null_keys(dictionary):
# def censored_copy(data_dict, censor_keys):
# def validate_ref_and_return_uuid(ref, entity):
# def calculate_uuid_ref(ref, entity):
#     def __init__(self, attribute=None):
#     def __init__(self, api, entity):
#     def total(self):
# class ImmutableException(Exception):
# class BaseEntityManager(object):
# 
# Path: barbicanclient/formatter.py
# class EntityFormatter(object):
#     def _list_objects(obj_list):
#     def _get_generic_data(self):
#     def _get_generic_columns(self):
#     def _get_formatted_entity(self):
#     def __str__(self):
#     def to_dict(self):


# Path: barbicanclient/v1/cas.py
import functools
import logging
from oslo_utils.timeutils import parse_isotime
from barbicanclient import base
from barbicanclient import formatter

            self._updated = updated
            if self._created:
                self._created = parse_isotime(self._created)
            if self._updated:
                self._updated = parse_isotime(self._updated)
        else:
            self._status = None
            self._created = None
            self._updated = None

    def _fill_lazy_properties(self):
        if self._ca_ref and not self._plugin_name:
            uuid_ref = base.calculate_uuid_ref(self._ca_ref, self._entity)
            result = self._api.get(uuid_ref)
            self._fill_from_data(
                meta=result.get('meta'),
                expiration=result.get('expiration'),
                plugin_name=result.get('plugin_name'),
                plugin_ca_id=result.get('plugin_ca_id'),
                created=result.get('created'),
                updated=result.get('updated'),
                status=result.get('status')
            )

    def __repr__(self):
        if self._ca_ref:
            return 'CA(ca_ref="{0}")'.format(self._ca_ref)
        return 'CA(name="{0}")'.format(self._name)



class CAManager(base.BaseEntityManager):