/// <summary>
        /// Initializes a new instance of the <see cref="OrganizationMember" /> class.
        /// </summary>
        /// <param name="user">The organization member (required).</param>
        /// <param name="role">The role the user has within the organization (required).</param>
        public OrganizationMember
        (
            UserPublic user, OrganizationRoleEnum role // Required parameters
            // Optional parameters
        ) : base()                                     // BaseClass
        {
            // to ensure "user" is required (not null)
            this.User = user ?? throw new ArgumentNullException("user is a required property for OrganizationMember and cannot be null");
            this.Role = role;

            // Set non-required readonly properties with defaultValue
            this.Type = "OrganizationMember";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Organization" /> class.
        /// </summary>
        /// <param name="id">The org ID (required).</param>
        /// <param name="owner">The account the organization represents (required).</param>
        /// <param name="role">The role the user has within the organization.</param>
        /// <param name="memberCount">The number of members that are part of this org (default to 0).</param>
        /// <param name="teamCount">The number of teams that are part of this org (default to 0).</param>
        /// <param name="accountName">The unique name of the org in small case without spaces.</param>
        /// <param name="name">The display name for this org.</param>
        /// <param name="pictureUrl">URL to the picture associated with this org.</param>
        /// <param name="contactEmail">The contact email for the Organization.</param>
        /// <param name="description">A description of the org.</param>
        public Organization
        (
            string id, AccountPublic owner,                                                                                                                                                                                            // Required parameters
            string accountName = default, string name = default, string pictureUrl = default, string contactEmail = default, string description = default, OrganizationRoleEnum role = default, int memberCount = 0, int teamCount = 0 // Optional parameters
        ) : base(accountName: accountName, name: name, pictureUrl: pictureUrl, contactEmail: contactEmail, description: description)                                                                                                   // BaseClass
        {
            // to ensure "id" is required (not null)
            this.Id = id ?? throw new ArgumentNullException("id is a required property for Organization and cannot be null");
            // to ensure "owner" is required (not null)
            this.Owner       = owner ?? throw new ArgumentNullException("owner is a required property for Organization and cannot be null");
            this.Role        = role;
            this.MemberCount = memberCount;
            this.TeamCount   = teamCount;

            // Set non-required readonly properties with defaultValue
            this.Type = "Organization";
        }