com.google.appengine.tools.admin

## Interface AppAdmin

-     public interface AppAdmin

  The application administration interface to App Engine. Use this API to update, configure, and otherwise manage an App Engine application. Use `AppAdminFactory` to retrieve an `AppAdmin` instance configured for a specific application.

  Synchronous versus Asynchronous requests: Some requests, such as `update(com.google.appengine.tools.admin.UpdateListener)`, occur asynchronously and must be monitored with a `listener`. Other requests, such as `updateIndexes()`, are made synchronously. In either case, work often continues to occur asynchronously on the remote server after the request has been completed.

  Error handling: Most configuration operations require communicating to App Engine's remote administration server occur over a network connection. In cases where unrecoverable failures occur (such as a network failure), this API throws an `AdminException`.

  Application updates occur transactionally. If a failure occurs during update, you must `rollback()` the incomplete transaction before beginning another.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `AppAdmin.LogSeverity` The severity levels for App Engine application logging.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `configureBackend(java.lang.String backendName)` Reconfigure the backend with the specified name.
    `java.util.List<CronEntry>` | `cronInfo()` Locally parses an application's configured cron entries and reports the upcoming several execution times.
    `void` | `deleteBackend(java.lang.String backendName)` Delete the backend with the specified name.
    `com.google.appengine.tools.admin.ResourceLimits` | `getResourceLimits()` Gets the resource limits.
    `java.util.List<BackendsXml.Entry>` | `listBackends()` Retrieve a list of registered backends with their associated state.
    `java.io.Reader` | `requestLogs(int numDays, AppAdmin.LogSeverity severity)` Retrieves application logs from the remote administration server.
    `void` | `rollback()` Rolls back an "in-progress" transaction.
    `void` | `rollbackAllBackends()` Rolls back an "in-progress" transaction on all backends.
    `void` | `rollbackBackend(java.lang.String backend)` Rolls back an "in-progress" transaction on a backend.
    `void` | `setBackendState(java.lang.String backendName, BackendsXml.State newState)` Update the state of the backend with the specified name to `newState`.
    `void` | `setDefaultVersion()` Sends a synchronous request to update the application's default version.
    `void` | `startServer()` Start the specified server version.
    `void` | `stopServer()` Stop the specified server version.
    `void` | `update(UpdateListener listener)` Uploads a new version of the application and updates its indexes.
    `void` | `updateAllBackends(UpdateListener listener)` Redeploy all backends.
    `void` | `updateBackend(java.lang.String backendName, UpdateListener listener)` Redeploy the backend with the specified name.
    `void` | `updateBackends(java.util.List<java.lang.String> backendNames, UpdateListener listener)` Redeploy the backends with the specified names.
    `void` | `updateCron()` Sends a synchronous request to update the application's cron jobs.
    `void` | `updateDos()` Sends a synchronous request to update the application's DoS configuration.
    `void` | `updateIndexes()` Sends a synchronous request to update the application's indexes.
    `void` | `updateQueues()` Sends a synchronous request to update the application's task queue definitions.
    `void` | `vacuumIndexes(com.google.appengine.tools.admin.ConfirmationCallback<com.google.appengine.tools.admin.IndexDeleter.DeleteIndexAction> callback, UpdateListener listener)` Performs the following three steps: Queries the remote administration server for existing indexes that are not included in the local index configuration file.

