func FormatManagedIdentityCredentialsForStorage()

in pkg/dataplane/keyvault.go [30:53]


func FormatManagedIdentityCredentialsForStorage(identifier string, credentials ManagedIdentityCredentials) (string, azsecrets.SetSecretParameters, error) {
	var rawNotAfter, rawNotBefore, rawRenewAfter, rawCannotRenewAfter *string
	switch len(credentials.ExplicitIdentities) {
	case 0:
		rawNotAfter = credentials.NotAfter
		rawNotBefore = credentials.NotBefore
		rawRenewAfter = credentials.RenewAfter
		rawCannotRenewAfter = credentials.CannotRenewAfter
	case 1:
		rawNotAfter = credentials.ExplicitIdentities[0].NotAfter
		rawNotBefore = credentials.ExplicitIdentities[0].NotBefore
		rawRenewAfter = credentials.ExplicitIdentities[0].RenewAfter
		rawCannotRenewAfter = credentials.ExplicitIdentities[0].CannotRenewAfter
	default:
		return "", azsecrets.SetSecretParameters{}, fmt.Errorf("assumption violated, found %d explicit identities, expected none, or one", len(credentials.ExplicitIdentities))
	}

	parameters, err := keyVaultParameters(credentials, rawNotAfter, rawNotBefore, rawRenewAfter, rawCannotRenewAfter)
	if err != nil {
		return "", azsecrets.SetSecretParameters{}, err
	}

	return IdentifierForManagedIdentityCredentials(identifier), parameters, nil
}