internal KeyIdentityItem(Azure.KeyVault.Models.KeyItem keyItem, VaultUriHelper vaultUriHelper)
        {
            if (keyItem == null)
            {
                throw new ArgumentNullException("keyItem");
            }
            if (keyItem.Attributes == null)
            {
                throw new ArgumentException(KeyVaultProperties.Resources.InvalidKeyAttributes);
            }
            if (keyItem.Identifier == null)
            {
                throw new ArgumentException(KeyVaultProperties.Resources.InvalidKeyIdentifier);
            }

            SetObjectIdentifier(vaultUriHelper, keyItem.Identifier);

            Enabled       = keyItem.Attributes.Enabled;
            Expires       = keyItem.Attributes.Expires;
            NotBefore     = keyItem.Attributes.NotBefore;
            Created       = keyItem.Attributes.Created;
            Updated       = keyItem.Attributes.Updated;
            PurgeDisabled = keyItem.Attributes.PurgeDisabled;
            Tags          = (keyItem.Tags == null) ? null : keyItem.Tags.ConvertToHashtable();
        }
        internal KeyIdentityItem(Azure.KeyVault.Models.KeyItem keyItem, VaultUriHelper vaultUriHelper)
        {
            if (keyItem == null)
            {
                throw new ArgumentNullException("keyItem");
            }
            if (keyItem.Attributes == null)
            {
                throw new ArgumentException(KeyVaultProperties.Resources.InvalidKeyAttributes);
            }
            if (keyItem.Identifier == null)
            {
                throw new ArgumentException(KeyVaultProperties.Resources.InvalidKeyIdentifier);
            }

            SetObjectIdentifier(vaultUriHelper, keyItem.Identifier);

            Enabled       = keyItem.Attributes.Enabled;
            Expires       = keyItem.Attributes.Expires;
            NotBefore     = keyItem.Attributes.NotBefore;
            Created       = keyItem.Attributes.Created;
            Updated       = keyItem.Attributes.Updated;
            RecoveryLevel = keyItem.Attributes.RecoveryLevel;
            Tags          = (keyItem.Tags == null) ? null : keyItem.Tags.ConvertToHashtable();


            // the PurgeDisabled field was deprecated, but is kept in the
            // PSH SDK until the first breaking-change release.
            PurgeDisabled = false;
        }