private KeyVaultCredentialSettings DeSerializeKeyVaultCredentialSettings(string category, string input)
        {
            KeyVaultCredentialSettings kvtSettings = new KeyVaultCredentialSettings();

            if (!string.IsNullOrEmpty(input))
            {
                try
                {
                    // we only print the public settings
                    PublicKeyVaultCredentialSettings publicSettings = JsonConvert.DeserializeObject <PublicKeyVaultCredentialSettings>(input);

                    if (publicSettings != null)
                    {
                        kvtSettings.CredentialName = publicSettings.CredentialName;
                        kvtSettings.Enable         = publicSettings.Enable;

                        if (kvtSettings.Enable)
                        {
                            kvtSettings.ServicePrincipalName   = "***";
                            kvtSettings.ServicePrincipalSecret = "***";
                            kvtSettings.AzureKeyVaultUrl       = "***";
                        }
                    }
                }
                catch (JsonReaderException jre)
                {
                    WriteVerboseWithTimestamp("Category:" + category);
                    WriteVerboseWithTimestamp("Message:" + input);
                    WriteVerboseWithTimestamp(jre.ToString());
                }
            }

            return(kvtSettings);
        }
        /// <summary>
        /// Creates and returns <see cref="PublicKeyVaultCredentialSettings"/> object.
        /// </summary>
        protected override void ProcessRecord()
        {
            KeyVaultCredentialSettings settings = new KeyVaultCredentialSettings();

            settings.Enable = (this.Enable.IsPresent) ? this.Enable.ToBool() : false;

            settings.CredentialName = (this.CredentialName == null) ? null : this.CredentialName;

            settings.ServicePrincipalName = (this.ServicePrincipalName == null) ? null : this.ServicePrincipalName;

            settings.ServicePrincipalSecret = (this.ServicePrincipalSecret == null) ?
                                              null :
                                              SecureStringHelper.ConvertToUnsecureString(this.ServicePrincipalSecret);

            settings.AzureKeyVaultUrl = (this.AzureKeyVaultUrl == null) ? null : this.AzureKeyVaultUrl;


            WriteObject(settings);
        }
        /// <summary>
        /// Creates and returns <see cref="PublicKeyVaultCredentialSettings"/> object.
        /// </summary>
        protected override void ProcessRecord()
        {
            KeyVaultCredentialSettings settings = new KeyVaultCredentialSettings();

            settings.Enable = (this.Enable.IsPresent) ? this.Enable.ToBool() : false;
            
            settings.CredentialName = (this.CredentialName == null) ? null : this.CredentialName;
 
            settings.ServicePrincipalName = (this.ServicePrincipalName == null) ? null : this.ServicePrincipalName;

            settings.ServicePrincipalSecret = (this.ServicePrincipalSecret == null) ? 
                                              null : 
                                              SecureStringHelper.ConvertToUnsecureString(this.ServicePrincipalSecret);

            settings.AzureKeyVaultUrl = (this.AzureKeyVaultUrl == null) ? null : this.AzureKeyVaultUrl;


            WriteObject(settings);
        }
        private KeyVaultCredentialSettings DeSerializeKeyVaultCredentialSettings(string category, string input)
        {
            KeyVaultCredentialSettings kvtSettings = new KeyVaultCredentialSettings();

            if (!string.IsNullOrEmpty(input))
            {
                try
                {
                    // we only print the public settings
                    PublicKeyVaultCredentialSettings publicSettings = JsonConvert.DeserializeObject<PublicKeyVaultCredentialSettings>(input);

                    if (publicSettings != null)
                    {
                        kvtSettings.CredentialName = publicSettings.CredentialName;
                        kvtSettings.Enable = publicSettings.Enable;

                        if (kvtSettings.Enable)
                        {
                            kvtSettings.ServicePrincipalName = "***";
                            kvtSettings.ServicePrincipalSecret = "***";
                            kvtSettings.AzureKeyVaultUrl = "***";
                        }
                    }
                }
                catch (JsonReaderException jre)
                {
                    WriteVerboseWithTimestamp("Category:" + category);
                    WriteVerboseWithTimestamp("Message:" + input);
                    WriteVerboseWithTimestamp(jre.ToString());
                }
            }

            return kvtSettings;
        }