/// If true, will treat `FilePathOrCanisterId` as a canister id and get the definition from the canister. Otherwise will treat it as a file path and get the definition from the file
/// </summary>
publicboolGetDefinitionFromCanister{get;}
/// <summary>
/// The file path to a local *.did file to get definition from or the canister id, depending on `GetDefinitionFromCanister` value
/// </summary>
publicstringFilePathOrCanisterId{get;}
/// <summary>
/// If true, removes all files in the output directory before regeneration, otherwise does nothing. Defaults to true
/// </summary>
publicboolPurgeOutputDirectory{get;}
/// <summary>
/// The base namespace to use in the generated files
/// </summary>
publicstringNamespace{get;}
/// <summary>
/// If true, there will be no folders, all files will be in the same directory
/// </summary>
publicstringOutputDirectory{get;}
/// <summary>
/// If true, there will be no folders, all files will be in the same directory
/// </summary>
publicboolNoFolders{get;}
/// <summary>
/// If true, the nullable C# feature will be used
/// </summary>
publicboolFeatureNullable{get;}
/// <summary>
/// If true, variant classes will be generated with properties instead of methods
/// </summary>
publicboolVariantsUseProperties{get;}
/// <summary>
/// If true, the names of properties and methods will keep the raw candid name.
/// Otherwise they will be converted to something prettier
/// </summary>
publicboolKeepCandidCase{get;}
/// <summary>
/// If true, OptionalValue will be used for opt values
/// Otherwise will use just the nullable class values or nullable struct
/// Defaults to true
/// </summary>
publicboolOverrideOptionalValue{get;}
/// <summary>
/// Optional. The url of the boundry node for the internet computer. Defaults to ic0.app
/// </summary>
publicUri?BoundryNodeUrl{get;}
/// <summary>
/// Optional. Specifies options for each candid type in the definition.
/// <param name="name">The name of the client class and file to use</param>
/// <param name="namespace">The base namespace to use in the generated files</param>
/// <param name="getDefinitionFromCanister">If true, will treat <paramref name="filePathOrCandidId"/> as a canister id and get the definition from the canister. Otherwise will treat it as a file path and get the definition from the file</param>
/// <param name="filePathOrCandidId">The file path to a local *.did file to get definition from or the canister id, depending on <paramref name="getDefinitionFromCanister"/> value</param>
/// <param name="outputDirectory">The output directory to generate the client files</param>
/// <param name="purgeOutputDirectory">If true, removes all files in the output directory before regeneration. Defaults to true</param>
/// <param name="noFolders">If true, there will be no folders, all files will be in the same directory</param>
/// <param name="featureNullable">If true, the nullable C# feature will be used</param>
/// <param name="variantsUseProperties">If true, variant classes will be generated with properties instead of methods</param>
/// <param name="keepCandidCase">If true, the names of properties and methods will keep the raw candid name. Otherwise they will be converted to something prettier</param>
/// <param name="overrideOptionalValue">If false, OptionalValue will be used for opt values, Otherwise will use just the nullable class values or nullable struct where possible. Defaults to false</param>
/// <param name="boundryNodeUrl">Optional. The url of the boundry node for the internet computer. Defaults to ic0.app</param>
/// <param name="types">Optional. Specifies options for each candid type in the definition</param>
publicClientGenerationOptions(
stringname,
string@namespace,
boolgetDefinitionFromCanister,
stringfilePathOrCandidId,
stringoutputDirectory,
boolpurgeOutputDirectory=true,
boolnoFolders=false,
boolfeatureNullable=false,
boolvariantsUseProperties=false,
boolkeepCandidCase=false,
booloverrideOptionalValue=false,
Uri?boundryNodeUrl=null,
Dictionary<string,NamedTypeOptions>?types=null
)
{
if(string.IsNullOrWhiteSpace(name))
{
thrownewArgumentNullException(nameof(name));
}
// Trim whitespace and replace spaces with underscores