
//------------------------------------------------------------------------------
// <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 HathoraCloud.Models.Shared
{
    using HathoraCloud.Models.Shared;
    using Newtonsoft.Json;
    using System.Collections.Generic;
    using System;
    using UnityEngine;
    
    [Serializable]
    public class Organization
    {

        /// <summary>
        /// The features enabled for this org and user.
        /// </summary>
        [SerializeField]
        [JsonProperty("enabledFeatureFlags")]
        public List<string>? EnabledFeatureFlags { get; set; }

        [SerializeField]
        [JsonProperty("isSingleTenant")]
        public bool IsSingleTenant { get; set; } = default!;

        /// <summary>
        /// The maximum memory in MB that can be used by any process in this org.
        /// </summary>
        [SerializeField]
        [JsonProperty("maxRequestedMemoryMB")]
        public double MaxRequestedMemoryMB { get; set; } = default!;

        /// <summary>
        /// The name of an organization.
        /// </summary>
        [SerializeField]
        [JsonProperty("name")]
        public string? Name { get; set; }

        /// <summary>
        /// System generated unique identifier for an organization. Not guaranteed to have a specific format.
        /// </summary>
        [SerializeField]
        [JsonProperty("orgId")]
        public string OrgId { get; set; } = default!;

        /// <summary>
        /// The maximum lifespan in hours of a pod.
        /// </summary>
        [SerializeField]
        [JsonProperty("podMaxLifespanHrs")]
        public double? PodMaxLifespanHrs { get; set; }

        /// <summary>
        /// The scopes the user who loaded this has on this org.
        /// </summary>
        [SerializeField]
        [JsonProperty("scopes")]
        public List<Scope> Scopes { get; set; } = default!;

        [SerializeField]
        [JsonProperty("stripeCustomerId")]
        public string StripeCustomerId { get; set; } = default!;
    }
}