Interface that the lifecycle of some resource is managed by the SDK at runtime.
Invoked by a caller to declare usership of the resource.
Invoked when a caller releases the resource. Returns a boolean indicating whether the resource has been fully unshared with this call (i.e. the caller was the only remaining user). Future calls on a fully unshared object would return false.