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 }