# 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 AdiEmsWebApiV2DtoNavigationNavigationWaypoint(Model):
    """Various pieces of information associated with a waypoint.

    :param id: The unique identifier of the waypoint.
    :type id: int
    :param airport_id: The airport id for the waypoint, if any.
    :type airport_id: int
    :param country_code: The country code of the waypoint.
    :type country_code: str
    :param type: The type of the waypoint.
    :type type: str
    :param name: The name of the waypoint.
    :type name: str
    :param icao_code: The ICAO code of the waypoint.
    :type icao_code: str
    :param usage_code: The usage code of the waypoint.
    :type usage_code: str
    :param latitude: The latitude of the waypoint.
    :type latitude: float
    :param longitude: The longitude of the waypoint.
    :type longitude: float
    :param magnetic_variance: The magnetic variance from true north at the
     waypoint.
    :type magnetic_variance: float
    :param navaid_id: The id of the associated naviad, if any.
    :type navaid_id: int
    :param colocation_flag: Flag indicating whether or not the waypoint is
     colocated with the navaid.
    :type colocation_flag: bool
    :param navaid_bearing: The magnetic bearing from the navaid to the
     waypoint.
    :type navaid_bearing: float
    :param navaid_distance: The distance from the navaid to the waypoint.
    :type navaid_distance: float
    :param dafif_id: The DAFIF text identifier of the waypoint.
    :type dafif_id: str
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'int'},
        'airport_id': {'key': 'airportId', 'type': 'int'},
        'country_code': {'key': 'countryCode', 'type': 'str'},
        'type': {'key': 'type', 'type': 'str'},
        'name': {'key': 'name', 'type': 'str'},
        'icao_code': {'key': 'icaoCode', 'type': 'str'},
        'usage_code': {'key': 'usageCode', 'type': 'str'},
        'latitude': {'key': 'latitude', 'type': 'float'},
        'longitude': {'key': 'longitude', 'type': 'float'},
        'magnetic_variance': {'key': 'magneticVariance', 'type': 'float'},
        'navaid_id': {'key': 'navaidId', 'type': 'int'},
        'colocation_flag': {'key': 'colocationFlag', 'type': 'bool'},
        'navaid_bearing': {'key': 'navaidBearing', 'type': 'float'},
        'navaid_distance': {'key': 'navaidDistance', 'type': 'float'},
        'dafif_id': {'key': 'dafifId', 'type': 'str'},
    }

    def __init__(self, **kwargs):
        super(AdiEmsWebApiV2DtoNavigationNavigationWaypoint, self).__init__(**kwargs)
        self.id = kwargs.get('id', None)
        self.airport_id = kwargs.get('airport_id', None)
        self.country_code = kwargs.get('country_code', None)
        self.type = kwargs.get('type', None)
        self.name = kwargs.get('name', None)
        self.icao_code = kwargs.get('icao_code', None)
        self.usage_code = kwargs.get('usage_code', None)
        self.latitude = kwargs.get('latitude', None)
        self.longitude = kwargs.get('longitude', None)
        self.magnetic_variance = kwargs.get('magnetic_variance', None)
        self.navaid_id = kwargs.get('navaid_id', None)
        self.colocation_flag = kwargs.get('colocation_flag', None)
        self.navaid_bearing = kwargs.get('navaid_bearing', None)
        self.navaid_distance = kwargs.get('navaid_distance', None)
        self.dafif_id = kwargs.get('dafif_id', None)
