github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/controller/imagemetadata/register.go (about)

     1  // Copyright 2022 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package imagemetadata
     5  
     6  import (
     7  	"reflect"
     8  
     9  	apiservererrors "github.com/juju/juju/apiserver/errors"
    10  	"github.com/juju/juju/apiserver/facade"
    11  )
    12  
    13  // Register is called to expose a package of facades onto a given registry.
    14  func Register(registry facade.FacadeRegistry) {
    15  	registry.MustRegister("ImageMetadata", 3, func(ctx facade.Context) (facade.Facade, error) {
    16  		return newAPI(ctx)
    17  	}, reflect.TypeOf((*API)(nil)))
    18  }
    19  
    20  // newAPI returns a new cloud image metadata API facade.
    21  func newAPI(ctx facade.Context) (*API, error) {
    22  	if !ctx.Auth().AuthController() {
    23  		return nil, apiservererrors.ErrPerm
    24  	}
    25  
    26  	return &API{}, nil
    27  }