# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class Address(Model):
    """Defines the properties and methods of an address.

    :param address1: The first line of the street address.  Typcically
     contains
     the number and street name.
    :type address1: str
    :param address2: The second line of the street address.  Typically
     contains
     an apartment number, suite number or department.
    :type address2: str
    :param city: The city where the address is situated.
    :type city: str
    :param state: The state where the address is located.
    :type state: str
    :param zip_code: The postal code for the address.
    :type zip_code: str
    """

    _validation = {
        'address1': {'required': True},
        'city': {'required': True},
        'state': {'required': True},
        'zip_code': {'required': True},
    }

    _attribute_map = {
        'address1': {'key': 'address1', 'type': 'str'},
        'address2': {'key': 'address2', 'type': 'str'},
        'city': {'key': 'city', 'type': 'str'},
        'state': {'key': 'state', 'type': 'str'},
        'zip_code': {'key': 'zipCode', 'type': 'str'},
    }

    def __init__(self, address1, city, state, zip_code, address2=None):
        super(Address, self).__init__()
        self.address1 = address1
        self.address2 = address2
        self.city = city
        self.state = state
        self.zip_code = zip_code
