lib/schemas/app/permissions.ex

defmodule GitHub.App.Permissions do
  @moduledoc """
  Provides struct and type for a App.Permissions
  """
  use GitHub.Encoder

  @type t :: %__MODULE__{
          __info__: map,
          actions: String.t() | nil,
          administration: String.t() | nil,
          checks: String.t() | nil,
          codespaces: String.t() | nil,
          contents: String.t() | nil,
          dependabot_secrets: String.t() | nil,
          deployments: String.t() | nil,
          email_addresses: String.t() | nil,
          environments: String.t() | nil,
          followers: String.t() | nil,
          git_ssh_keys: String.t() | nil,
          gpg_keys: String.t() | nil,
          interaction_limits: String.t() | nil,
          issues: String.t() | nil,
          members: String.t() | nil,
          metadata: String.t() | nil,
          organization_administration: String.t() | nil,
          organization_announcement_banners: String.t() | nil,
          organization_copilot_seat_management: String.t() | nil,
          organization_custom_org_roles: String.t() | nil,
          organization_custom_properties: String.t() | nil,
          organization_custom_roles: String.t() | nil,
          organization_events: String.t() | nil,
          organization_hooks: String.t() | nil,
          organization_packages: String.t() | nil,
          organization_personal_access_token_requests: String.t() | nil,
          organization_personal_access_tokens: String.t() | nil,
          organization_plan: String.t() | nil,
          organization_projects: String.t() | nil,
          organization_secrets: String.t() | nil,
          organization_self_hosted_runners: String.t() | nil,
          organization_user_blocking: String.t() | nil,
          packages: String.t() | nil,
          pages: String.t() | nil,
          profile: String.t() | nil,
          pull_requests: String.t() | nil,
          repository_custom_properties: String.t() | nil,
          repository_hooks: String.t() | nil,
          repository_projects: String.t() | nil,
          secret_scanning_alerts: String.t() | nil,
          secrets: String.t() | nil,
          security_events: String.t() | nil,
          single_file: String.t() | nil,
          starring: String.t() | nil,
          statuses: String.t() | nil,
          team_discussions: String.t() | nil,
          vulnerability_alerts: String.t() | nil,
          workflows: String.t() | nil
        }

  defstruct [
    :__info__,
    :actions,
    :administration,
    :checks,
    :codespaces,
    :contents,
    :dependabot_secrets,
    :deployments,
    :email_addresses,
    :environments,
    :followers,
    :git_ssh_keys,
    :gpg_keys,
    :interaction_limits,
    :issues,
    :members,
    :metadata,
    :organization_administration,
    :organization_announcement_banners,
    :organization_copilot_seat_management,
    :organization_custom_org_roles,
    :organization_custom_properties,
    :organization_custom_roles,
    :organization_events,
    :organization_hooks,
    :organization_packages,
    :organization_personal_access_token_requests,
    :organization_personal_access_tokens,
    :organization_plan,
    :organization_projects,
    :organization_secrets,
    :organization_self_hosted_runners,
    :organization_user_blocking,
    :packages,
    :pages,
    :profile,
    :pull_requests,
    :repository_custom_properties,
    :repository_hooks,
    :repository_projects,
    :secret_scanning_alerts,
    :secrets,
    :security_events,
    :single_file,
    :starring,
    :statuses,
    :team_discussions,
    :vulnerability_alerts,
    :workflows
  ]

  @doc false
  @spec __fields__(atom) :: keyword
  def __fields__(type \\ :t)

  def __fields__(:t) do
    [
      actions: {:enum, ["read", "write"]},
      administration: {:enum, ["read", "write"]},
      checks: {:enum, ["read", "write"]},
      codespaces: {:enum, ["read", "write"]},
      contents: {:enum, ["read", "write"]},
      dependabot_secrets: {:enum, ["read", "write"]},
      deployments: {:enum, ["read", "write"]},
      email_addresses: {:enum, ["read", "write"]},
      environments: {:enum, ["read", "write"]},
      followers: {:enum, ["read", "write"]},
      git_ssh_keys: {:enum, ["read", "write"]},
      gpg_keys: {:enum, ["read", "write"]},
      interaction_limits: {:enum, ["read", "write"]},
      issues: {:enum, ["read", "write"]},
      members: {:enum, ["read", "write"]},
      metadata: {:enum, ["read", "write"]},
      organization_administration: {:enum, ["read", "write"]},
      organization_announcement_banners: {:enum, ["read", "write"]},
      organization_copilot_seat_management: {:const, "write"},
      organization_custom_org_roles: {:enum, ["read", "write"]},
      organization_custom_properties: {:enum, ["read", "write", "admin"]},
      organization_custom_roles: {:enum, ["read", "write"]},
      organization_events: {:const, "read"},
      organization_hooks: {:enum, ["read", "write"]},
      organization_packages: {:enum, ["read", "write"]},
      organization_personal_access_token_requests: {:enum, ["read", "write"]},
      organization_personal_access_tokens: {:enum, ["read", "write"]},
      organization_plan: {:const, "read"},
      organization_projects: {:enum, ["read", "write", "admin"]},
      organization_secrets: {:enum, ["read", "write"]},
      organization_self_hosted_runners: {:enum, ["read", "write"]},
      organization_user_blocking: {:enum, ["read", "write"]},
      packages: {:enum, ["read", "write"]},
      pages: {:enum, ["read", "write"]},
      profile: {:const, "write"},
      pull_requests: {:enum, ["read", "write"]},
      repository_custom_properties: {:enum, ["read", "write"]},
      repository_hooks: {:enum, ["read", "write"]},
      repository_projects: {:enum, ["read", "write", "admin"]},
      secret_scanning_alerts: {:enum, ["read", "write"]},
      secrets: {:enum, ["read", "write"]},
      security_events: {:enum, ["read", "write"]},
      single_file: {:enum, ["read", "write"]},
      starring: {:enum, ["read", "write"]},
      statuses: {:enum, ["read", "write"]},
      team_discussions: {:enum, ["read", "write"]},
      vulnerability_alerts: {:enum, ["read", "write"]},
      workflows: {:const, "write"}
    ]
  end
end