Class InstanceServiceImpl

All Implemented Interfaces:
InstanceServiceGrpc.AsyncService, io.grpc.BindableService

public final class InstanceServiceImpl extends InstanceServiceGrpc.InstanceServiceImplBase
  • Constructor Details

    • InstanceServiceImpl

      public InstanceServiceImpl(SoulFireServer soulFireServer)
  • Method Details

    • createInstance

      public void createInstance(InstanceCreateRequest request, io.grpc.stub.StreamObserver<InstanceCreateResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Creates a new instance with the given friendly name.
      The instance starts in STOPPED state with default configuration.
      Requires: CREATE_INSTANCE global permission
      Returns: The UUID of the newly created instance
      Errors: INTERNAL if creation fails
      
    • deleteInstance

      public void deleteInstance(InstanceDeleteRequest request, io.grpc.stub.StreamObserver<InstanceDeleteResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Permanently deletes an instance and all its data.
      If the instance is running, it will be stopped first.
      This operation cannot be undone.
      Requires: DELETE_INSTANCE permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • listInstances

      public void listInstances(InstanceListRequest request, io.grpc.stub.StreamObserver<InstanceListResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Lists all instances the current user has permission to view.
      Only instances where the user has READ_INSTANCE permission are returned.
      Returns summary information for each instance.
      
    • getInstanceInfo

      public void getInstanceInfo(InstanceInfoRequest request, io.grpc.stub.StreamObserver<InstanceInfoResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Gets detailed information about a specific instance.
      Supports conditional requests via if_modified_since to reduce bandwidth.
      Requires: READ_INSTANCE permission on the instance
      Returns: Full instance info or not_modified status
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceMeta

      public void updateInstanceMeta(InstanceUpdateMetaRequest request, io.grpc.stub.StreamObserver<InstanceUpdateMetaResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Updates instance metadata (friendly name or icon).
      Only one field can be updated per request.
      Requires: UPDATE_INSTANCE_META permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceConfig

      public void updateInstanceConfig(InstanceUpdateConfigRequest request, io.grpc.stub.StreamObserver<InstanceUpdateConfigResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Replaces the entire instance configuration.
      Used primarily for profile import operations.
      For individual setting changes, use UpdateInstanceConfigEntry instead.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceConfigEntry

      public void updateInstanceConfigEntry(InstanceUpdateConfigEntryRequest request, io.grpc.stub.StreamObserver<InstanceUpdateConfigEntryResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Updates a single configuration entry by namespace and key.
      More efficient than UpdateInstanceConfig for individual changes.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • addInstanceAccount

      public void addInstanceAccount(InstanceAddAccountRequest request, io.grpc.stub.StreamObserver<InstanceAddAccountResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Adds a Minecraft account to the instance.
      The account's profile_id must be unique within the instance.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceAccount

      public void removeInstanceAccount(InstanceRemoveAccountRequest request, io.grpc.stub.StreamObserver<InstanceRemoveAccountResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Removes a Minecraft account from the instance by profile_id.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceAccount

      public void updateInstanceAccount(InstanceUpdateAccountRequest request, io.grpc.stub.StreamObserver<InstanceUpdateAccountResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Updates an existing Minecraft account in the instance.
      The account is matched by profile_id and replaced.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • addInstanceAccountsBatch

      public void addInstanceAccountsBatch(InstanceAddAccountsBatchRequest request, io.grpc.stub.StreamObserver<InstanceAddAccountsBatchResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Adds multiple Minecraft accounts to the instance in a single operation.
      More efficient than multiple AddInstanceAccount calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceAccountsBatch

      public void removeInstanceAccountsBatch(InstanceRemoveAccountsBatchRequest request, io.grpc.stub.StreamObserver<InstanceRemoveAccountsBatchResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Removes multiple Minecraft accounts from the instance by their profile_ids.
      More efficient than multiple RemoveInstanceAccount calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • addInstanceProxy

      public void addInstanceProxy(InstanceAddProxyRequest request, io.grpc.stub.StreamObserver<InstanceAddProxyResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Adds a proxy to the instance.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceProxy

      public void removeInstanceProxy(InstanceRemoveProxyRequest request, io.grpc.stub.StreamObserver<InstanceRemoveProxyResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Removes a proxy from the instance by its index.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      Errors: INVALID_ARGUMENT if index is out of bounds
      
    • updateInstanceProxy

      public void updateInstanceProxy(InstanceUpdateProxyRequest request, io.grpc.stub.StreamObserver<InstanceUpdateProxyResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Updates an existing proxy in the instance by its index.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      Errors: INVALID_ARGUMENT if index is out of bounds
      
    • addInstanceProxiesBatch

      public void addInstanceProxiesBatch(InstanceAddProxiesBatchRequest request, io.grpc.stub.StreamObserver<InstanceAddProxiesBatchResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Adds multiple proxies to the instance in a single operation.
      More efficient than multiple AddInstanceProxy calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceProxiesBatch

      public void removeInstanceProxiesBatch(InstanceRemoveProxiesBatchRequest request, io.grpc.stub.StreamObserver<InstanceRemoveProxiesBatchResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Removes multiple proxies from the instance by their addresses.
      More efficient than multiple RemoveInstanceProxy calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • changeInstanceState

      public void changeInstanceState(InstanceStateChangeRequest request, io.grpc.stub.StreamObserver<InstanceStateChangeResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Changes the lifecycle state of an instance.
      Used to start, pause, resume, or stop bot sessions.
      The operation blocks until the state transition is complete.
      Requires: CHANGE_INSTANCE_STATE permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • getAuditLog

      public void getAuditLog(InstanceAuditLogRequest request, io.grpc.stub.StreamObserver<InstanceAuditLogResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Retrieves the audit log for an instance.
      Returns a list of recorded actions ordered by timestamp (newest first).
      Requires: READ_INSTANCE_AUDIT_LOGS permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • getAccountMetadata

      public void getAccountMetadata(GetAccountMetadataRequest request, io.grpc.stub.StreamObserver<GetAccountMetadataResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Gets persistent metadata for a Minecraft account.
      Persistent metadata survives bot restarts and session changes.
      Requires: READ_BOT_INFO permission on the instance
      Errors: NOT_FOUND if instance or account does not exist
      
    • setAccountMetadataEntry

      public void setAccountMetadataEntry(SetAccountMetadataEntryRequest request, io.grpc.stub.StreamObserver<SetAccountMetadataEntryResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Sets a single persistent metadata entry for a Minecraft account.
      Creates the namespace and key if they don't exist, or updates if they do.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • deleteAccountMetadataEntry

      public void deleteAccountMetadataEntry(DeleteAccountMetadataEntryRequest request, io.grpc.stub.StreamObserver<DeleteAccountMetadataEntryResponse> responseObserver)
      Description copied from interface: InstanceServiceGrpc.AsyncService
      Deletes a persistent metadata entry from a Minecraft account.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist