# 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/common/utils.py
# def common_filters(marker=None, limit=None, sort_key=None, sort_dir=None):
# def split_and_deserialize(string):
# def args_array_to_patch(op, attributes):
# def handle_labels(labels):
# def format_labels(lbls, parse_comma=True):
# def print_list_field(field):
# def handle_json_from_file(json_arg):
# def config_cluster(cluster, cluster_template, cfg_dir, force=False,
#                    certs=None, use_keystone=False):
# def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir,
#                                force=False, certs=None, use_keystone=False):
# def _config_cluster_swarm(cluster, cluster_template, cfg_dir,
#                           force=False, certs=None):
# def generate_csr_and_key():
# 
# 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.common import utils
from magnumclient import exceptions
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.



# Derived classes may append their own custom attributes to this default list
CREATION_ATTRIBUTES = ['name', 'node_count', 'discovery_url', 'master_count']


class BaseTemplate(base.Resource):
    # template_name must be overridden by any derived class.
    # template_name should be an uppercase plural, e.g. "Clusters"
    template_name = ''

    def __repr__(self):
        return "<" + self.__class__.template_name + " %s>" % self._info


class BaseTemplateManager(base.Manager):
    # template_name must be overridden by any derived class.
    # template_name should be a lowercase plural, e.g. "clusters"
    template_name = ''


# 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/common/utils.py
# def common_filters(marker=None, limit=None, sort_key=None, sort_dir=None):
# def split_and_deserialize(string):
# def args_array_to_patch(op, attributes):
# def handle_labels(labels):
# def format_labels(lbls, parse_comma=True):
# def print_list_field(field):
# def handle_json_from_file(json_arg):
# def config_cluster(cluster, cluster_template, cfg_dir, force=False,
#                    certs=None, use_keystone=False):
# def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir,
#                                force=False, certs=None, use_keystone=False):
# def _config_cluster_swarm(cluster, cluster_template, cfg_dir,
#                           force=False, certs=None):
# def generate_csr_and_key():
# 
# 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/baseunit.py
from magnumclient.common import base
from magnumclient.common import utils
from magnumclient import exceptions

#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.



# Derived classes may append their own custom attributes to this default list
CREATION_ATTRIBUTES = ['name', 'node_count', 'discovery_url', 'master_count']


class BaseTemplate(base.Resource):
    # template_name must be overridden by any derived class.
    # template_name should be an uppercase plural, e.g. "Clusters"
    template_name = ''

    def __repr__(self):
        return "<" + self.__class__.template_name + " %s>" % self._info


class BaseTemplateManager(base.Manager):
    # template_name must be overridden by any derived class.
    # template_name should be a lowercase plural, e.g. "clusters"
    template_name = ''


    @classmethod