# GENERATED FILE - DO NOT EDIT THIS FILE UNLESS YOU ARE A WIZZARD
#pylint:  skip-file
from heat.engine import properties
from heat.engine import constraints
from heat.engine import attributes
from heat.common.i18n import _
from avi.heat.avi_resource import AviResource
from avi.heat.avi_resource import AviNestedResource
from options import *

from options import *


class VipAutoscaleZones(object):
    # all schemas
    availability_zone_schema = properties.Schema(
        properties.Schema.STRING,
        _("(Introduced in: 18.1.2) "),
        required=False,
        update_allowed=True,
    )
    subnet_uuids_item_schema = properties.Schema(
        properties.Schema.STRING,
        _("(Introduced in: 18.1.2) "),
        required=True,
        update_allowed=False,
    )
    subnet_uuids_schema = properties.Schema(
        properties.Schema.LIST,
        _("(Introduced in: 18.1.2) "),
        schema=subnet_uuids_item_schema,
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'availability_zone',
        'subnet_uuids',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'availability_zone': availability_zone_schema,
        'subnet_uuids': subnet_uuids_schema,
    }



class VipAutoscalePolicy(object):
    # all schemas
    min_size_schema = properties.Schema(
        properties.Schema.NUMBER,
        _("(Introduced in: 18.1.2) The minimum size of the group. (Default: 1)"),
        required=False,
        update_allowed=True,
    )
    max_size_schema = properties.Schema(
        properties.Schema.NUMBER,
        _("(Introduced in: 18.1.2) The maximum size of the group. (Default: 5)"),
        required=False,
        update_allowed=True,
    )
    suspend_schema = properties.Schema(
        properties.Schema.BOOLEAN,
        _("(Introduced in: 18.1.2) When set, scaling is suspended. (Default: False)"),
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'min_size',
        'max_size',
        'suspend',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'min_size': min_size_schema,
        'max_size': max_size_schema,
        'suspend': suspend_schema,
    }



class VipAutoscaleConfiguration(object):
    # all schemas
    zones_item_schema = properties.Schema(
        properties.Schema.MAP,
        _("(Introduced in: 18.1.2) This is the list of AZ+Subnet in which Vips will be spawned."),
        schema=VipAutoscaleZones.properties_schema,
        required=True,
        update_allowed=False,
    )
    zones_schema = properties.Schema(
        properties.Schema.LIST,
        _("(Introduced in: 18.1.2) This is the list of AZ+Subnet in which Vips will be spawned."),
        schema=zones_item_schema,
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'zones',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'zones': zones_schema,
    }

    # for supporting get_avi_uuid_by_name functionality
    field_references = {
        'zones': getattr(VipAutoscaleZones, 'field_references', {}),
    }

    unique_keys = {
        'zones': getattr(VipAutoscaleZones, 'unique_keys', {}),
    }



class VipAutoscaleGroup(object):
    # all schemas
    policy_schema = properties.Schema(
        properties.Schema.MAP,
        _("(Introduced in: 18.1.2) "),
        schema=VipAutoscalePolicy.properties_schema,
        required=False,
        update_allowed=True,
    )
    configuration_schema = properties.Schema(
        properties.Schema.MAP,
        _("(Introduced in: 18.1.2) "),
        schema=VipAutoscaleConfiguration.properties_schema,
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'policy',
        'configuration',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'policy': policy_schema,
        'configuration': configuration_schema,
    }

    # for supporting get_avi_uuid_by_name functionality
    field_references = {
        'policy': getattr(VipAutoscalePolicy, 'field_references', {}),
        'configuration': getattr(VipAutoscaleConfiguration, 'field_references', {}),
    }

    unique_keys = {
        'policy': getattr(VipAutoscalePolicy, 'unique_keys', {}),
        'configuration': getattr(VipAutoscaleConfiguration, 'unique_keys', {}),
    }


# GENERATED FILE - DO NOT EDIT THIS FILE UNLESS YOU ARE A WIZZARD
#pylint:  skip-file
from heat.engine import properties
from heat.engine import constraints
from heat.engine import attributes
from heat.common.i18n import _
from avi.heat.avi_resource import AviResource
from avi.heat.avi_resource import AviNestedResource
from options import *

