defmodule GitHub.Oidc do
@moduledoc """
Provides API endpoints related to oidc
"""
@default_client GitHub.Client
@doc """
Get the customization template for an OIDC subject claim for an organization
Gets the customization template for an OpenID Connect (OIDC) subject claim.
You must authenticate using an access token with the `read:org` scope to use this endpoint.
GitHub Apps must have the `organization_administration:write` permission to use this endpoint.
## Resources
* [API method documentation](https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-an-organization)
"""
@spec get_oidc_custom_sub_template_for_org(String.t(), keyword) ::
{:ok, GitHub.OIDCCustomSub.t()} | {:error, GitHub.Error.t()}
def get_oidc_custom_sub_template_for_org(org, opts \\ []) do
client = opts[:client] || @default_client
client.request(%{
args: [org: org],
call: {GitHub.Oidc, :get_oidc_custom_sub_template_for_org},
url: "/orgs/#{org}/actions/oidc/customization/sub",
method: :get,
response: [{200, {GitHub.OIDCCustomSub, :t}}],
opts: opts
})
end
@doc """
Set the customization template for an OIDC subject claim for an organization
Creates or updates the customization template for an OpenID Connect (OIDC) subject claim.
You must authenticate using an access token with the `write:org` scope to use this endpoint.
GitHub Apps must have the `admin:org` permission to use this endpoint.
## Resources
* [API method documentation](https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization)
"""
@spec update_oidc_custom_sub_template_for_org(String.t(), GitHub.OIDCCustomSub.t(), keyword) ::
{:ok, GitHub.EmptyObject.t()} | {:error, GitHub.Error.t()}
def update_oidc_custom_sub_template_for_org(org, body, opts \\ []) do
client = opts[:client] || @default_client
client.request(%{
args: [org: org, body: body],
call: {GitHub.Oidc, :update_oidc_custom_sub_template_for_org},
url: "/orgs/#{org}/actions/oidc/customization/sub",
body: body,
method: :put,
request: [{"application/json", {GitHub.OIDCCustomSub, :t}}],
response: [
{201, {GitHub.EmptyObject, :t}},
{403, {GitHub.BasicError, :t}},
{404, {GitHub.BasicError, :t}}
],
opts: opts
})
end
end