github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/client/credentialmanager/client.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package credentialmanager
     5  
     6  import (
     7  	"github.com/juju/juju/apiserver/common/credentialcommon"
     8  	apiservererrors "github.com/juju/juju/apiserver/errors"
     9  	"github.com/juju/juju/apiserver/facade"
    10  	"github.com/juju/juju/rpc/params"
    11  )
    12  
    13  // CredentialManager defines the methods on credentialmanager API endpoint.
    14  type CredentialManager interface {
    15  	InvalidateModelCredential(params.InvalidateCredentialArg) (params.ErrorResult, error)
    16  }
    17  
    18  type CredentialManagerAPI struct {
    19  	*credentialcommon.CredentialManagerAPI
    20  
    21  	resources facade.Resources
    22  }
    23  
    24  var _ CredentialManager = (*CredentialManagerAPI)(nil)
    25  
    26  func internalNewCredentialManagerAPI(backend credentialcommon.StateBackend, resources facade.Resources, authorizer facade.Authorizer) (*CredentialManagerAPI, error) {
    27  	if authorizer.GetAuthTag() == nil || !authorizer.AuthClient() {
    28  		return nil, apiservererrors.ErrPerm
    29  	}
    30  
    31  	return &CredentialManagerAPI{
    32  		resources:            resources,
    33  		CredentialManagerAPI: credentialcommon.NewCredentialManagerAPI(backend),
    34  	}, nil
    35  }