using System.Diagnostics;
using System.Globalization;
using Octokit.Internal;
namespace Octokit
{
///
/// organization teams
///
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class Team
{
public Team() { }
public Team(string url, string htmlUrl, int id, string nodeId, string slug, string name, string description, TeamPrivacy privacy, PermissionLevel permission, int membersCount, int reposCount, Organization organization, Team parent, string ldapDistinguishedName)
{
Url = url;
HtmlUrl = htmlUrl;
Id = id;
NodeId = nodeId;
Slug = slug;
Name = name;
Description = description;
Privacy = privacy;
Permission = permission;
MembersCount = membersCount;
ReposCount = reposCount;
Organization = organization;
Parent = parent;
LdapDistinguishedName = ldapDistinguishedName;
}
///
/// url for this team
///
public string Url { get; protected set; }
///
/// The HTML URL for this team.
///
public string HtmlUrl { get; protected set; }
///
/// team id
///
public int Id { get; protected set; }
///
/// GraphQL Node Id
///
public string NodeId { get; protected set; }
///
/// team slug
///
public string Slug { get; protected set; }
///
/// team name
///
public string Name { get; protected set; }
///
/// team description
///
public string Description { get; protected set; }
///
/// team privacy
///
public StringEnum Privacy { get; protected set; }
///
/// permission attached to this team
///
public StringEnum Permission { get; protected set; }
///
/// how many members in this team
///
public int MembersCount { get; protected set; }
///
/// how many repo this team has access to
///
public int ReposCount { get; protected set; }
///
/// who this team belongs to
///
public Organization Organization { get; protected set; }
///
/// The parent team
///
public Team Parent { get; protected set; }
///
/// LDAP Binding (GitHub Enterprise only)
///
[Parameter(Key = "ldap_dn")]
public string LdapDistinguishedName { get; protected set; }
internal string DebuggerDisplay
{
get { return string.Format(CultureInfo.InvariantCulture, "Name: {0} ", Name); }
}
}
///
/// Used to describe a team's privacy level.
///
public enum TeamPrivacy
{
///
/// Only visible to organization owners and members of the team.
///
[Parameter(Value = "secret")]
Secret,
///
/// Visible to all members of the organization.
///
[Parameter(Value = "closed")]
Closed
}
}