From d360b6df85f78a404d448fc66d795e3c2943169e Mon Sep 17 00:00:00 2001 From: Spencer Witt <3409780+spwitt@users.noreply.github.com> Date: Mon, 9 Feb 2026 09:46:22 -0600 Subject: [PATCH 1/6] add TenantManagerIdentityProviderTypeConfiguration domain object ENG-3779 --- pkg/fusionauth/Domain.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkg/fusionauth/Domain.go b/pkg/fusionauth/Domain.go index edb1125..75f8dd8 100644 --- a/pkg/fusionauth/Domain.go +++ b/pkg/fusionauth/Domain.go @@ -6367,6 +6367,18 @@ type TenantLoginConfiguration struct { RequireAuthentication bool `json:"requireAuthentication"` } +/** + * Configuration object for identity provider types allowed in Tenant Manager + */ +type TenantManagerIdentityProviderTypeConfiguration struct { + Enableable + DefaultAttributeMappings map[string]string `json:"defaultAttributeMappings,omitempty"` + InsertInstant int64 `json:"insertInstant,omitempty"` + LastUpdateInstant int64 `json:"lastUpdateInstant,omitempty"` + LinkingStrategy IdentityProviderLinkingStrategy `json:"linkingStrategy,omitempty"` + Type IdentityProviderType `json:"type,omitempty"` +} + /** * @author Mikey Sleevi */ From 7180ba267ae17ff1b0a49fef9de605f06dea4c5f Mon Sep 17 00:00:00 2001 From: Spencer Witt <3409780+spwitt@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:05:30 -0600 Subject: [PATCH 2/6] add IdP type configs to SystemConfiguration.tenantManagerConfiguration ENG-3779 --- pkg/fusionauth/Domain.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/fusionauth/Domain.go b/pkg/fusionauth/Domain.go index 75f8dd8..5df83fe 100644 --- a/pkg/fusionauth/Domain.go +++ b/pkg/fusionauth/Domain.go @@ -6200,8 +6200,9 @@ type LoginRecordConfiguration struct { } type TenantManagerConfiguration struct { - AttributeFormId string `json:"attributeFormId,omitempty"` - BrandName string `json:"brandName,omitempty"` + AttributeFormId string `json:"attributeFormId,omitempty"` + BrandName string `json:"brandName,omitempty"` + IdentityProviderTypeConfigurations map[IdentityProviderType]TenantManagerIdentityProviderTypeConfiguration `json:"identityProviderTypeConfigurations,omitempty"` } type UIConfiguration struct { From 41dba4942b695b4e4e5be790c0fa64dbe311b719 Mon Sep 17 00:00:00 2001 From: Spencer Witt <3409780+spwitt@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:01:05 -0600 Subject: [PATCH 3/6] generate client libraries for /api/tenant-manager/identity-provider ENG-3779 --- pkg/fusionauth/Client.go | 87 ++++++++++++++++++++++++++++++++++++++++ pkg/fusionauth/Domain.go | 19 +++++++++ 2 files changed, 106 insertions(+) diff --git a/pkg/fusionauth/Client.go b/pkg/fusionauth/Client.go index e1a088f..396b8b8 100644 --- a/pkg/fusionauth/Client.go +++ b/pkg/fusionauth/Client.go @@ -1677,6 +1677,36 @@ func (c *FusionAuthClient) CreateTenantWithContext(ctx context.Context, tenantId return &resp, &errors, err } +// CreateTenantManagerIdentityProviderTypeConfiguration +// Creates a tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +// TenantManagerIdentityProviderTypeConfigurationRequest request The request object that contains all the information used to create the tenant manager identity provider type configuration. +func (c *FusionAuthClient) CreateTenantManagerIdentityProviderTypeConfiguration(_type IdentityProviderType, request TenantManagerIdentityProviderTypeConfigurationRequest) (*TenantManagerIdentityProviderTypeConfigurationResponse, *Errors, error) { + return c.CreateTenantManagerIdentityProviderTypeConfigurationWithContext(context.TODO(), _type, request) +} + +// CreateTenantManagerIdentityProviderTypeConfigurationWithContext +// Creates a tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +// TenantManagerIdentityProviderTypeConfigurationRequest request The request object that contains all the information used to create the tenant manager identity provider type configuration. +func (c *FusionAuthClient) CreateTenantManagerIdentityProviderTypeConfigurationWithContext(ctx context.Context, _type IdentityProviderType, request TenantManagerIdentityProviderTypeConfigurationRequest) (*TenantManagerIdentityProviderTypeConfigurationResponse, *Errors, error) { + var resp TenantManagerIdentityProviderTypeConfigurationResponse + var errors Errors + + restClient := c.Start(&resp, &errors) + err := restClient.WithUri("/api/tenant-manager/identity-provider"). + WithUriSegment(string(_type)). + WithJSONBody(request). + WithMethod(http.MethodPost). + Do(ctx) + if restClient.ErrorRef == nil { + return &resp, nil, err + } + return &resp, &errors, err +} + // CreateTheme // Creates a Theme. You can optionally specify an Id for the theme, if not provided one will be generated. // @@ -2770,6 +2800,33 @@ func (c *FusionAuthClient) DeleteTenantAsyncWithContext(ctx context.Context, ten return &resp, &errors, err } +// DeleteTenantManagerIdentityProviderTypeConfiguration +// Deletes the tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +func (c *FusionAuthClient) DeleteTenantManagerIdentityProviderTypeConfiguration(_type IdentityProviderType) (*BaseHTTPResponse, *Errors, error) { + return c.DeleteTenantManagerIdentityProviderTypeConfigurationWithContext(context.TODO(), _type) +} + +// DeleteTenantManagerIdentityProviderTypeConfigurationWithContext +// Deletes the tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +func (c *FusionAuthClient) DeleteTenantManagerIdentityProviderTypeConfigurationWithContext(ctx context.Context, _type IdentityProviderType) (*BaseHTTPResponse, *Errors, error) { + var resp BaseHTTPResponse + var errors Errors + + restClient := c.Start(&resp, &errors) + err := restClient.WithUri("/api/tenant-manager/identity-provider"). + WithUriSegment(string(_type)). + WithMethod(http.MethodDelete). + Do(ctx) + if restClient.ErrorRef == nil { + return &resp, nil, err + } + return &resp, &errors, err +} + // DeleteTenantWithRequest // Deletes the tenant based on the given request (sent to the API as JSON). This permanently deletes all information, metrics, reports and data associated // with the tenant and everything under the tenant (applications, users, etc). @@ -10436,6 +10493,36 @@ func (c *FusionAuthClient) UpdateTenantWithContext(ctx context.Context, tenantId return &resp, &errors, err } +// UpdateTenantManagerIdentityProviderTypeConfiguration +// Updates the tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +// TenantManagerIdentityProviderTypeConfigurationRequest request The request object that contains the updated tenant manager identity provider type configuration. +func (c *FusionAuthClient) UpdateTenantManagerIdentityProviderTypeConfiguration(_type IdentityProviderType, request TenantManagerIdentityProviderTypeConfigurationRequest) (*TenantManagerIdentityProviderTypeConfigurationResponse, *Errors, error) { + return c.UpdateTenantManagerIdentityProviderTypeConfigurationWithContext(context.TODO(), _type, request) +} + +// UpdateTenantManagerIdentityProviderTypeConfigurationWithContext +// Updates the tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +// TenantManagerIdentityProviderTypeConfigurationRequest request The request object that contains the updated tenant manager identity provider type configuration. +func (c *FusionAuthClient) UpdateTenantManagerIdentityProviderTypeConfigurationWithContext(ctx context.Context, _type IdentityProviderType, request TenantManagerIdentityProviderTypeConfigurationRequest) (*TenantManagerIdentityProviderTypeConfigurationResponse, *Errors, error) { + var resp TenantManagerIdentityProviderTypeConfigurationResponse + var errors Errors + + restClient := c.Start(&resp, &errors) + err := restClient.WithUri("/api/tenant-manager/identity-provider"). + WithUriSegment(string(_type)). + WithJSONBody(request). + WithMethod(http.MethodPut). + Do(ctx) + if restClient.ErrorRef == nil { + return &resp, nil, err + } + return &resp, &errors, err +} + // UpdateTheme // Updates the theme with the given Id. // diff --git a/pkg/fusionauth/Domain.go b/pkg/fusionauth/Domain.go index 5df83fe..fae0179 100644 --- a/pkg/fusionauth/Domain.go +++ b/pkg/fusionauth/Domain.go @@ -6380,6 +6380,25 @@ type TenantManagerIdentityProviderTypeConfiguration struct { Type IdentityProviderType `json:"type,omitempty"` } +/** + * The Tenant Manager IdP type configuration request object + */ +type TenantManagerIdentityProviderTypeConfigurationRequest struct { + TypeConfiguration TenantManagerIdentityProviderTypeConfiguration `json:"typeConfiguration,omitempty"` +} + +/** + * The Tenant Manager IdP type configuration request object + */ +type TenantManagerIdentityProviderTypeConfigurationResponse struct { + BaseHTTPResponse + TypeConfiguration TenantManagerIdentityProviderTypeConfiguration `json:"typeConfiguration,omitempty"` +} + +func (b *TenantManagerIdentityProviderTypeConfigurationResponse) SetStatus(status int) { + b.StatusCode = status +} + /** * @author Mikey Sleevi */ From 1c7ceee546624a510e76e590c132712f69016a66 Mon Sep 17 00:00:00 2001 From: Spencer Witt <3409780+spwitt@users.noreply.github.com> Date: Wed, 11 Feb 2026 14:43:15 -0600 Subject: [PATCH 4/6] PR feedback ENG-3779 --- pkg/fusionauth/Domain.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/fusionauth/Domain.go b/pkg/fusionauth/Domain.go index fae0179..1c4dfa5 100644 --- a/pkg/fusionauth/Domain.go +++ b/pkg/fusionauth/Domain.go @@ -6388,7 +6388,7 @@ type TenantManagerIdentityProviderTypeConfigurationRequest struct { } /** - * The Tenant Manager IdP type configuration request object + * The Tenant Manager IdP type configuration response object */ type TenantManagerIdentityProviderTypeConfigurationResponse struct { BaseHTTPResponse From e9592f7f184596e752d06d923eec3931e64d7b1e Mon Sep 17 00:00:00 2001 From: Spencer Witt <3409780+spwitt@users.noreply.github.com> Date: Wed, 11 Feb 2026 17:46:53 -0600 Subject: [PATCH 5/6] use String as map key instead of enum ENG-3779 --- pkg/fusionauth/Domain.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/fusionauth/Domain.go b/pkg/fusionauth/Domain.go index 1c4dfa5..7e2a606 100644 --- a/pkg/fusionauth/Domain.go +++ b/pkg/fusionauth/Domain.go @@ -6200,9 +6200,9 @@ type LoginRecordConfiguration struct { } type TenantManagerConfiguration struct { - AttributeFormId string `json:"attributeFormId,omitempty"` - BrandName string `json:"brandName,omitempty"` - IdentityProviderTypeConfigurations map[IdentityProviderType]TenantManagerIdentityProviderTypeConfiguration `json:"identityProviderTypeConfigurations,omitempty"` + AttributeFormId string `json:"attributeFormId,omitempty"` + BrandName string `json:"brandName,omitempty"` + IdentityProviderTypeConfigurations map[string]TenantManagerIdentityProviderTypeConfiguration `json:"identityProviderTypeConfigurations,omitempty"` } type UIConfiguration struct { From 11435997987e209a0cdff06b2916ee4bddb146df Mon Sep 17 00:00:00 2001 From: Spencer Witt <3409780+spwitt@users.noreply.github.com> Date: Thu, 12 Feb 2026 09:23:06 -0600 Subject: [PATCH 6/6] add patchTenantManagerIdentityProviderTypeConfiguration client method. fix missing operations check ENG-3779 --- pkg/fusionauth/Client.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pkg/fusionauth/Client.go b/pkg/fusionauth/Client.go index 396b8b8..22c1a9e 100644 --- a/pkg/fusionauth/Client.go +++ b/pkg/fusionauth/Client.go @@ -5002,6 +5002,36 @@ func (c *FusionAuthClient) PatchTenantWithContext(ctx context.Context, tenantId return &resp, &errors, err } +// PatchTenantManagerIdentityProviderTypeConfiguration +// Patches the tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +// TenantManagerIdentityProviderTypeConfigurationRequest request The request object that contains the new tenant manager identity provider type configuration information. +func (c *FusionAuthClient) PatchTenantManagerIdentityProviderTypeConfiguration(_type IdentityProviderType, request map[string]interface{}) (*TenantManagerIdentityProviderTypeConfigurationResponse, *Errors, error) { + return c.PatchTenantManagerIdentityProviderTypeConfigurationWithContext(context.TODO(), _type, request) +} + +// PatchTenantManagerIdentityProviderTypeConfigurationWithContext +// Patches the tenant manager identity provider type configuration for the given identity provider type. +// +// IdentityProviderType _type The type of the identity provider. +// TenantManagerIdentityProviderTypeConfigurationRequest request The request object that contains the new tenant manager identity provider type configuration information. +func (c *FusionAuthClient) PatchTenantManagerIdentityProviderTypeConfigurationWithContext(ctx context.Context, _type IdentityProviderType, request map[string]interface{}) (*TenantManagerIdentityProviderTypeConfigurationResponse, *Errors, error) { + var resp TenantManagerIdentityProviderTypeConfigurationResponse + var errors Errors + + restClient := c.Start(&resp, &errors) + err := restClient.WithUri("/api/tenant-manager/identity-provider"). + WithUriSegment(string(_type)). + WithJSONBody(request). + WithMethod(http.MethodPatch). + Do(ctx) + if restClient.ErrorRef == nil { + return &resp, nil, err + } + return &resp, &errors, err +} + // PatchTheme // Updates, via PATCH, the theme with the given Id. //