> ## Documentation Index
> Fetch the complete documentation index at: https://docs.britive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update workload identity provider

## OpenAPI

````json PUT /api/workload/identity-providers
{
  "openapi": "3.0.1",
  "info": {
    "title": "Britive Services API Documentation",
    "version": "v1",
    "description": "API documentation for Users, Tags, Identity providers, Applications, Reporting, Audit logs, Tenants, SSO, Profiles, Password policies, MFA, Access Builder Settings, etc."
  },
  "servers": [
    {
      "url": "https://{tenantURL}",
      "description": "The primary server",
      "variables": {
        "tenantURL": {
          "default": "test.britive-app.com",
          "description": "The host of the server"
        }
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Access Request Tag Membership",
      "description": "Manage tag memberships granted via access requests"
    },
    {
      "name": "API Tokens",
      "description": "Manage API Tokens"
    },
    {
      "name": "Application Environments",
      "description": "Manage Application Environments"
    },
    {
      "name": "Application Environments - Accounts",
      "description": "Manage Application Environments Accounts"
    },
    {
      "name": "Application Profiles",
      "description": "Manage Application Profiles"
    },
    {
      "name": "Application Profiles - Advanced Settings",
      "description": "Manage Application Profiles Advanced Settings"
    },
    {
      "name": "Application Profiles - Permissions",
      "description": "Manage Application Profiles Permissions"
    },
    {
      "name": "Application Profiles - Permission Constraint Manager",
      "description": "Manage Profile Permission Constraints for the permissions that support to define constraints."
    },
    {
      "name": "Application Profiles - Policies",
      "description": "Manage Application Profiles Policies"
    },
    {
      "name": "Application Profiles - Scopes",
      "description": "Manage Application Profiles Scopes"
    },
    {
      "name": "Application Profiles - Session Attributes",
      "description": "Manage Application Profiles Session Attributes"
    },
    {
      "name": "Application Profiles - Sessions",
      "description": "Manage Application Profiles Sessions"
    },
    {
      "name": "Application Profiles - Users and Tags",
      "description": "Manage Application Profiles"
    },
    {
      "name": "Applications",
      "description": "Manage Applications"
    },
    {
      "name": "Applications - Access Builder Settings",
      "description": "Manage access builder settings for an application"
    },
    {
      "name": "Applications - Advanced Settings",
      "description": "Manage Applications Advanced Settings"
    },
    {
      "name": "Applications - Approvers Groups",
      "description": "Manage approvers groups for association approvers"
    },
    {
      "name": "Applications - Association Approvers",
      "description": "Manage association approvers for an application"
    },
    {
      "name": "Applications - Managed Permissions",
      "description": "Manage Britive Permissions"
    },
    {
      "name": "Applications - Permissions",
      "description": "Manage Application Permissions"
    },
    {
      "name": "Applications - Root Environment Groups",
      "description": "Manage Application Root Environment Groups"
    },
    {
      "name": "Applications - Scans",
      "description": "Manage Application Scans"
    },
    {
      "name": "Audit Log Webhooks",
      "description": "Manage Audit Log Webhooks"
    },
    {
      "name": "Audit Logs",
      "description": "Manage Audit Logs"
    },
    {
      "name": "Custom App Template Uploader",
      "description": "Uploads custom app template."
    },
    {
      "name": "Custom App Manager",
      "description": "Creates an app using custom template and other operations for managing the template."
    },
    {
      "name": "Global Landing Page",
      "description": "Manage global landing page"
    },
    {
      "name": "Identity Providers",
      "description": "Manage identity providers and settings"
    },
    {
      "name": "IP Restrictions",
      "description": "Manage firewall rules/settings"
    },
    {
      "name": "ITSM Connection Metadata",
      "description": "Manage ITSM Connection Metadata"
    },
    {
      "name": "ITSM Connections",
      "description": "Manage ITSM Connections"
    },
    {
      "name": "ITSM Integration",
      "description": "Manage ITSM Connections"
    },
    {
      "name": "IM Connection Metadata",
      "description": "Manage IM Connection Metadata"
    },
    {
      "name": "IM Connections",
      "description": "Manage IM Connections"
    },
    {
      "name": "IM Integration",
      "description": "Manage IM Connections"
    },
    {
      "name": "Multi Factor Authentication",
      "description": "Manage MFA authentication settings"
    },
    {
      "name": "My Access",
      "description": "Manage My Access"
    },
    {
      "name": "My Devices",
      "description": "Manage My Devices"
    },
    {
      "name": "My Resources",
      "description": "Manage My Resources"
    },
    {
      "name": "My Resources - Integration",
      "description": "Manage My Resource Integration"
    },
    {
      "name": "My Resources - Profiles",
      "description": "Manage My Resource Profiles"
    },
    {
      "name": "Notifications",
      "description": "Manage notifications"
    },
    {
      "name": "Profile Requests - Managed Permissions",
      "description": "Manage Profile Requests Britive Permissions"
    },
    {
      "name": "Reports",
      "description": "Manage Reports"
    },
    {
      "name": "Resource Manager",
      "description": "Manage Resources"
    },
    {
      "name": "Resource Manager - Labels",
      "description": "Manage Resource Labels"
    },
    {
      "name": "Resource Manager - Permissions",
      "description": "Manage Resource Permissions"
    },
    {
      "name": "Resource Manager - Policies",
      "description": "Manage Resource Policies"
    },
    {
      "name": "Resource Manager - Response Templates",
      "description": "Manage Resource Response Templates"
    },
    {
      "name": "Resource Manager - Types",
      "description": "Manage Resource Types"
    },
    {
      "name": "Resource Profiles",
      "description": "Manage Resource Profiles"
    },
    {
      "name": "Resource Profiles - Advanced Settings",
      "description": "Manage Resource Profiles Advanced Settings"
    },
    {
      "name": "Resource Profiles - Associations",
      "description": "Manage Resource Profiles Associations"
    },
    {
      "name": "Resource Profiles - Permissions",
      "description": "Manage Resource Profiles Permissions"
    },
    {
      "name": "Resource Profiles - Policies",
      "description": "Manage Resource Profiles Policies"
    },
    {
      "name": "SAML Configuration",
      "description": "Manage SAML Configuration"
    },
    {
      "name": "Step Up Authentication",
      "description": "Manage service identity association to identity provider"
    },
    {
      "name": "System Announcements",
      "description": "Manage the system announcements"
    },
    {
      "name": "Tag Access Request Settings",
      "description": "Manage access request settings for a user tag"
    },
    {
      "name": "Tag Access Requests",
      "description": "Browse tags available for access request"
    },
    {
      "name": "Task Scheduler",
      "description": "Manage Tasks"
    },
    {
      "name": "User Identity Attributes",
      "description": "Manage User Identity Attributes"
    },
    {
      "name": "User Resources",
      "description": "Manage User Built Resources"
    },
    {
      "name": "User Tags",
      "description": "Manage User Tags"
    },
    {
      "name": "Users, Service Identities and AI Identities",
      "description": "Manage Users, Service Identities and AI Identities"
    },
    {
      "name": "Workload Identity Providers",
      "description": "Manage workload identity providers"
    },
    {
      "name": "Workload SCIM Identity Providers",
      "description": "Manage service identity association to SCIM provisioning for identity provider"
    },
    {
      "name": "Workload Service Identity Providers",
      "description": "Manage service identity association to identity provider"
    },
    {
      "name": "User Tag Owner",
      "description": "Tag Owners manage the tag memberships of their owned tags"
    },
    {
      "name": "Shared Signals - Catalog",
      "description": "Manage shared signals catalog data"
    },
    {
      "name": "Shared Signals - Issuers",
      "description": "Manage shared signals issuers"
    },
    {
      "name": "Shared Signals - Receivers",
      "description": "Manage shared signals receivers"
    },
    {
      "name": "Shared Signals - Results",
      "description": "Query shared signals processing results"
    }
  ],
  "paths": {
    "/api/workload/identity-providers": {
      "put": {
        "tags": [
          "Workload Identity Providers"
        ],
        "summary": "Update workload identity provider",
        "operationId": "updateIdentityProvider",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "The existing identity provider to update.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/AwsProvider"
                  },
                  {
                    "$ref": "#/components/schemas/OpenIdConnectProvider"
                  },
                  {
                    "$ref": "#/components/schemas/SpiffeProvider"
                  }
                ]
              }
            }
          },
          "required": "true"
        },
        "responses": {
          "200": {
            "description": "identity provider updated",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/AwsProvider"
                    },
                    {
                      "$ref": "#/components/schemas/OpenIdConnectProvider"
                    },
                    {
                      "$ref": "#/components/schemas/SpiffeProvider"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "identity provider not found"
          },
          "405": {
            "description": "invalid identity provider"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AwsProvider": {
        "required": [
          "idpType",
          "name"
        ],
        "type": "object",
        "description": "model of a AWS Provider",
        "discriminator": {
          "propertyName": "idpType"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/IdentityProvider"
          },
          {
            "type": "object",
            "properties": {
              "maxDuration": {
                "type": "integer",
                "description": "The maximum number of hours the client can request the AWS token be valid.",
                "format": "int32"
              },
              "idpType": {
                "type": "string"
              }
            }
          }
        ]
      },
      "OpenIdConnectProvider": {
        "required": [
          "idpType",
          "issuerUrl",
          "name"
        ],
        "type": "object",
        "description": "model of an OpenID Connect Provider",
        "discriminator": {
          "propertyName": "idpType"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/IdentityProvider"
          },
          {
            "type": "object",
            "properties": {
              "issuerUrl": {
                "type": "string"
              },
              "allowedAudiences": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "idpType": {
                "type": "string"
              }
            }
          }
        ]
      },
      "SpiffeProvider": {
        "description": "model of a SPIFFE Workload Identity Provider",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdentityProvider"
          },
          {
            "type": "object",
            "properties": {
              "bundleEndpoint": {
                "type": "string",
                "format": "uri"
              },
              "bundleProfile": {
                "$ref": "#/components/schemas/SpiffeBundleProfile"
              },
              "trustDomain": {
                "type": "string"
              }
            }
          }
        ],
        "required": [
          "bundleEndpoint",
          "bundleProfile",
          "trustDomain",
          "attributesMap"
        ]
      },
      "IdentityProvider": {
        "required": [
          "idpType",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "attributesMap": {
            "type": "array",
            "description": "Provider's identity attributes mapped to Britive service identity custom attributes.",
            "items": {
              "$ref": "#/components/schemas/AttributeMap"
            }
          },
          "validationWindow": {
            "type": "integer",
            "description": "The amount of time in seconds, after the token has been issued/signed, Britive will attempt to validate the unverified token.  Outside this window, token validation will fail.",
            "format": "int32"
          },
          "idpType": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "idpType"
        }
      },
      "SpiffeBundleProfile": {
        "description": "the SPIFFE bundle endpoint profile",
        "type": "string",
        "enum": [
          "https_web",
          "https_spiffe"
        ]
      },
      "AttributeMap": {
        "required": [
          "idpAttr",
          "userAttr"
        ],
        "type": "object",
        "properties": {
          "idpAttr": {
            "type": "string"
          },
          "userAttr": {
            "type": "string"
          }
        },
        "description": "Single identity provider attribute mapped to service identity custom attribute"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}
````

