Class InstanceServiceGrpc.InstanceServiceFutureStub

java.lang.Object
io.grpc.stub.AbstractStub<InstanceServiceGrpc.InstanceServiceFutureStub>
io.grpc.stub.AbstractFutureStub<InstanceServiceGrpc.InstanceServiceFutureStub>
com.soulfiremc.grpc.generated.InstanceServiceGrpc.InstanceServiceFutureStub
Enclosing class:
InstanceServiceGrpc

public static final class InstanceServiceGrpc.InstanceServiceFutureStub extends io.grpc.stub.AbstractFutureStub<InstanceServiceGrpc.InstanceServiceFutureStub>
A stub to allow clients to do ListenableFuture-style rpc calls to service InstanceService.
Service for managing SoulFire instances.
An instance represents a collection of Minecraft bots that can be started,
stopped, and configured together. Each instance has its own configuration
including settings, Minecraft accounts, and proxies.
All operations require appropriate permissions:
- CREATE_INSTANCE (global): Required to create new instances
- READ_INSTANCE: Required to list and view instance details
- UPDATE_INSTANCE_META: Required to change instance name/icon
- UPDATE_INSTANCE_CONFIG: Required to modify settings, accounts, and proxies
- DELETE_INSTANCE: Required to delete an instance
- CHANGE_INSTANCE_STATE: Required to start/stop/pause the instance
- READ_INSTANCE_AUDIT_LOGS: Required to view audit logs
- READ_BOT_INFO: Required to read account metadata
  • Method Details

    • build

      protected InstanceServiceGrpc.InstanceServiceFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<InstanceServiceGrpc.InstanceServiceFutureStub>
    • createInstance

      public com.google.common.util.concurrent.ListenableFuture<InstanceCreateResponse> createInstance(InstanceCreateRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceDeleteResponse> deleteInstance(InstanceDeleteRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceListResponse> listInstances(InstanceListRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceInfoResponse> getInstanceInfo(InstanceInfoRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceUpdateMetaResponse> updateInstanceMeta(InstanceUpdateMetaRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceUpdateConfigResponse> updateInstanceConfig(InstanceUpdateConfigRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceUpdateConfigEntryResponse> updateInstanceConfigEntry(InstanceUpdateConfigEntryRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceAddAccountResponse> addInstanceAccount(InstanceAddAccountRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceRemoveAccountResponse> removeInstanceAccount(InstanceRemoveAccountRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceUpdateAccountResponse> updateInstanceAccount(InstanceUpdateAccountRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceAddAccountsBatchResponse> addInstanceAccountsBatch(InstanceAddAccountsBatchRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceRemoveAccountsBatchResponse> removeInstanceAccountsBatch(InstanceRemoveAccountsBatchRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceAddProxyResponse> addInstanceProxy(InstanceAddProxyRequest request)
      Adds a proxy to the instance.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceProxy

      public com.google.common.util.concurrent.ListenableFuture<InstanceRemoveProxyResponse> removeInstanceProxy(InstanceRemoveProxyRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceUpdateProxyResponse> updateInstanceProxy(InstanceUpdateProxyRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceAddProxiesBatchResponse> addInstanceProxiesBatch(InstanceAddProxiesBatchRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceRemoveProxiesBatchResponse> removeInstanceProxiesBatch(InstanceRemoveProxiesBatchRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceStateChangeResponse> changeInstanceState(InstanceStateChangeRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<InstanceAuditLogResponse> getAuditLog(InstanceAuditLogRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<GetAccountMetadataResponse> getAccountMetadata(GetAccountMetadataRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<SetAccountMetadataEntryResponse> setAccountMetadataEntry(SetAccountMetadataEntryRequest request)
      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 com.google.common.util.concurrent.ListenableFuture<DeleteAccountMetadataEntryResponse> deleteAccountMetadataEntry(DeleteAccountMetadataEntryRequest request)
      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