protected override void ProcessRecord()
        {
            if (this.VM.OSProfile == null)
            {
                this.VM.OSProfile = new OSProfile();
            }

            if (this.VM.OSProfile.Secrets == null)
            {
                this.VM.OSProfile.Secrets = new List <VaultSecretGroup>();
            }

            int i = 0;

            for (; i <= this.VM.OSProfile.Secrets.Count; i++)
            {
                if (i == this.VM.OSProfile.Secrets.Count)
                {
                    var sourceVault = new SourceVaultReference {
                        ReferenceUri = this.SourceVaultId
                    };

                    var vaultCertificates = new List <VaultCertificate> {
                        new VaultCertificate()
                        {
                            CertificateStore = this.CertificateStore,
                            CertificateUrl   = this.CertificateUrl,
                        }
                    };

                    this.VM.OSProfile.Secrets.Add(
                        new VaultSecretGroup()
                    {
                        SourceVault       = sourceVault,
                        VaultCertificates = vaultCertificates,
                    });

                    break;
                }

                if (this.VM.OSProfile.Secrets[i].SourceVault != null && this.VM.OSProfile.Secrets[i].SourceVault.ReferenceUri.Equals(this.SourceVaultId))
                {
                    if (this.VM.OSProfile.Secrets[i].VaultCertificates == null)
                    {
                        this.VM.OSProfile.Secrets[i].VaultCertificates = new List <VaultCertificate>();
                    }

                    this.VM.OSProfile.Secrets[i].VaultCertificates.Add(
                        new VaultCertificate()
                    {
                        CertificateStore = this.CertificateStore,
                        CertificateUrl   = this.CertificateUrl,
                    });

                    break;
                }
            }

            WriteObject(this.VM);
        }
        public void SetCertificateInfo(VirtualMachine vm)
        {
            SourceVaultReference vault = GetDefaultSourceVault();

            VaultCertificate vmCert = GetDefaultVaultCert();

            var secretGroup = new VaultSecretGroup()
            {
                SourceVault = vault, VaultCertificates = new List <VaultCertificate>()
                {
                    vmCert
                }
            };

            vm.OSProfile.Secrets = new List <VaultSecretGroup>()
            {
                secretGroup
            };
        }