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
}
}