public async Task UpdateKeyRotationPolicy()
        {
            string name = Recording.GenerateId();

            await Client.CreateRsaKeyAsync(new CreateRsaKeyOptions(name));

            RegisterForCleanup(name);

            KeyRotationPolicy policy = new()
            {
                ExpiresIn       = "P90D",
                LifetimeActions =
                {
                    new KeyRotationLifetimeAction(KeyRotationPolicyAction.Rotate)
                    {
                        TimeBeforeExpiry = "P10D",
                    }
                }
            };

            KeyRotationPolicy updatedPolicy = await Client.UpdateKeyRotationPolicyAsync(name, policy);

            Assert.AreEqual(policy.ExpiresIn, updatedPolicy.ExpiresIn);

            // Notify policy is always present and can only be updated.
            Assert.That(updatedPolicy.LifetimeActions, Has.One.Matches <KeyRotationLifetimeAction>(action => action.Action == KeyRotationPolicyAction.Notify));

            KeyRotationLifetimeAction rotateAction = updatedPolicy.LifetimeActions.Single(p => p.Action == KeyRotationPolicyAction.Rotate);

            Assert.AreEqual(policy.LifetimeActions[0].Action, rotateAction.Action);
            Assert.AreEqual(policy.LifetimeActions[0].TimeAfterCreate, rotateAction.TimeAfterCreate);
            Assert.AreEqual(policy.LifetimeActions[0].TimeBeforeExpiry, rotateAction.TimeBeforeExpiry);
        }
 public PSKeyRotationLifetimeAction(KeyRotationLifetimeAction keyRotationLifetimeAction)
 {
     Action           = keyRotationLifetimeAction.Action.ToString();
     TimeAfterCreate  = keyRotationLifetimeAction.TimeAfterCreate;
     TimeBeforeExpiry = keyRotationLifetimeAction.TimeBeforeExpiry;
 }