//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
    using LukeHagar.PlexAPI.SDK.Utils;
    using Newtonsoft.Json;
    
    /// <summary>
    /// Geo location data
    /// </summary>
    public class GetGeoDataGeoData
    {

        /// <summary>
        /// The ISO 3166-1 alpha-2 code of the country.
        /// </summary>
        [JsonProperty("code")]
        public string Code { get; set; } = default!;

        /// <summary>
        /// The continent code where the country is located.
        /// </summary>
        [JsonProperty("continent_code")]
        public string ContinentCode { get; set; } = default!;

        /// <summary>
        /// The official name of the country.
        /// </summary>
        [JsonProperty("country")]
        public string Country { get; set; } = default!;

        /// <summary>
        /// The name of the city.
        /// </summary>
        [JsonProperty("city")]
        public string City { get; set; } = default!;

        /// <summary>
        /// Indicates if the country is a member of the European Union.
        /// </summary>
        [JsonProperty("european_union_member")]
        public bool? EuropeanUnionMember { get; set; } = false;

        /// <summary>
        /// The time zone of the country.
        /// </summary>
        [JsonProperty("time_zone")]
        public string TimeZone { get; set; } = default!;

        /// <summary>
        /// The postal code of the location.
        /// </summary>
        [JsonProperty("postal_code")]
        public string PostalCode { get; set; } = default!;

        /// <summary>
        /// Indicates if the country has privacy restrictions.
        /// </summary>
        [JsonProperty("in_privacy_restricted_country")]
        public bool? InPrivacyRestrictedCountry { get; set; } = false;

        /// <summary>
        /// Indicates if the region has privacy restrictions.
        /// </summary>
        [JsonProperty("in_privacy_restricted_region")]
        public bool? InPrivacyRestrictedRegion { get; set; } = false;

        /// <summary>
        /// The name of the primary administrative subdivision.
        /// </summary>
        [JsonProperty("subdivisions")]
        public string Subdivisions { get; set; } = default!;

        /// <summary>
        /// The geographical coordinates (latitude, longitude) of the location.
        /// </summary>
        [JsonProperty("coordinates")]
        public string Coordinates { get; set; } = default!;
    }
}