/// <summary> /// Initializes a new instance of the <see cref="SshGenerationRequest"/> class. /// Use to request a new SSH Credential /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="parameters">Optional parameters (defaults to key length 2048 and no SSH Comment)</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public SshGenerationRequest(string credentialName, SshGenerationParameters parameters = null, OverwiteMode overwriteMode = OverwiteMode.converge) { Name = credentialName; Type = CredentialType.SSH; Parameters = parameters ?? _defaultParams; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="PasswordGenerationRequest"/> class. /// Use to Request a new Password /// </summary> /// <param name="credentialName">Name of the credential</param> /// <param name="parameters">Variables for password generation</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public PasswordGenerationRequest(string credentialName, PasswordGenerationParameters parameters, OverwiteMode overwriteMode = OverwiteMode.converge) { Name = credentialName; Type = CredentialType.Password; Parameters = parameters; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="JsonSetRequest"/> class. /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="value">Value of the credential to set</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public JsonSetRequest(string credentialName, string value, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { Name = credentialName; Type = CredentialType.JSON; Value = new JsonCredential(value); AdditionalPermissions = additionalPermissions; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="SshGenerationRequest"/> class. /// Use to request a new SSH Credential /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="parameters">Optional parameters (defaults to key length 2048 and no SSH Comment)</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public SshGenerationRequest(string credentialName, SshGenerationParameters parameters = null, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { Name = credentialName; Type = CredentialType.SSH; Parameters = parameters ?? defaultParams; Mode = overwriteMode; AdditionalPermissions = additionalPermissions; }
/// <summary> /// Initializes a new instance of the <see cref="UserGenerationRequest"/> class. /// Use to request a new <see cref="UserCredential"/> /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="parameters">Variables for username and password generation</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public UserGenerationRequest(string credentialName, UserGenerationParameters parameters, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { Name = credentialName; Type = CredentialType.User; Parameters = parameters; AdditionalPermissions = additionalPermissions; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="PasswordSetRequest"/> class. /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="password">Value of the credential to set</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public PasswordSetRequest(string credentialName, string password, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { Name = credentialName; Type = CredentialType.Password; Value = new PasswordCredential(password); AdditionalPermissions = additionalPermissions; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="RsaGenerationRequest"/> class. /// Use to request a new RSA Credential /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="keyLength">Optional Key Length (default: 2048)</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public RsaGenerationRequest(string credentialName, CertificateKeyLength keyLength = CertificateKeyLength.Length_2048, OverwiteMode overwriteMode = OverwiteMode.converge) { Name = credentialName; Type = CredentialType.RSA; Parameters = new KeyParameters { KeyLength = keyLength }; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="RsaSetRequest"/> class. /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="privateKey">Private key for the credential</param> /// <param name="publicKey">Public key for the credential</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public RsaSetRequest(string credentialName, string privateKey, string publicKey, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { Name = credentialName; Type = CredentialType.RSA; Value = new RsaCredential { PrivateKey = privateKey, PublicKey = publicKey }; AdditionalPermissions = additionalPermissions; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="UserSetRequest"/> class. /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="userName">Name of the user</param> /// <param name="password">Password of the user</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public UserSetRequest(string credentialName, string userName, string password, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { Name = credentialName; Type = CredentialType.User; Value = new UserCredential { Username = userName, Password = password }; AdditionalPermissions = additionalPermissions; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="RsaGenerationRequest"/> class. /// Use to request a new RSA Credential /// </summary> /// <param name="credentialName">Name of credential</param> /// <param name="keyLength">Optional Key Length (default: 2048)</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public RsaGenerationRequest(string credentialName, CertificateKeyLength keyLength = CertificateKeyLength.Length_2048, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { Name = credentialName; Type = CredentialType.RSA; Parameters = new KeyParameters { KeyLength = keyLength }; AdditionalPermissions = additionalPermissions; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="CertificateSetRequest"/> class. /// For writing a certificate to CredHub /// </summary> /// <param name="credentialName">Name of credential to set</param> /// <param name="privateKey">Private key value of credential to set</param> /// <param name="certificate">Certificate value of credential to set</param> /// <param name="certificateAuthority">Certificate authority value of credential to set</param> /// <param name="certificateAuthorityName">Name of CA credential in credhub that has signed this certificate</param> /// <param name="additionalPermissions">List of additional permissions to set on credential</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> /// <remarks>Must include either the CA or CA Name</remarks> public CertificateSetRequest(string credentialName, string privateKey, string certificate, string certificateAuthority = null, string certificateAuthorityName = null, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite) { if (!string.IsNullOrEmpty(certificateAuthority) && !string.IsNullOrEmpty(certificateAuthorityName)) { throw new ArgumentException("You must specify either the CA Certificate or the name, not both"); } Name = credentialName; Type = CredentialType.Certificate; Value = new CertificateCredential { PrivateKey = privateKey, Certificate = certificate, CertificateAuthority = certificateAuthority, CertificateAuthorityName = certificateAuthorityName }; AdditionalPermissions = additionalPermissions; Mode = overwriteMode; }
/// <summary> /// Initializes a new instance of the <see cref="CertificateGenerationRequest"/> class. /// Use to request a new Certificate /// </summary> /// <param name="credentialName">Name of the credential</param> /// <param name="parameters">Variables for certificate generation</param> /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param> public CertificateGenerationRequest(string credentialName, CertificateGenerationParameters parameters, OverwiteMode overwriteMode = OverwiteMode.converge) { var subjects = new List <string> { parameters.CommonName, parameters.Organization, parameters.OrganizationUnit, parameters.Locality, parameters.State, parameters.Country }; if (!AtLeastOneProvided(subjects)) { throw new ArgumentException("At least one subject value, such as common name or organization must be defined to generate the certificate"); } if (string.IsNullOrEmpty(parameters.CertificateAuthority) && !parameters.IsCertificateAuthority && !parameters.SelfSign) { throw new ArgumentException("At least one signing parameter must be specified"); } Name = credentialName; Type = CredentialType.Certificate; Parameters = parameters; Mode = overwriteMode; }