func keyVaultParameters()

in pkg/dataplane/keyvault.go [55:96]


func keyVaultParameters(credentials any, rawNotAfter, rawNotBefore, rawRenewAfter, rawCannotRenewAfter *string) (azsecrets.SetSecretParameters, error) {
	for key, value := range map[string]*string{
		"NotAfter":         rawNotAfter,
		"NotBefore":        rawNotBefore,
		"RenewAfter":       rawRenewAfter,
		"CannotRenewAfter": rawCannotRenewAfter,
	} {
		if value == nil {
			return azsecrets.SetSecretParameters{}, fmt.Errorf("assumption violated, %q was nil", key)
		}
	}

	var notAfter, notBefore time.Time
	for from, to := range map[*string]*time.Time{
		rawNotAfter:  &notAfter,
		rawNotBefore: &notBefore,
	} {
		value, err := time.Parse(time.RFC3339, *from)
		if err != nil {
			return azsecrets.SetSecretParameters{}, err
		}
		*to = value
	}

	raw, err := json.Marshal(credentials)
	if err != nil {
		return azsecrets.SetSecretParameters{}, fmt.Errorf("failed to marshal credentials: %v", err)
	}

	return azsecrets.SetSecretParameters{
		Value: ptrTo(string(raw)),
		SecretAttributes: &azsecrets.SecretAttributes{
			Enabled:   ptrTo(true),
			Expires:   &notAfter,
			NotBefore: &notBefore,
		},
		Tags: map[string]*string{
			RenewAfterKeyVaultTag:       rawRenewAfter,
			CannotRenewAfterKeyVaultTag: rawCannotRenewAfter,
		},
	}, nil
}