code: func (s *Server) GetResource(ctx context.Context, request *api.GetResourceRequest) (*api.GetResourceResponse, error) {
  	if request.ResourceID == "" {
  		return nil, status.Errorf(codes.InvalidArgument, "resource ID must be present")
  	}
  	var resource *api.Resource
  	s.store.View(func(tx store.ReadTx) {
  		resource = store.GetResource(tx, request.ResourceID)
  	})
  
  	if resource == nil {
  		return nil, status.Errorf(codes.NotFound, "resource %s not found", request.ResourceID)
  	}
  
  	return &api.GetResourceResponse{Resource: resource}, nil
  }
docs: // GetResource returns a `GetResourceResponse` with a `Resource` with the same
  // id as `GetResourceRequest.Resource`
  // - Returns `NotFound` if the Resource with the given id is not found.
  // - Returns `InvalidArgument` if the `GetResourceRequest.Resource` is empty.
  // - Returns an error if getting fails.