- - ### Method Detail

    - #### update

          void update(UpdateListener listener)

      Uploads a new version of the application and updates its indexes. The update may occur asynchronously, so an `UpdateListener` must be installed to track progress.
      Parameters:
        `listener` - The listener to be notified of updates. Must not be `null`.
      Throws:
        `AdminException` - if an error occurs.

    - #### rollback

          void rollback()

      Rolls back an "in-progress" transaction. This operation occurs synchronously.
      Throws:
        `AdminException` - if an error occurs.

    - #### rollbackBackend

          void rollbackBackend(java.lang.String backend)

      Rolls back an "in-progress" transaction on a backend. This operation occurs synchronously.
      Parameters:
        `backend` - to rollback, or null for default app
      Throws:
        `AdminException` - if an error occurs.

    - #### rollbackAllBackends

          void rollbackAllBackends()

      Rolls back an "in-progress" transaction on all backends. This operation occurs synchronously.
      Throws:
        `AdminException` - if an error occurs.

    - #### updateIndexes

          void updateIndexes()

      Sends a synchronous request to update the application's indexes. This work completes asynchronously on the server.
      Throws:
        `AdminException` - if an error occurs.

    - #### updateCron

          void updateCron()

      Sends a synchronous request to update the application's cron jobs. This work completes synchronously on the server.
      Throws:
        `AdminException` - if an error occurs.

    - #### updateQueues

          void updateQueues()

      Sends a synchronous request to update the application's task queue definitions. This work completes synchronously on the server.
      Throws:
        `AdminException` - if an error occurs.

    - #### updateDos

          void updateDos()

      Sends a synchronous request to update the application's DoS configuration. This work completes synchronously on the server.
      Throws:
        `AdminException` - if an error occurs.

    - #### cronInfo

          java.util.List<CronEntry> cronInfo()

      Locally parses an application's configured cron entries and reports the upcoming several execution times.
      Throws:
        `AdminException` - if an error occurs.

    - #### getResourceLimits

          com.google.appengine.tools.admin.ResourceLimits getResourceLimits()

      Gets the resource limits. The values returned are a combination of values reported by the adminconsole/appserver plus locally defined defaults for any missing values.
      Returns:
        The ResourceLimits object.
      Throws:
        `AdminException` - if an error occurs.

    - #### vacuumIndexes

          void vacuumIndexes(com.google.appengine.tools.admin.ConfirmationCallback<com.google.appengine.tools.admin.IndexDeleter.DeleteIndexAction> callback,
                           UpdateListener listener)

      Performs the following three steps:
      1. Queries the remote administration server for existing indexes that are not included in the local index configuration file. We will refer to these as orphaned indexes.
      2. If `callback` is not null, then the `confirmAction` method will be called once for each of the orphaned indexes to confirm that it really should be deleted.
      3. A request will be sent to the server to delete each of the confirmed indexes. This work completes asynchronously on the server.
      Parameters:
        `callback` - Used to confirm deletions. May be `null` in which case no confirmation will be done.
        `listener` - The listener to be notified of updates. Must not be `null`.
      Throws:
        `AdminException` - if an error occurs.

    - #### requestLogs

          java.io.Reader requestLogs(int numDays,
                                   AppAdmin.LogSeverity severity)

      Retrieves application logs from the remote administration server.
      Parameters:
        `numDays` - The number of days to retrieve logs for. The cut-off point is midnight UTC. Use 0 to get all available logs.
        `severity` - The severity of app-level log messages to get. If null, only request logs are returned.
      Returns:
        a non-null `Reader` which can be used to stream the logs from the remote administration server. You should `close` the `Reader` when you're finished reading logs. It is ok to `close` the `Reader` before all logs have been read (streaming from the server is cancelled).
      Throws:
        `AdminException` - if an error occurs.

    - #### updateBackend

          void updateBackend(java.lang.String backendName,
                           UpdateListener listener)

      Redeploy the backend with the specified name.

    - #### updateBackends

          void updateBackends(java.util.List<java.lang.String> backendNames,
                            UpdateListener listener)

      Redeploy the backends with the specified names.

    - #### updateAllBackends

          void updateAllBackends(UpdateListener listener)

      Redeploy all backends.

    - #### listBackends

          java.util.List<BackendsXml.Entry> listBackends()

      Retrieve a list of registered backends with their associated state.

    - #### setBackendState

          void setBackendState(java.lang.String backendName,
                             BackendsXml.State newState)

      Update the state of the backend with the specified name to `newState`.

    - #### deleteBackend

          void deleteBackend(java.lang.String backendName)

      Delete the backend with the specified name.

    - #### configureBackend

          void configureBackend(java.lang.String backendName)

      Reconfigure the backend with the specified name.

    - #### startServer

          void startServer()

      Start the specified server version.

    - #### stopServer

          void stopServer()

      Stop the specified server version.

    - #### setDefaultVersion

          void setDefaultVersion()

      Sends a synchronous request to update the application's default version. This work completes synchronously on the server.
      Throws:
        `AdminException` - if an error occurs.