IAM
Install Dependency
Package: AffinidiTdk.IamClient
dotnet add package AffinidiTdk.IamClientCheck the latest version on nuget.org or view the source on GitHub.
Classes and Methods
Projects API
Use the Projects API to manage your projects including providing access to other users on your projects.
AddPrincipalToProject
Add principal to the project to get access.
Parameters
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
Configuration config = new Configuration();
config.AddApiKey("authorization", projectScopedToken);
ProjectsApi api = new ProjectsApi(config);
var principalId = "<PRINCIPAL-ID>";
var principalType = "<PRINCIPAL-TYPE>";
AddUserToProjectInput input = new AddUserToProjectInput(principalId, principalType);
api.AddPrincipalToProject(input);CreateProject
Create a project for your account.
Parameters
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
ProjectsApi api = new ProjectsApi(config);
var projectName = "<PROJECT-NAME>";
CreateProjectInput input = new CreateProjectInput(projectName);
ProjectDto result = api.CreateProject(input);DeletePrincipalFromProject
Delete principal (user or PAT) from the project to remove access.
Parameters
principalId
String
RequiredprincipalType
String
Requireduser for User or token for Personal Access Token.Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
// Pass the User Token Auth generated from AuthProvider package
Configuration config = new Configuration();
config.AddApiKey("authorization", projectScopedToken);
ProjectsApi api = new ProjectsApi(config);
var principalId = "<PRINCIPAL-ID>";
var principalType = "<PRINCIPAL-TYPE>";
api.DeletePrincipalFromProject(principalId, principalType);ListPrincipalsOfProject
Get the list of principals assigned to the project.
No parameters required.
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
// Pass the User Token Auth generated from AuthProvider package
Configuration config = new Configuration();
config.AddApiKey("authorization", projectScopedToken);
ProjectsApi api = new ProjectsApi(config);
UserList result = api.ListPrincipalsOfProject();ListProject
Get the list of projects.
No parameters required.
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
// Pass the User Token Auth generated from AuthProvider package
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
ProjectsApi api = new ProjectsApi(config);
ProjectList result = api.ListProject();UpdateProject
Update the project details.
Parameters
projectId
String
RequiredExample
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
ProjectsApi api = new ProjectsApi(config);
var projectId = "projectId_example";
var newProjectName = "<PROJECT-NAME>";
UpdateProjectInput input = new UpdateProjectInput(newProjectName);
ProjectDto result = api.UpdateProject(projectId, input);Policies API
Use the Policies API to manage access to your projects and related resources for other users.
GetPolicies
Retrieves the policy attached to a principal.
Parameters
principalId
String
RequiredprincipalType
String
Requireduser for User or token for Personal Access Token.Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
Configuration config = new Configuration();
config.AddApiKey("authorization", projectScopedToken);
PoliciesApi api = new PoliciesApi(config);
var principalId = "<PRINCIPAL-ID>";
var principalType = "<PRINCIPAL-TYPE>";
PolicyDto result = api.GetPolicies(principalId, principalType);UpdatePolicies
Update the Policy for the principal.
Parameters
principalId
String
RequiredprincipalType
String
Requireduser for User or token for Personal Access Token.Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
Configuration config = new Configuration();
config.AddApiKey("authorization", projectScopedToken);
PoliciesApi api = new PoliciesApi(config);
var principalId = "<PRINCIPAL-ID>";
var principalType = "<PRINCIPAL-TYPE>";
var policyName = "<POLICY-NAME>";
var projectId = "<PROJECT-ID>";
PolicyStatementDto policyData = new PolicyStatementDto();
policyData.Action = ["<ACTIONS>"];
policyData.Effect = "Allow";
policyData.Principal = ["<PRINCIPAL-ID>"];
policyData.Resource = ["<RESOURCE>"];
List<PolicyStatementDto> policyStatement = [policyData];
PolicyDto input = new PolicyDto(name: policyName, principalId: principalId, projectId: projectId, statement: policyStatement);
PolicyDto result = api.UpdatePolicies(principalId, principalType, input);Secure Token Exchange (STS) API
Use the STS (Secure Token Exchange) API to create a Project Scoped Token and get the current session information.
CreateProjectScopedToken
Create a Project Scoped Token to access resources in the project.
Parameters
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
StsApi api = new StsApi(config);
var projectId = "<PROJECT-ID>";
CreateProjectScopedTokenInput input = new CreateProjectScopedTokenInput(projectId);
CreateProjectScopedTokenOutput result = api.CreateProjectScopedToken(input);Whoami
Retrieve the principal information of the current user.
No parameters required.
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
StsApi api = new StsApi(config);
WhoamiDto result = api.Whoami();Tokens API
Use the Tokens API to create a Personal Access Token (PAT) to call Affinidi services on your behalf. Alternatively, use the Token command from Affinidi CLI.
CreateToken
Create a Personal Access Token.
Parameters
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
TokensApi api = new TokensApi(config);
CreateTokenInput input = new CreateTokenInput();
TokenDto result = api.CreateToken(input);DeleteToken
Delete a Personal Access Token.
Parameters
tokenId
String
RequiredExample
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
TokensApi api = new TokensApi(config);
Guid tokenId = new Guid();
api.DeleteToken(tokenId);GetToken
Retrieve the Personal Access Token details.
Parameters
tokenId
String
RequiredExample
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
TokensApi api = new TokensApi(config);
Guid tokenId = new Guid();
TokenDto result = api.GetToken(tokenId);ListProjectsOfToken
Get the list of principals assigned to the project.
No parameters required.
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
TokensApi api = new TokensApi(config);
Guid tokenId = new Guid();
ProjectWithPolicyList result = api.ListProjectsOfToken(tokenId);ListToken
Get the list of Personal Access Token.
No parameters required.
Example
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
TokensApi api = new TokensApi(config);
TokenList result = api.ListToken();UpdateToken
Update an existing Personal Access Token.
Parameters
tokenId
String
RequiredExample
using AffinidiTdk.IamClient.Api;
using AffinidiTdk.IamClient.Client;
using AffinidiTdk.IamClient.Model;
string userAccessToken = "<USER-ACCESS-TOKEN>";
Configuration config = new Configuration();
config.AddApiKey("authorization", userAccessToken);
TokensApi api = new TokensApi(config);
Guid tokenId = new Guid();
UpdateTokenInput input = new UpdateTokenInput();
TokenDto result = api.UpdateToken(tokenId, input);Glad to hear it! Please tell us how we can improve more.
Sorry to hear that. Please tell us how we can improve.
Thank you for sharing your feedback so we can improve your experience.