using System.Diagnostics; using System.Globalization; using Octokit.Internal; namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class InstallationPermissions { public InstallationPermissions() { } public InstallationPermissions(InstallationPermissionLevel? metadata, InstallationPermissionLevel? administration, InstallationPermissionLevel? statuses, InstallationPermissionLevel? deployments, InstallationPermissionLevel? issues, InstallationPermissionLevel? pages, InstallationPermissionLevel? pullRequests, InstallationPermissionLevel? contents, InstallationPermissionLevel? singleFile, InstallationPermissionLevel? repositoryProjects, InstallationPermissionLevel? members, InstallationPermissionLevel? organizationProjects, InstallationPermissionLevel? teamDiscussions, InstallationPermissionLevel? checks) { Metadata = metadata; Administration = administration; Statuses = statuses; Deployments = deployments; Issues = issues; Pages = pages; PullRequests = pullRequests; Contents = contents; SingleFile = singleFile; RepositoryProjects = repositoryProjects; Members = members; OrganizationProjects = organizationProjects; TeamDiscussions = teamDiscussions; Checks = checks; } /// /// Repository metadata /// Search repositories, list collaborators, and access repository metadata. /// public StringEnum? Metadata { get; protected set; } /// /// Repository administration /// Repository creation, deletion, settings, teams, and collaborators. /// public StringEnum? Administration { get; protected set; } /// /// Commit statuses /// Commit statuses. /// public StringEnum? Statuses { get; protected set; } /// /// Deployments /// Deployments and deployment statuses. /// public StringEnum? Deployments { get; protected set; } /// /// Issues /// Issues and related comments, assignees, labels, and milestones. /// public StringEnum? Issues { get; protected set; } /// /// Pages /// Retrieve Pages statuses, configuration, and builds, as well as create new builds. /// public StringEnum? Pages { get; protected set; } /// /// Pull requests /// Pull requests and related comments, assignees, labels, milestones, and merges. /// public StringEnum? PullRequests { get; protected set; } /// /// Repository contents /// Repository contents, commits, branches, downloads, releases, and merges. /// public StringEnum? Contents { get; protected set; } /// /// Single file /// Manage just a single file. /// public StringEnum? SingleFile { get; protected set; } /// /// Repository projects /// Manage repository projects, columns, and cards. /// public StringEnum? RepositoryProjects { get; protected set; } /// /// Checks /// Detailed information about CI checks /// public StringEnum? Checks { get; protected set; } /// /// Organization members (only applicable when installed for an Organization ) /// Organization members and teams. /// public StringEnum? Members { get; protected set; } /// /// Organization projects (only applicable when installed for an Organization ) /// Manage organization projects, columns, and cards. /// public StringEnum? OrganizationProjects { get; protected set; } /// /// Team discussions (only applicable when installed for an Organization ) /// Team discussions. /// public StringEnum? TeamDiscussions { get; protected set; } internal string DebuggerDisplay { get { return string.Format(CultureInfo.InvariantCulture, "Metadata: {0}, Contents: {1}, Issues: {2}, Single File: {3}", Metadata, Contents, Issues, SingleFile); } } } public enum InstallationPermissionLevel { [Parameter(Value = "read")] Read, [Parameter(Value = "write")] Write } }