// Copyright Epic Games, Inc. All Rights Reserved.
using System.Collections.Generic;
using EpicGames.Horde.Accounts;
#pragma warning disable CA1054 // URI-like parameters should not be strings
namespace EpicGames.Horde.ServiceAccounts
{
///
/// Creates a new user account
///
/// Name of the account
/// Description for the account
/// Claims for the user
/// Whether the account is enabled
public record CreateServiceAccountRequest(string Name, string Description, List Claims, bool? Enabled = true);
///
/// Response from the request to create a new user account
///
/// The created account id
/// Secret used to auth with this account
public record CreateServiceAccountResponse(ServiceAccountId Id, string SecretToken);
///
/// Update request for a user account
///
/// Name of the account
/// Description for the account
/// Claims for the user
/// Request that the token get reset
/// Whether the account is enabled
public record UpdateServiceAccountRequest(string? Name = null, string? Description = null, List? Claims = null, bool? ResetToken = null, bool? Enabled = null);
///
/// Response from updating a user account
///
public record UpdateServiceAccountResponse(string? NewSecretToken = null);
///
/// Creates a new user account
///
/// Id of the account
/// Claims for the user
/// Description for the account
/// Whether the account is enabled
public record GetServiceAccountResponse(ServiceAccountId Id, List Claims, string Description, bool Enabled);
}