Class InstanceServiceGrpc.InstanceServiceBlockingV2Stub

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

public static final class InstanceServiceGrpc.InstanceServiceBlockingV2Stub extends io.grpc.stub.AbstractBlockingStub<InstanceServiceGrpc.InstanceServiceBlockingV2Stub>
A stub to allow clients to do synchronous 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.InstanceServiceBlockingV2Stub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<InstanceServiceGrpc.InstanceServiceBlockingV2Stub>
    • createInstance

      public InstanceCreateResponse createInstance(InstanceCreateRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • deleteInstance

      public InstanceDeleteResponse deleteInstance(InstanceDeleteRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • listInstances

      public InstanceListResponse listInstances(InstanceListRequest request) throws io.grpc.StatusException
      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.
      
      Throws:
      io.grpc.StatusException
    • getInstanceInfo

      public InstanceInfoResponse getInstanceInfo(InstanceInfoRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • updateInstanceMeta

      public InstanceUpdateMetaResponse updateInstanceMeta(InstanceUpdateMetaRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • updateInstanceConfig

      public InstanceUpdateConfigResponse updateInstanceConfig(InstanceUpdateConfigRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • updateInstanceConfigEntry

      public InstanceUpdateConfigEntryResponse updateInstanceConfigEntry(InstanceUpdateConfigEntryRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • addInstanceAccount

      public InstanceAddAccountResponse addInstanceAccount(InstanceAddAccountRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • removeInstanceAccount

      public InstanceRemoveAccountResponse removeInstanceAccount(InstanceRemoveAccountRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • updateInstanceAccount

      public InstanceUpdateAccountResponse updateInstanceAccount(InstanceUpdateAccountRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • addInstanceAccountsBatch

      public InstanceAddAccountsBatchResponse addInstanceAccountsBatch(InstanceAddAccountsBatchRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • removeInstanceAccountsBatch

      public InstanceRemoveAccountsBatchResponse removeInstanceAccountsBatch(InstanceRemoveAccountsBatchRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • addInstanceProxy

      public InstanceAddProxyResponse addInstanceProxy(InstanceAddProxyRequest request) throws io.grpc.StatusException
      Adds a proxy to the instance.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
      Throws:
      io.grpc.StatusException
    • removeInstanceProxy

      public InstanceRemoveProxyResponse removeInstanceProxy(InstanceRemoveProxyRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • updateInstanceProxy

      public InstanceUpdateProxyResponse updateInstanceProxy(InstanceUpdateProxyRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • addInstanceProxiesBatch

      public InstanceAddProxiesBatchResponse addInstanceProxiesBatch(InstanceAddProxiesBatchRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • removeInstanceProxiesBatch

      public InstanceRemoveProxiesBatchResponse removeInstanceProxiesBatch(InstanceRemoveProxiesBatchRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • changeInstanceState

      public InstanceStateChangeResponse changeInstanceState(InstanceStateChangeRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • getAuditLog

      public InstanceAuditLogResponse getAuditLog(InstanceAuditLogRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • getAccountMetadata

      public GetAccountMetadataResponse getAccountMetadata(GetAccountMetadataRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • setAccountMetadataEntry

      public SetAccountMetadataEntryResponse setAccountMetadataEntry(SetAccountMetadataEntryRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • deleteAccountMetadataEntry

      public DeleteAccountMetadataEntryResponse deleteAccountMetadataEntry(DeleteAccountMetadataEntryRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException