#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    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.


class GetRes(object):
    def __init__(self, target_name):
        self.target_name = target_name

    def __repr__(self):
        return 'GetRes(%r)' % self.target_name


class GetAtt(GetRes):
    def __init__(self, target_name, attr):
        super(GetAtt, self).__init__(target_name)
        self.attr = attr

    def __repr__(self):
        return 'GetAtt(%r, %r)' % (self.target_name, self.attr)


class RsrcDef(object):
    def __init__(self, properties, depends_on):
        self.properties = properties
        self.depends_on = depends_on

    def __repr__(self):
        return 'RsrcDef(%r, %r)' % (self.properties, self.depends_on)


class Template(object):

    def __init__(self, resources=None, key=None):
        self.key = key
        self.resources = resources or {}

    def __repr__(self):
        return 'Template(%r)' % self.resources