from options import *


class VipAutoscaleZones(object):
    # all schemas
    availability_zone_schema = properties.Schema(
        properties.Schema.STRING,
        _("(Introduced in: 18.1.2) "),
        required=False,
        update_allowed=True,
    )
    subnet_uuids_item_schema = properties.Schema(
        properties.Schema.STRING,
        _("(Introduced in: 18.1.2) "),
        required=True,
        update_allowed=False,
    )
    subnet_uuids_schema = properties.Schema(
        properties.Schema.LIST,
        _("(Introduced in: 18.1.2) "),
        schema=subnet_uuids_item_schema,
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'availability_zone',
        'subnet_uuids',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'availability_zone': availability_zone_schema,
        'subnet_uuids': subnet_uuids_schema,
    }



class VipAutoscalePolicy(object):
    # all schemas
    min_size_schema = properties.Schema(
        properties.Schema.NUMBER,
        _("(Introduced in: 18.1.2) The minimum size of the group. (Default: 1)"),
        required=False,
        update_allowed=True,
    )
    max_size_schema = properties.Schema(
        properties.Schema.NUMBER,
        _("(Introduced in: 18.1.2) The maximum size of the group. (Default: 5)"),
        required=False,
        update_allowed=True,
    )
    suspend_schema = properties.Schema(
        properties.Schema.BOOLEAN,
        _("(Introduced in: 18.1.2) When set, scaling is suspended. (Default: False)"),
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'min_size',
        'max_size',
        'suspend',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'min_size': min_size_schema,
        'max_size': max_size_schema,
        'suspend': suspend_schema,
    }



class VipAutoscaleConfiguration(object):
    # all schemas
    zones_item_schema = properties.Schema(
        properties.Schema.MAP,
        _("(Introduced in: 18.1.2) This is the list of AZ+Subnet in which Vips will be spawned."),
        schema=VipAutoscaleZones.properties_schema,
        required=True,
        update_allowed=False,
    )
    zones_schema = properties.Schema(
        properties.Schema.LIST,
        _("(Introduced in: 18.1.2) This is the list of AZ+Subnet in which Vips will be spawned."),
        schema=zones_item_schema,
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'zones',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'zones': zones_schema,
    }

    # for supporting get_avi_uuid_by_name functionality
    field_references = {
        'zones': getattr(VipAutoscaleZones, 'field_references', {}),
    }

    unique_keys = {
        'zones': getattr(VipAutoscaleZones, 'unique_keys', {}),
    }



class VipAutoscaleGroup(object):
    # all schemas
    policy_schema = properties.Schema(
        properties.Schema.MAP,
        _("(Introduced in: 18.1.2) "),
        schema=VipAutoscalePolicy.properties_schema,
        required=False,
        update_allowed=True,
    )
    configuration_schema = properties.Schema(
        properties.Schema.MAP,
        _("(Introduced in: 18.1.2) "),
        schema=VipAutoscaleConfiguration.properties_schema,
        required=False,
        update_allowed=True,
    )

    # properties list
    PROPERTIES = (
        'policy',
        'configuration',
    )

    # mapping of properties to their schemas
    properties_schema = {
        'policy': policy_schema,
        'configuration': configuration_schema,
    }

    # for supporting get_avi_uuid_by_name functionality
    field_references = {
        'policy': getattr(VipAutoscalePolicy, 'field_references', {}),
        'configuration': getattr(VipAutoscaleConfiguration, 'field_references', {}),
    }

    unique_keys = {
        'policy': getattr(VipAutoscalePolicy, 'unique_keys', {}),
        'configuration': getattr(VipAutoscaleConfiguration, 'unique_keys', {}),
    }


# GENERATED FILE - DO NOT EDIT THIS FILE UNLESS YOU ARE A WIZZARD #pylint:  skip-file # all schemas # properties list # mapping of properties to their schemas # all schemas # properties list # mapping of properties to their schemas # all schemas # properties list # mapping of properties to their schemas # for supporting get_avi_uuid_by_name functionality # all schemas # properties list # mapping of properties to their schemas # for supporting get_avi_uuid_by_name functionality