# Scim Configurations ## CreateSCIMConfiguration `client.Organizations.ScimConfigurations.New(ctx, body) (*OrganizationScimConfigurationNewResponse, error)` **post** `/gitpod.v1.OrganizationService/CreateSCIMConfiguration` Creates a new SCIM configuration for automated user provisioning. Use this method to: - Set up SCIM 2.0 provisioning from an identity provider - Generate a bearer token for SCIM API authentication - Link SCIM provisioning to an existing SSO configuration ### Examples - Create basic SCIM configuration: Creates a SCIM configuration linked to an SSO provider with default 1 year token expiration. ```yaml organizationId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" ssoConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ``` - Create SCIM configuration with custom token expiration: Creates a SCIM configuration with a 90-day token expiration. ```yaml organizationId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" ssoConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" tokenExpiresIn: "7776000s" ``` ### Parameters - `body OrganizationScimConfigurationNewParams` - `OrganizationID param.Field[string]` organization_id is the ID of the organization to create the SCIM configuration for - `SSOConfigurationID param.Field[string]` sso_configuration_id is the SSO configuration to link (required for user provisioning) - `Name param.Field[string]` name is a human-readable name for the SCIM configuration - `TokenExpiresIn param.Field[string]` token_expires_in is the duration until the token expires. Defaults to 1 year. Minimum 1 day, maximum 2 years. ### Returns - `type OrganizationScimConfigurationNewResponse struct{…}` - `Token string` token is the bearer token for SCIM API authentication. This is only returned once during creation - store it securely. - `ScimConfiguration ScimConfiguration` scim_configuration is the created SCIM configuration - `ID string` id is the unique identifier of the SCIM configuration - `CreatedAt Time` created_at is when the SCIM configuration was created - `OrganizationID string` organization_id is the ID of the organization this SCIM configuration belongs to - `TokenExpiresAt Time` token_expires_at is when the current SCIM token expires - `UpdatedAt Time` updated_at is when the SCIM configuration was last updated - `Enabled bool` enabled indicates if SCIM provisioning is active - `Name string` name is a human-readable name for the SCIM configuration - `SSOConfigurationID string` sso_configuration_id is the linked SSO configuration (optional) - `TokenExpiresAt Time` token_expires_at is when the token will expire ### Example ```go package main import ( "context" "fmt" "github.com/gitpod-io/gitpod-sdk-go" "github.com/gitpod-io/gitpod-sdk-go/option" ) func main() { client := gitpod.NewClient( option.WithBearerToken("My Bearer Token"), ) scimConfiguration, err := client.Organizations.ScimConfigurations.New(context.TODO(), gitpod.OrganizationScimConfigurationNewParams{ OrganizationID: gitpod.F("b0e12f6c-4c67-429d-a4a6-d9838b5da047"), SSOConfigurationID: gitpod.F("d2c94c27-3b76-4a42-b88c-95a85e392c68"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", scimConfiguration.Token) } ``` #### Response ```json { "token": "token", "scimConfiguration": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "createdAt": "2019-12-27T18:11:19.117Z", "organizationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "tokenExpiresAt": "2019-12-27T18:11:19.117Z", "updatedAt": "2019-12-27T18:11:19.117Z", "enabled": true, "name": "name", "ssoConfigurationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }, "tokenExpiresAt": "2019-12-27T18:11:19.117Z" } ``` ## DeleteSCIMConfiguration `client.Organizations.ScimConfigurations.Delete(ctx, body) (*OrganizationScimConfigurationDeleteResponse, error)` **post** `/gitpod.v1.OrganizationService/DeleteSCIMConfiguration` Removes a SCIM configuration from an organization. Use this method to: - Disable SCIM provisioning completely - Remove unused configurations - Clean up after migration ### Examples - Delete SCIM configuration: Removes a specific SCIM configuration. ```yaml scimConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ``` ### Parameters - `body OrganizationScimConfigurationDeleteParams` - `ScimConfigurationID param.Field[string]` scim_configuration_id is the ID of the SCIM configuration to delete ### Returns - `type OrganizationScimConfigurationDeleteResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/gitpod-io/gitpod-sdk-go" "github.com/gitpod-io/gitpod-sdk-go/option" ) func main() { client := gitpod.NewClient( option.WithBearerToken("My Bearer Token"), ) scimConfiguration, err := client.Organizations.ScimConfigurations.Delete(context.TODO(), gitpod.OrganizationScimConfigurationDeleteParams{ ScimConfigurationID: gitpod.F("d2c94c27-3b76-4a42-b88c-95a85e392c68"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", scimConfiguration) } ``` #### Response ```json {} ``` ## ListSCIMConfigurations `client.Organizations.ScimConfigurations.List(ctx, params) (*ScimConfigurationsPage[ScimConfiguration], error)` **post** `/gitpod.v1.OrganizationService/ListSCIMConfigurations` Lists SCIM configurations for an organization. Use this method to: - View all SCIM configurations - Monitor provisioning status - Audit SCIM settings ### Examples - List SCIM configurations: Shows all SCIM configurations for an organization. ```yaml pagination: pageSize: 20 ``` ### Parameters - `params OrganizationScimConfigurationListParams` - `Token param.Field[string]` Query param - `PageSize param.Field[int64]` Query param - `Pagination param.Field[OrganizationScimConfigurationListParamsPagination]` Body param - `Token string` Token for the next set of results that was returned as next_token of a PaginationResponse - `PageSize int64` Page size is the maximum number of results to retrieve per page. Defaults to 25. Maximum 100. ### Returns - `type ScimConfiguration struct{…}` SCIMConfiguration represents a SCIM 2.0 provisioning configuration - `ID string` id is the unique identifier of the SCIM configuration - `CreatedAt Time` created_at is when the SCIM configuration was created - `OrganizationID string` organization_id is the ID of the organization this SCIM configuration belongs to - `TokenExpiresAt Time` token_expires_at is when the current SCIM token expires - `UpdatedAt Time` updated_at is when the SCIM configuration was last updated - `Enabled bool` enabled indicates if SCIM provisioning is active - `Name string` name is a human-readable name for the SCIM configuration - `SSOConfigurationID string` sso_configuration_id is the linked SSO configuration (optional) ### Example ```go package main import ( "context" "fmt" "github.com/gitpod-io/gitpod-sdk-go" "github.com/gitpod-io/gitpod-sdk-go/option" ) func main() { client := gitpod.NewClient( option.WithBearerToken("My Bearer Token"), ) page, err := client.Organizations.ScimConfigurations.List(context.TODO(), gitpod.OrganizationScimConfigurationListParams{ Pagination: gitpod.F(gitpod.OrganizationScimConfigurationListParamsPagination{ PageSize: gitpod.F(int64(20)), }), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "pagination": { "nextToken": "nextToken" }, "scimConfigurations": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "createdAt": "2019-12-27T18:11:19.117Z", "organizationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "tokenExpiresAt": "2019-12-27T18:11:19.117Z", "updatedAt": "2019-12-27T18:11:19.117Z", "enabled": true, "name": "name", "ssoConfigurationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" } ] } ``` ## RegenerateSCIMToken `client.Organizations.ScimConfigurations.RegenerateToken(ctx, body) (*OrganizationScimConfigurationRegenerateTokenResponse, error)` **post** `/gitpod.v1.OrganizationService/RegenerateSCIMToken` Regenerates the bearer token for a SCIM configuration. Use this method to: - Rotate SCIM credentials - Recover from token compromise - Update IdP configuration ### Examples - Regenerate token: Creates a new bearer token with the same expiration duration as the previous token. ```yaml scimConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ``` - Regenerate token with new expiration: Creates a new bearer token with a custom 180-day expiration. ```yaml scimConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" tokenExpiresIn: "15552000s" ``` ### Parameters - `body OrganizationScimConfigurationRegenerateTokenParams` - `ScimConfigurationID param.Field[string]` scim_configuration_id is the ID of the SCIM configuration to regenerate token for - `TokenExpiresIn param.Field[string]` token_expires_in is the duration until the new token expires. If not specified, uses the same duration as the previous token. ### Returns - `type OrganizationScimConfigurationRegenerateTokenResponse struct{…}` - `Token string` token is the new bearer token for SCIM API authentication. This invalidates the previous token - store it securely. - `TokenExpiresAt Time` token_expires_at is when the new token will expire ### Example ```go package main import ( "context" "fmt" "github.com/gitpod-io/gitpod-sdk-go" "github.com/gitpod-io/gitpod-sdk-go/option" ) func main() { client := gitpod.NewClient( option.WithBearerToken("My Bearer Token"), ) response, err := client.Organizations.ScimConfigurations.RegenerateToken(context.TODO(), gitpod.OrganizationScimConfigurationRegenerateTokenParams{ ScimConfigurationID: gitpod.F("d2c94c27-3b76-4a42-b88c-95a85e392c68"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Token) } ``` #### Response ```json { "token": "token", "tokenExpiresAt": "2019-12-27T18:11:19.117Z" } ``` ## GetSCIMConfiguration `client.Organizations.ScimConfigurations.Get(ctx, body) (*OrganizationScimConfigurationGetResponse, error)` **post** `/gitpod.v1.OrganizationService/GetSCIMConfiguration` Retrieves a specific SCIM configuration. Use this method to: - View SCIM configuration details - Check if SCIM is enabled - Verify SSO linkage ### Examples - Get SCIM configuration: Retrieves details of a specific SCIM configuration. ```yaml scimConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ``` ### Parameters - `body OrganizationScimConfigurationGetParams` - `ScimConfigurationID param.Field[string]` scim_configuration_id is the ID of the SCIM configuration to get ### Returns - `type OrganizationScimConfigurationGetResponse struct{…}` - `ScimConfiguration ScimConfiguration` scim_configuration is the SCIM configuration identified by the ID - `ID string` id is the unique identifier of the SCIM configuration - `CreatedAt Time` created_at is when the SCIM configuration was created - `OrganizationID string` organization_id is the ID of the organization this SCIM configuration belongs to - `TokenExpiresAt Time` token_expires_at is when the current SCIM token expires - `UpdatedAt Time` updated_at is when the SCIM configuration was last updated - `Enabled bool` enabled indicates if SCIM provisioning is active - `Name string` name is a human-readable name for the SCIM configuration - `SSOConfigurationID string` sso_configuration_id is the linked SSO configuration (optional) ### Example ```go package main import ( "context" "fmt" "github.com/gitpod-io/gitpod-sdk-go" "github.com/gitpod-io/gitpod-sdk-go/option" ) func main() { client := gitpod.NewClient( option.WithBearerToken("My Bearer Token"), ) scimConfiguration, err := client.Organizations.ScimConfigurations.Get(context.TODO(), gitpod.OrganizationScimConfigurationGetParams{ ScimConfigurationID: gitpod.F("d2c94c27-3b76-4a42-b88c-95a85e392c68"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", scimConfiguration.ScimConfiguration) } ``` #### Response ```json { "scimConfiguration": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "createdAt": "2019-12-27T18:11:19.117Z", "organizationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "tokenExpiresAt": "2019-12-27T18:11:19.117Z", "updatedAt": "2019-12-27T18:11:19.117Z", "enabled": true, "name": "name", "ssoConfigurationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" } } ``` ## UpdateSCIMConfiguration `client.Organizations.ScimConfigurations.Update(ctx, body) (*OrganizationScimConfigurationUpdateResponse, error)` **post** `/gitpod.v1.OrganizationService/UpdateSCIMConfiguration` Updates a SCIM configuration. Use this method to: - Enable or disable SCIM provisioning - Link or unlink SSO configuration - Update configuration name ### Examples - Disable SCIM: Disables SCIM provisioning. ```yaml scimConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" enabled: false ``` - Link to SSO: Links SCIM configuration to an SSO provider. ```yaml scimConfigurationId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" ssoConfigurationId: "f53d2330-3795-4c5d-a1f3-453121af9c60" ``` ### Parameters - `body OrganizationScimConfigurationUpdateParams` - `ScimConfigurationID param.Field[string]` scim_configuration_id is the ID of the SCIM configuration to update - `Enabled param.Field[bool]` enabled controls whether SCIM provisioning is active - `Name param.Field[string]` name is a human-readable name for the SCIM configuration - `SSOConfigurationID param.Field[string]` sso_configuration_id is the SSO configuration to link ### Returns - `type OrganizationScimConfigurationUpdateResponse struct{…}` - `ScimConfiguration ScimConfiguration` scim_configuration is the updated SCIM configuration - `ID string` id is the unique identifier of the SCIM configuration - `CreatedAt Time` created_at is when the SCIM configuration was created - `OrganizationID string` organization_id is the ID of the organization this SCIM configuration belongs to - `TokenExpiresAt Time` token_expires_at is when the current SCIM token expires - `UpdatedAt Time` updated_at is when the SCIM configuration was last updated - `Enabled bool` enabled indicates if SCIM provisioning is active - `Name string` name is a human-readable name for the SCIM configuration - `SSOConfigurationID string` sso_configuration_id is the linked SSO configuration (optional) ### Example ```go package main import ( "context" "fmt" "github.com/gitpod-io/gitpod-sdk-go" "github.com/gitpod-io/gitpod-sdk-go/option" ) func main() { client := gitpod.NewClient( option.WithBearerToken("My Bearer Token"), ) scimConfiguration, err := client.Organizations.ScimConfigurations.Update(context.TODO(), gitpod.OrganizationScimConfigurationUpdateParams{ ScimConfigurationID: gitpod.F("d2c94c27-3b76-4a42-b88c-95a85e392c68"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", scimConfiguration.ScimConfiguration) } ``` #### Response ```json { "scimConfiguration": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "createdAt": "2019-12-27T18:11:19.117Z", "organizationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "tokenExpiresAt": "2019-12-27T18:11:19.117Z", "updatedAt": "2019-12-27T18:11:19.117Z", "enabled": true, "name": "name", "ssoConfigurationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" } } ``` ## Domain Types ### Scim Configuration - `type ScimConfiguration struct{…}` SCIMConfiguration represents a SCIM 2.0 provisioning configuration - `ID string` id is the unique identifier of the SCIM configuration - `CreatedAt Time` created_at is when the SCIM configuration was created - `OrganizationID string` organization_id is the ID of the organization this SCIM configuration belongs to - `TokenExpiresAt Time` token_expires_at is when the current SCIM token expires - `UpdatedAt Time` updated_at is when the SCIM configuration was last updated - `Enabled bool` enabled indicates if SCIM provisioning is active - `Name string` name is a human-readable name for the SCIM configuration - `SSOConfigurationID string` sso_configuration_id is the linked SSO configuration (optional)