public KeyVaultAndSecretReference(SourceVault sourceVault, string secretUrl)
        {
            if (sourceVault == null)
            {
                throw new ArgumentNullException(nameof(sourceVault));
            }
            if (secretUrl == null)
            {
                throw new ArgumentNullException(nameof(secretUrl));
            }

            SourceVault = sourceVault;
            SecretUrl   = secretUrl;
        }
        public KeyVaultAndKeyReference(SourceVault sourceVault, string keyUrl)
        {
            if (sourceVault == null)
            {
                throw new ArgumentNullException(nameof(sourceVault));
            }
            if (keyUrl == null)
            {
                throw new ArgumentNullException(nameof(keyUrl));
            }

            SourceVault = sourceVault;
            KeyUrl      = keyUrl;
        }
        internal static KeyVaultAndSecretReference DeserializeKeyVaultAndSecretReference(JsonElement element)
        {
            SourceVault sourceVault = default;
            string      secretUrl   = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("sourceVault"))
                {
                    sourceVault = SourceVault.DeserializeSourceVault(property.Value);
                    continue;
                }
                if (property.NameEquals("secretUrl"))
                {
                    secretUrl = property.Value.GetString();
                    continue;
                }
            }
            return(new KeyVaultAndSecretReference(sourceVault, secretUrl));
        }