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