GeezerVison is showing developers.arcgis.com — arcgis.gis.nb module | ArcGIS API for Python | Esri Developer
NotebookServer
-
class arcgis.gis.nb.NotebookServer(url, gis)
Bases: object
Provides access to the ArcGIS Notebook Server administration API.
-
property data_access: NotebookDataAccess
Provides access to managing files stored on notebook server.
- Returns:
NotebookDataAccess object
-
property health_check: bool
The health_check verifies that your ArcGIS Notebook Server site
has been created, and that its Docker environment has been
correctly configured.
This is only available if the site can be accessed through the web adapter
- Returns:
Boolean
-
property info
Returns information about the server site itself
- Returns:
PropertyMap
-
property logs
Provides access to the notebook server’s logging system
- Returns:
LogManager
-
property machine
Provides access to managing the registered machines with ArcGIS
Notebook Server
- Returns:
MachineManager
-
property notebooks
Provides access to managing the ArcGIS Notebook Server’s
Notebooks
- Returns:
NotebookManager
-
property properties
Properties of the object
-
property security
Provides access to managing the ArcGIS Notebook Server’s security
settings.
- Returns:
SecurityManager
-
property services
Provides access to managing notebook created geoprocessing tools
- Returns:
NBServicesManager
-
property site
Provides access to the notebook server’s site management operations
- Returns:
SiteManager
-
property system
returns access to the system properties of the ArcGIS Notebook Server
- Returns:
SystemManager
-
property url
The URL of the notebook server.
-
property version
Returns the notebook server version
- Returns:
List
NotebookManager
-
class arcgis.gis.nb.NotebookManager(url, gis, nbs)
Bases: object
Provides access to managing a site’s notebooks. An object of this
class can be created using notebooks property of the
NotebookServer class
-
execute_notebook(item: Item, update_portal_item: bool = True, parameters: list | None = None, save_parameters: bool = False, future: bool = False)
The Execute Notebook operation allows administrators and users with
the Create and Edit Notebooks privilege to remotely
run a notebook that they own. The notebook specified in the operation will
be run with all cells in order.
Using this operation, you can schedule the execution of a notebook,
either once or with a regular occurrence. This allows you to
automate repeating tasks such as data collection and cleaning,
content updates, and portal administration. On Linux machines, use
a cron job to schedule the executeNotebook operation; on Windows
machines, you can use the Task Scheduler.
Note
To run this operation in ArcGIS Enterprise, you must log in with
an Enterprise account. You cannot execute notebooks using the
ArcGIS Notebook Server primary site administrator account.
You can specify parameters to be used in the notebook at execution
time. If you’ve specified one or more parameters, they’ll be
inserted into the notebook as a new cell. This cell will be placed
at the beginning of the notebook, unless you have added the
parameters tag to a cell.
See Execute Notebook
for full administration details.
Parameter |
Description |
item |
Required notebook Item. Opens the existing portal
notebook. |
update_portal_item |
Optional Boolean. Specifies whether you want to update the
notebook’s portal item after execution. The default is True. You may
want to specify true when the notebook you’re executing contains
information that needs to be updated, such as a workflow that
collects the most recent version of a dataset. It may not be
important to update the portal item if the notebook won’t store any
new information after executing, such as an administrative notebook
that emails reminders to inactive users. |
parameters |
Optional Dictionary. Defines the parameters to add to the
notebook for this execution. The parameters will be inserted as a
new cell directly after the cell you have tagged parameters.
Separate parameters with a comma. Use formats:
See Prepare the Notebook
for detailed explanation.
|
save_parameters |
Optional Boolean. Specifies whether the notebook parameters cell
should be saved in the notebook for future use. The default is
False. |
future |
Optional boolean.
If True, a future object will be returned and the process runs
asynchronously, allowing for other work to be done while
processing completes.
If False, which is the default, the process waits for results
before continuing.
|
- Returns:
If future=False, a Python dictionary
If future = True, then the result is a
concurrent.futures.Future
object. Call result() on the object to get the response
# Usage Example:
>>> from arcgis.gis import GIS
>>> gis = GIS("home")
>>> nb_server = gis.notebook_server[0]
>>> notebook_item = gis.content.get('<notebook_item_id>')
>>> nb_mgr = nb_server.notebooks
>>> nb_mgr.execute_notebook(notebook_item)
-
list()
Returns a list of notebook instances on the Notebook Server
- Returns:
List of Notebook objects
-
open_notebook(itemid: str, templateid: str | None = None, nb_runtimeid: str | None = None, template_nb: str | None = None, *, future: bool = False)
Opens a notebook on the notebook server
Parameter |
Description |
itemid |
Required String. Opens an existing portal item. |
templateid |
Optional String. The id of the portal notebook template. To get the
system templates, look at the sample notebooks group:
>>> from arcgis.gis import GIS
>>> gis = GIS()
>>> grp = gis.groups.search("title:(esri sample notebooks) AND
>>> owner:"esri_notebook")[0]
>>> grp.content
|
nb_runtimeid |
Optional String. The runtime to use to generate a new notebook. |
template_nb |
Optional String. The start up template for the notebook. |
future |
Optional Bool. If True, the job will run asynchronously. |
- Returns:
Dict or Job
-
property properties
returns the properties of the resource
-
restore_runtime()
Deprecated since version 2.4.2: Removed in: 2.4.5. Use the runtime_manager instead.
Deprecated since version 2.4.2: Removed in: 2.4.5. Use the runtime_manager instead.
This operation restores the two default notebook runtimes in ArcGIS
Notebook Server - ArcGIS Notebook Python 3 Standard and ArcGIS
Notebook Python 3 Advanced - to their original settings.
This was deprecated at version 2.4.2. Use the `runtime_manager` instead.
-
property runtime_manager: RuntimeManager
Returns the manager to manage runtimes
- Returns:
RuntimeManager
-
property runtimes: Iterable[Runtime]
Deprecated since version 2.4.2: Removed in: 2.4.5. Use the runtime_manager instead.
Deprecated since version 2.4.2: Removed in: 2.4.5. Use the runtime_manager instead.
Returns a list of all runtimes
- Returns:
Iterable[Runtime]
This was deprecated at version 2.4.2. Use the `runtime_manager` instead.
-
property snapshots
Provides access to managing Notebook’s snapshots
- Returns:
SnapshotManager
Notebook
-
class arcgis.gis.nb.Notebook(url, item_id, properties=None, gis=None)
Bases: object
This represents an individual notebook resource in the notebook server.
-
close()
This operation stops a running notebook. You can use it to free up
space in your notebook container. Idle notebooks are automatically
cleaned up according to the duration defined by the
idleNotebookThreshold property. The default value for that property
is 24 hours.
- Returns:
Boolean
-
property properties
returns the properties of the resource
Runtime
-
class arcgis.gis.nb.Runtime(url, gis)
Bases: object
Represents a specific notebook runtime configured with ArcGIS Notebook Server.
This class provides access to runtime metadata and available libraries, and allows administrators to update or delete the runtime.
Example: Get available notebook runtimes and print their names.
from arcgis.gis import GIS
gis = GIS("home")
# get notebook server instance
notebooks = gis.notebook_server
notebook = notebooks[0]
# get notebook manager instance
notebook_mgr = notebook.notebooks
# get notebook runtime manager
runtime_mgr = notebook_mgr.runtime_manager
# see runtimes
runtimes = runtime_mgr.runtimes
for runtime in runtimes:
print(f"Runtime Name: {runtime.properties['name']}")
Output:
Runtime Name: ArcGIS Notebook Python 3 Standard
Runtime Name: ArcGIS Notebook Python 3 Advanced
-
delete()
Deletes the current runtime from the ArcGIS Notebook Server site.
- Returns:
Boolean
-
property manifest
This resource returns a JSON representation of all the Python
libraries supported in the specified notebook runtime. Notebook
authors who open notebooks using this runtime are able to import
any of the libraries in the manifest into their notebooks.
- Returns:
List of Dictionaries.
-
property properties
Gets the properties for the specified Notebook Server runtime.
-
update(name: str | None = None, image_id: str | None = None, max_cpu: float | None = None, max_memory: float | None = None, memory_unit: str | None = None, max_swap_memory: str | None = None, swap_memory_unit: str | None = None, shared_memory: str | None = None, docker_runtime: str | None = None, shared_unit: str | None = None, version: str | None = None, container_type: str | None = None, pull_string: str | None = None, require_advanced_priv: bool | None = None, manifest: str | None = None)
This operation allows you to update the properties of a notebook
runtime in ArcGIS Notebook Server. These settings will be applied
to every container to which the runtime is applied.
You can use this operation to update the resource limits of the
runtime, such as maximum CPU and maximum memory. You can also use
it to extend either of the default notebook runtimes, in order to
make additional Python modules available to your notebook authors,
or as a step in making ArcGIS Notebook Server able to use graphical
processing units (GPUs).
Example: Update maximum memory of a specific notebook runtime in ArcGIS Notebook Server site.
from arcgis.gis import GIS
gis = GIS("home")
# get notebook manager
notebooks = gis.notebook_server
notebook = notebooks[0]
notebook_mgr = notebook.notebooks
# get runtime manager
runtime_mgr = notebook_mgr.runtime_manager
runtimes = runtime_mgr.runtimes
# list runtimes and update first runtime memory
runtimes = list(runtime_mgr.runtimes)
runtimes[0].update(max_memory=6)
- Returns:
Boolean
SnapshotManager
-
class arcgis.gis.nb.SnapshotManager(url, gis)
Bases: object
Allows for management and creation of snapshots (save points) for ArcGIS Notebooks.
-
create(item: Item, name: str, description: str | None = None, notebook_json: dict | None = None, access: bool = False)
Creates a Snapshot of a given item.
Parameter |
Description |
item |
Required Item. The ‘Notebook’ typed item to create a snapshot for. |
name |
Required String. The name of the snapshot. This is the identifier
used to identify the snapshot. |
description |
Optional String. A piece of text that describes the snapshot. |
notebook_json |
Optional Dict. If you want to store different JSON text other
than what is in the current notebook provide it here. |
access |
Optional Bool. When false, the snapshot will not be publicly available. |
- Returns:
Dict
-
list(item: Item)
Returns a list of snapshots for a notebook item.
Parameter |
Description |
item |
Required Item. The Notebook Item to get all
snapshots for. |
- Returns:
List of SnapShot objects
-
property properties
Gets metadata for the Notebook Server snapshots endpoint.
SnapShot
-
class arcgis.gis.nb.SnapShot(item: Item, sm: SnapshotManager, properties: dict)
Bases: object
Represents a snapshot of a notebook item. Snapshots capture the state of a notebook at a specific point in time.
-
delete()
Deletes a snapshot associated with the notebook item.
Parameter |
Description |
item |
Required Item. The ‘Notebook’ typed item to remove snapshots from. |
snapshot |
Required String. The name of the snapshot. |
- Returns:
Boolean
-
download()
Downloads a notebook snapshot (.ipynb) to the local file system.
- Returns:
String (Path of saved file)
-
restore(title: str | None = None, preserve: bool = True, description: str | None = None)
Rolls back the notebook to a previous snapshot state.
Parameter |
Description |
title |
Optional string. The Item’s title. |
preserve |
Optional Bool. If True, the current notebook version is preserved as a snapshot. |
description |
Optional String. Text describing the restoration point. |
- Returns:
Dict
-
save_as_item(title: str)
Converts a snapshot to a new notebook Item.
Parameter |
Description |
title |
Required String. The name of the new notebook. |
- Returns:
Item
SystemManager
-
class arcgis.gis.nb.SystemManager(url: str, gis: GIS)
Bases: object
The System resource is a collection of server-wide resources in your
ArcGIS Notebook Server site. Within this resource, you can access
information and perform operations pertaining to licenses, Web
Adaptors, containers, server properties, directories, Jobs, and the
configuration store.
-
property config_store: Dict[str, Any]
The configuration store maintains configurations for ArcGIS Notebook
Server. Typical configurations include all the resources such as
machines and security rules that are required to power the site. In
a way, the configuration store is a physical representation of a site.
Every ArcGIS Notebook Server machine, when it joins the site, is
provided with a connection to the configuration store and it can
thereafter participate in the management of the site. You can change
the store’s properties during runtime using the edit operation.
The Administrator API that runs on every server machine is capable
of reading and writing to the store. As a result, the store must be
accessible to every server machine within the site. The default
implementation is built on top of a file system and stores all the
configurations in a hierarchy of folders and files.
- Returns:
Dict
-
property containers: List[Container]
Returns a list of active containers.
- Returns:
List of containers
-
delete_all_jobs() → bool
Administrators can clean up an open notebook and execute notebook
jobs on demand. Administrators can view and delete all jobs.
Non-administrative users with create and edit notebook privileges
can only view and delete their own jobs.
Only jobs in completed or failed states will be cleaned up.
- Returns:
Boolean
-
property directories: DirectoryManager
Provides access to registering directories
- Returns:
DirectoryManager
-
job_details(job_id: str) → Dict[str, Any]
A job represents the asynchronous execution of an operation in
ArcGIS Notebook Server. You can acquire progress information by
periodically querying the job.
Parameter |
Description |
job_id |
Required String. The unique identifier of the job. |
- Returns:
Dict
-
property jobs: List[Dict[str, Any]]
This resource is a collection of all the administrative jobs
(asynchronous operations) created within your site. When operations
that support asynchronous execution are run, ArcGIS Notebook Server
creates a new job entry that can be queried for its current status
and messages.
- Returns:
List
-
property licenses: Dict[str, Any]
Gets the license resource list. The licenses resource lists the
current license level of ArcGIS Notebook Sever and all authorized
extensions. Contact Esri Customer Service if you have questions
about license levels or expiration properties.
-
list_jobs(num: int = 100, details: bool = False) → List[Dict[str, Any]]
This resource is a collection of all the administrative jobs
(asynchronous operations) created within your site. When operations
that support asynchronous execution are run, ArcGIS Notebook Server
creates a new job entry that can be queried for its current status
and messages. This is used for Notebook Server 10.9+
Parameter |
Description |
details |
Optional Bool. For 10.9+ Notebook Servers, to get the expanded
details of a Job, set the details to True. False will provide
back a shortened job status. |
num |
Optional Integer. The number of jobs to return. The default is 100.
This is only valid on 10.9+. |
- Returns:
List
-
property properties: PropertyMap
ArcGIS Notebook Server has configuration properties that govern
some of its intricate behavior. This resource is a container for
these properties. The properties are available to all server
objects and extensions through the server environment interface.
You can use this property to get and/or set the available properties.
#Usage Example to set property:
>>> nbserver = gis.notebook_server[0]
>>> nbserver.system.properties = {"webSocketSize" : 32}
See the REST API documention for Notebook Server System properties
for current complete list of available properties.
- Returns:
dictionary-like PropertyMap
-
property recent_statistics: Dict[str, Any]
returns statistics about the current state of the notebook server
- Returns:
Dictionary
-
property web_adaptors: WebAdaptorManager
returns a list of web adapters
- Returns:
List
Container
-
class arcgis.gis.nb.Container(url, gis)
Bases: object
This represents a single hosted notebook container.
-
logs(count: int | None = 1000) → List[str]
Returns the container logs
- Returns:
List[str]
-
property notebooks: List[ContainerNotebook]
A list of all notebooks currently open in the container
- Returns:
List of ContainerNotebook objects
-
property properties
returns the properties of the resource
-
property sessions
When an ArcGIS Notebook is opened in a container, a computational
engine called a kernel is launched; the kernel runs while the notebook
is active and executes all the work done by the notebook. This
resource tracks the active kernels running in the specified container
to provide information about current notebook sessions.
- Returns:
List of Dict
Response |
Description |
ID |
The unique ID string for the container session. |
path |
The working path to the running ArcGIS Notebook, ending in .ipynb. |
kernel |
Properties describing the kernel. They are as follows:
last_activity: The date and time of the most recent action performed by the kernel.
name: The name of the kernel. At 10.7, this value is python3.
id: The unique ID string for the kernel.
execution_state: Whether the kernel is currently executing an action or is idle.
connections: The number of users currently accessing the notebook.
|
-
shutdown()
Terminates the current container
- Returns:
Boolean
-
property statistics: Dict[str, Any]
Returns information about the current container
- Returns:
Dict[str,Any]
ContainerNotebook
-
class arcgis.gis.nb.ContainerNotebook(url: str, gis: GIS)
Bases: object
Represents an individual notebook container
-
close() → bool
This operation stops a running notebook
- Returns:
Boolean
-
property properties: PropertyMap
The container notebook properties
- Returns:
PropertyMap
DirectoryManager
-
class arcgis.gis.nb.DirectoryManager(url: str, gis: GIS)
Bases: object
Manages a collection of registered directories in ArcGIS Notebook Server.
Use this manager to list, register, and unregister directories, and to retrieve directory properties.
Example: Get directories in Notebook Server site and print their names and local path.
from arcgis.gis import GIS
gis = GIS("home")
# get notebook server instance
notebooks = gis.notebook_server
notebook = notebooks[0]
# get system manager instance
system_mgr = notebook.system
# get notebook directory manager
directory_mgr = system_mgr.directories
# get directories properties and print their names and paths
for directory in directory_mgr.properties["directories"]:
print(f"
Name: {directory[‘name’]}, Path: {directory[‘path’]}”)
-
list() → List[Dict[str, Any]]
Gets a list of all directories registered in the Notebook Sever site.
- Returns:
List
-
property properties: PropertyMap
Gets the properties for the directories in the Notebook Server site.
-
register(name: str, path: str, directory_type: str) → bool
This operation registers a new data directory from your local
machine with the ArcGIS Notebook Server site. Registering a local
folder as a data directory allows your notebook authors to work with
files in the folder.
Parameter |
Description |
name |
Required string. The name of the directory. |
path |
Required string. The full path to the directory on your machine. |
directory_type |
Required string. The type of directory. Values: DATA | WORKSPACE | OUTPUT |
- Returns:
Boolean
-
unregister(directory_id: str) → bool
This operation unregisters an existing directory from the ArcGIS
Notebook Server site.
Parameter |
Description |
directory_id |
Required String. The directory ID to remove. |
- Returns:
Boolean
WebAdaptor
-
class arcgis.gis.nb.WebAdaptor(url, gis)
Bases: object
Represents a single Web Adaptor registered with ArcGIS Notebook Server.
The Web Adaptor functions natively as the reverse-proxy entry point for the
Notebook Server site. It forwards user requests, hides internal server details,
handles WebSocket traffic, and participates in front-end authentication flows.
This class exposes operations to manage an individual registered adaptor,
such as unregistering it from the site.
Example: Retrieve the registered Web Adaptors for a Notebook Server.
wa_mgr = gis.notebook_server[0].system.web_adaptors
web_adaptors = wa_mgr.list()
if isinstance(web_adaptors, list) and web_adaptors:
first_adaptor = web_adaptors[0]
-
unregister()
Unregisters this Web Adaptor from the Notebook Server site.
Example: Locate a Web Adaptor by machine name before unregistering it.
wa_mgr = gis.notebook_server[0].system.web_adaptors
target_name = "wa-machine-01"
web_adaptors = wa_mgr.list()
if isinstance(web_adaptors, list):
target = next(
(
wa
for wa in web_adaptors
if wa._con.get(wa._url, {"f": "json"}).get("machineName")
== target_name
),
None,
)
confirm = False # Set to True to perform unregister.
if target and confirm:
print(target.unregister())
- Returns:
Boolean indicating success, or a dictionary with server error details.
WebAdaptorManager
-
class arcgis.gis.nb.WebAdaptorManager(url: str, gis: GIS)
Bases: object
Manages Web Adaptors for ArcGIS Notebook Server.
Use this manager to list registered adaptors, register new adaptors,
and get or update web adaptor configuration settings.
Example: Access the Web Adaptor manager for a Notebook Server.
nb = gis.notebook_server[0]
wa_mgr = nb.system.web_adaptors
-
property config: Dict[str, Any]
Gets the current Web Adaptor configuration.
Example: Retrieve the current Web Adaptor configuration.
wa_mgr = gis.notebook_server[0].system.web_adaptors
cfg = wa_mgr.config
print(cfg)
- Returns:
Dictionary containing the current configuration values.
-
list() → List[WebAdaptor]
Returns all registered Web Adaptors.
Example: List the registered Web Adaptors for a Notebook Server.
wa_mgr = gis.notebook_server[0].system.web_adaptors
web_adaptors = wa_mgr.list()
if isinstance(web_adaptors, list):
print(len(web_adaptors))
- Returns:
List of WebAdaptor objects, or a dictionary on failure.
-
property properties: PropertyMap
Gets metadata for the Notebook Server web adaptors endpoint.
Example: Retrieve Web Adaptor endpoint metadata.
wa_mgr = gis.notebook_server[0].system.web_adaptors
props = wa_mgr.properties
print(dict(props).keys())
-
register(name: str, ip: str, webadaptor_url: str, http_port: int, https_port: int, description: str | None = '')
Registers a new WebAdaptor.
Parameter |
Description |
name |
Required string. The machine name of the Web Adaptor. |
ip |
Required string. The IP address of the Web Adaptor machine. |
webadaptor_url |
Required string. The public URL of the Web Adaptor endpoint. |
http_port |
Required integer. The HTTP port used by the Web Adaptor. |
https_port |
Required integer. The HTTPS port used by the Web Adaptor. |
description |
Optional string. Description of the Web Adaptor. |
- Returns:
Boolean indicating success, or a dictionary with server error details.
Example: Register a Web Adaptor with the Notebook Server site.
wa_mgr = gis.notebook_server[0].system.web_adaptors
ok = wa_mgr.register(
name="wa-machine-01",
ip="10.0.0.25",
webadaptor_url="https://notebooks.example.com/arcgis",
http_port=80,
https_port=443,
description="Primary notebook web adaptor",
)
print(ok)
SiteManager
-
class arcgis.gis.nb.SiteManager(url, notebook, gis)
Bases: object
Manages backup and restore operations for an ArcGIS Notebook Server site.
Access this manager through the
site property.
Example: Access the site manager for a Notebook Server.
site = gis.notebook_server[0].site
site
Output:
-
export_site(location: str)
ArcGIS Notebook Server provides this operation to back up the site’s
configuration store, along with the importSite operation to restore
a site configuration from a backup. The configuration store hosts
essential information about the ArcGIS Notebook Server site and its
machines.
The output of this operation is a ZIP file with the .agssite file
extension.
There are many items and directories that are not backed up by this
operation. Among them:
Notebooks
Container settings
Jobs directory
If desired, you can create your own file system backups for these items.
Parameter |
Description |
location |
Required string. The full path to the directory where
the site configuration will be exported. The Notebook
Server must have access to this directory. |
- Returns:
Python dictionary. The export response, including the operation status
and the location of the exported site configuration.
Example: Export the Notebook Server site configuration to a
server-accessible directory.
site = gis.notebook_server[0].site
response = site.export_site("//myserver/Export_April3")
-
import_site(location: str)
Restores a site configuration from a backup. The backup will have been
created and exported by the
exportSite() operation as a ZIP file
with the .agssite file extension.
Warning
This operation overwrites the current contents of your ArcGIS
Notebook Server site’s configuration store with the contents of
the backup. Use it only when you intend to replace the current
site configuration.
You can use this operation to restore a site configuration in the
event of machine failure or human error.
The import operation may take a while to complete. The method does not
return until the server responds.
Parameter |
Description |
location |
Required string. The full path to the exported
.agssite backup file. The Notebook Server must
have access to this file. |
- Returns:
str or Python dict. The server status string, or the raw response
dictionary when no status is returned.
Example: Restore the Notebook Server site configuration from an
exported .agssite file.
site = gis.notebook_server[0].site
response = site.import_site("//myserver/Export_April3/arcgisnotebookserver_site.agssite")
-
property properties
Gets metadata for the Notebook Server site resource.
Example: Retrieve site resource metadata.
site = gis.notebook_server[0].site
properties = site.properties
properties
Output:
{
"resources": [
"machines",
"notebooks",
"security",
"system",
"services",
"logs",
"dataaccess",
"info",
"mode"
],
"siteId": "ff165127-e1d2-4591-9d9b-5e1b94c7c5c4",
"version": "12.1.0"
}
- Returns:
PropertyMap containing metadata for the site resource.
LogManager
-
class arcgis.gis.nb.LogManager(url, gis)
Bases: object
Manages logs and log settings for an ArcGIS Notebook Server site.
Access this manager through the
logs property.
Example: Access the log manager for a Notebook Server.
logs = gis.notebook_server[0].logs
-
clean()
Deletes all the log files on all server machines in the site. This is an irreversible
operation.
This operation forces the server to clean the logs, which has the effect of freeing
up disk space. However, it is not required that you invoke this operation because
the server periodically purges old logs.
Example: Delete the log files from all Notebook Server machines.
logs = gis.notebook_server[0].logs
result = logs.clean()
- Returns:
bool or dict. A Boolean indicating whether the operation
succeeded, or the raw server response when no status is returned.
-
property properties
Gets metadata for the Notebook Server logs endpoint.
Example: Retrieve log endpoint metadata.
logs = gis.notebook_server[0].logs
properties = logs.properties
- Returns:
PropertyMap containing metadata for the logs resource.
-
query(start_time: datetime | str | None = None, end_time: datetime | str | None = None, since_server_start: bool = False, level: str = 'WARNING', services: str = '*', machines: str = '*', server: str = '*', codes: list[int | str] | str | None = None, process_IDs: list[int | str] | str | None = None, export: bool = False, export_type: str = 'CSV', out_path: str | None = None)
The query operation on the logs resource provides a way to
aggregate, filter, and page through logs across the entire site.
Example: Query warning and more severe log messages.
logs = gis.notebook_server[0].logs
messages = logs.query(level="WARNING")
Parameter |
Description |
start_time |
Optional datetime or string. The most recent time to query. Default is now.
Time can be specified as a datetime object, in milliseconds since UNIX epoch, or as an
ArcGIS Server timestamp.
Example for string:
“startTime”: “2011-08-01T15:17:20”
Example for datetime:
“startTime”: datetime.datetime(2011, 8, 1, 15, 17, 20)
|
end_time |
Optional datetime or string. The oldest time to include in the result set. You
can use this to limit the query to the last n minutes or hours as
needed. Default is the beginning of all logging. |
since_server_start |
Optional bool. Gets only the records written since the server
started (True). The default is False. |
level |
Optional string. Gets only the records with a log level at or more
severe than the level declared here. Can be one of (in severity
order):
DEBUG
VERBOSE
FINE
INFO
WARNING
SEVERE
The default is WARNING.
|
services |
Optional string. Query records related to a specific service.
The default is all. |
machines |
Optional string. Query records related to a specific machine.
The default is all. |
server |
Optional string. Query records related to a specific server.
The default is all. |
codes |
Optional list or comma-separated string. Gets only the records with
the specified codes.The default value is all. See
Log codes documentation
for full details on options. |
process_IDs |
Optional list or comma-separated string. Query by the machine process
IDs that logged the event. |
export |
Optional bool. Indicates whether to export the query results.
The default is False. When True, out_path must also be
provided for the results to be written to a file. |
export_type |
Optional string. The export file type. CSV or TAB are the choices,
CSV is the default. |
out_path |
Optional string. The path to download the log file to. When export is
True and no path is provided, a temporary file is created. If the
provided path has no extension, .csv or .txt is appended based on
the export type.
The path should end in .csv or .txt depending on the export type. |
- Returns:
A Python dictionary with the following keys: hasMore, startTime,
endTime and logMessages of the log items that match the specific query. If export
option is set to True, the output log file path is returned.
-
property settings
Gets or sets the current log settings. When setting this property,
provide a dictionary containing the values to modify; unspecified
settings are preserved.
Example: Retrieve the current log settings.
logs = gis.notebook_server[0].logs
settings = logs.settings
Example: Update log settings while preserving unspecified values.
logs = gis.notebook_server[0].logs
settings = dict(logs.settings)
settings["logLevel"] = "INFO"
logs.settings = settings
- Returns:
PropertyMap
MachineManager
-
class arcgis.gis.nb.MachineManager(url, gis)
Bases: object
This resource provides the name and URL of the ArcGIS Notebook
Server machine in the site. An object of this
class can be created using machine property of the
NotebookServer class
-
list()
Returns a list of Machine instances registered in the Notebook Server site.
- Returns:
List of Machine objects.
-
property properties
Returns the properties of the machines registered in the Notebook Server site
Machine
-
class arcgis.gis.nb.Machine(url, gis)
Bases: object
This resource provides information about the machine in your ArcGIS
Notebook Server site. You can update some of these properties
using the Edit Machine operation.
-
create_self_signed_cert(alias: str, keysize: str, common_name: str, org_unit: str, organization: str, city: str, state: str, country: str, keyalg: str = 'RSA', sigalg: str = 'SHA1withRSA', validity: int = 90, san: str | None = None)
Use this operation to create a self-signed certificate or as a
starting point for getting a production-ready CA-signed certificate.
ArcGIS Notebook Server will generate a certificate for you and store
it in its keystore. The certificate generated should only be used in
development and staging environments.
Parameter |
Description |
alias |
Required String. A unique name that easily identifies the certificate. |
keyalg |
Optional String. The algorithm used to generate the key pairs. The
default is RSA. |
keysize |
Required String. Specifies the size in bits to use when generating
the cryptographic keys used to create the certificate. The larger
the key size, the harder it is to break the encryption; however, the
time to decrypt encrypted data increases with key size. For DSA, the
key size can be between 512 and 1,024. For RSA, the recommended key
size is 2,048 or greater. |
sigalg |
Optional String. Use the default (SHA1withRSA). If your organization
has specific security restrictions, then one of the following
algorithms can be used for DSA: SHA256withRSA, SHA384withRSA,
SHA512withRSA, SHA1withDSA. |
common_name |
Required String. Use the domain name of your server name as the
common name. If your server will be accessed on the Internet through
the URL https://www.notebookserver.com:11443/arcgis/, use
www.notebookserver.com as the common name.If your server will only
be accessible on your local area network (LAN) through the URL
https://notebookserver.domain.com:11443/arcgis/, use notebookserver
as the common name. |
org_unit |
Required String. The name of your organizational unit, for example,
GIS Department. |
organization |
Required String. The name of your organization, for example, Esri. |
city |
Required String. The name of the city or locality, for example,
Redlands. |
state |
Required String. The full name of your state or province, for
example, California. |
country |
Required String. The abbreviated code for your country, for
example, US. |
validity |
Required Integer. The total time in days during which this
certificate will be valid, for example, 365. The default is 90. |
san |
Optional String. The subject alternative name (SAN) is an optional
parameter that defines alternatives to the common name (CN)
specified in the SSL certificate. There cannot be any spaces in the
SAN parameter value. If no SAN is defined, a website can only be
accessed (without SSL certificate errors) by using the common name
in the URL. If a SAN is defined and a DNS name is present, the
website can only be accessed by what is listed in the SAN. Multiple
DNS names can be specified if desired. For example, the URLs
https://www.esri.com, https://esri, and https://10.60.1.16 can be
used to access the same site if the SSL certificate is created
using the following SAN parameter
value: DNS:www.esri.com,DNS:esri,IP:10.60.1.16 |
- Returns:
A JSON-formatted string indicating the success status or error message.
-
delete_certificate(certificate: str)
Deletes a SSL certificate using the certificate alias.
Parameter |
Description |
certificate |
Required string. The name of the certificate to delete. |
- Returns:
String stating “success” or error message.
-
export_certificate(certificate: str)
Downloads an SSL certificate. The file returned by the
server is an X.509 certificate. The downloaded certificate can then
be imported into a client that is making HTTP requests.
Parameter |
Description |
certificate |
Required string. The name of the certificate in the key store. |
- Returns:
String containing the local path to the downloaded certificate.
-
generate_CSR(certificate: str)
Generates a certificate signing request (CSR) for a
self-signed certificate. A CSR is required by a CA to create a
digitally signed version of your certificate. Supply the certificate
object that was created with method ssl_certificate.
Parameter |
Description |
certificate |
Required string. The name of the certificate in the key store. |
- Returns:
The CSR.
-
property hardware
This resource displays hardware information for the machine in your
ArcGIS Notebook Server site. It updates the information when it
detects any change to the configuration of your machine, as well
as each time the machine is restarted.
- Returns:
Dict
-
import_CA_signed_certificate(certificate: str, ca_signed_certificate: str)
Imports a certificate authority (CA)-signed SSL certificate into the key store.
Parameter |
Description |
certificate |
Required string. The name of the certificate in the key store. |
ca_signed_certificate |
Required string. The multi-part POST parameter containing the
signed certificate file. |
- Returns:
A boolean indicating success (True) or failure (False).
-
import_existing_server_certificate(alias: str, cert_password: str, cert_file: str)
Imports an existing server certificate, stored in
the PKCS #12 format, into the keystore.
If the certificate is a CA-signed certificate, you must first
import the CA root or intermediate certificate using the
importRootCertificate operation.
Parameter |
Description |
alias |
Required string. A unique name for the certificate that easily
identifies it. |
cert_password |
Required string. The password to unlock the file containing the certificate. |
cert_file |
Required string. The multi-part POST parameter containing the certificate file. |
- Returns:
A JSON-formatted string indicating the success status or error message.
-
import_root_certificate(alias: str, root_CA_certificate: str)
Imports a certificate authority’s (CA) root and intermediate
certificates into the keystore.
To create a production quality CA-signed certificate, you need to
add the CA’s certificates into the keystore that enables the SSL
mechanism to trust the CA (and the certificates it is signed).
While most of the popular CA’s certificates are already available
in the keystore, you can use this operation if you have a custom
CA or specific intermediate certificates.
Parameter |
Description |
alias |
Required string. The name of the certificate. |
root_CA_certificate |
Required string. The multi-part POST parameter containing the certificate file. |
- Returns:
A JSON-formatted string indicating the success status or error message.
-
property properties
Get/Set the properties on the ArcGIS Notebook Server machine.
Set operation allows you to update properties on the ArcGIS
Notebook Server machine.
ArcGIS Notebook Server uses port 11443 for communication. When you
create a site, this is assigned as the default. You must ensure that
your firewall allows communication through port 11443.
-
ssl_certificate(certificate: str)
Provides information about the specified ssl certificate.
Note
Even though a self-signed certificate can be used to enable SSL, it
is recommended that you use a self-signed certificate only on staging
or development servers.
Parameter |
Description |
certificate |
Required string. The name of the certificate in the key store to
grab information from. |
- Returns:
Dict
-
property ssl_certificates
Gets the list of all the certificates (self-signed and CA-signed)
created for the server machine. The server securely stores these
certificates inside a key store within the configuration store.
-
property status
Returns the status and health information of the Notebook Server machine.
- Returns:
Dict
-
unregister()
Removes machine from the Notebook Server site. This server machine will no
longer participate in the site or run any of the GIS services. All
resources that were acquired by the server machine (memory, files,
and so forth) will be released.
Typically, you should only invoke this operation if the machine
is going to be shut down for extended periods of time, or if it
is being upgraded.
Once a machine has been unregistered, you can create a new site
or join an existing site.
- Returns:
A boolean indicating success (True) or failure (False).
SecurityManager
-
class arcgis.gis.nb.SecurityManager(url, gis)
Bases: object
Manages security settings for an ArcGIS Notebook Server site.
Access this manager through the
security property.
Example: Access the security settings manager for a Notebook Server.
security = gis.notebook_server[0].security
-
property configuration
Gets and sets the security configuration for an ArcGIS Notebook Server
site. Getting this property returns the current configuration. Setting
this property updates one or more configuration values while preserving
values that are not included in the update.
Example: Retrieve the active security configuration.
security = gis.notebook_server[0].security
configuration = security.configuration
Returned Configuration Properties
Property |
Description |
httpsProtocols |
A comma-separated string of TLS protocols enabled for ArcGIS
Notebook Server. |
serverFunction |
The function of the server, such as NotebookServer. |
contentSecurityPolicy |
The content security policy settings for REST and administrative
resources. |
serverRole |
The role of the server, such as FEDERATED_SERVER. |
http2Enabled |
Whether HTTP/2 is enabled. |
authenticationTier |
The tier at which requests to access GIS services are authenticated.
Values include WEB_ADAPTOR, NOTEBOOK_SERVER, and
ARCGIS_PORTAL. |
cipherSuites |
A comma-separated string of cipher suites enabled for ArcGIS
Notebook Server. The available suites depend on the deployment. |
allowInternetCORSAccess |
Whether access from Internet origins through CORS is allowed. |
serverType |
The type of server, such as ARCGIS_NOTEBOOK_SERVER. |
allowDirectAccess |
Whether direct access to the server is allowed. |
tokenServiceKey |
The key used to encrypt tokens. This value is sensitive. |
authenticationMode |
The authentication mode used by ArcGIS Notebook Server.
Values include ARCGIS_TOKEN and ARCGIS_PORTAL_TOKEN. |
portalProperties |
A dictionary containing properties for a federated portal. |
Portal Properties
Property |
Description |
portalMode |
The federation mode. The value is ARCGIS_PORTAL_FEDERATION. |
portalUrl |
The external URL of the portal, in the format
https://webadaptorhost.domain.com/webadaptorname. |
serverId |
The ID of the server federated with the portal. |
serverUrl |
The external URL of the federated ArcGIS Notebook Server, in the
format https://webadaptorhost.domain.com/webadaptorname. |
privateHostingServerUrl |
The private URL of the portal’s hosting server. |
privatePortalUrl |
The private URL of the portal. |
Additional portal properties may be returned depending on the ArcGIS
Enterprise version and federation configuration.
Properties Supported for Updates
Key |
Description |
portalProperties |
Optional dict. Portal properties represented as a JSON object. |
httpsProtocols |
Optional string. Comma-separated TLS protocols used by ArcGIS
Notebook Server. The available protocols depend on the deployment. |
cipherSuites |
Optional string. Comma-separated cipher suites used by ArcGIS
Notebook Server. The available suites depend on the deployment. |
allowInternetCORSAccess |
Optional boolean. Whether access from Internet origins through CORS
is allowed. |
http2Enabled |
Optional boolean. Whether HTTP/2 is enabled. |
authenticationTier |
Optional string. The tier at which requests to access GIS services
are authenticated. Values: WEB_ADAPTOR | NOTEBOOK_SERVER |
ARCGIS_PORTAL. Do not use this property to change the
federation state of the Notebook Server. |
Example: Update the enabled TLS protocols while preserving other
configuration values.
security = gis.notebook_server[0].security
security.configuration = {"httpsProtocols": "TLSv1.2"}
NotebookDataAccess
-
class arcgis.gis.nb._dataaccess.NotebookDataAccess(url, gis, username: str | None = None)
Bases: object
The Data Access Workspace Directory allows notebook authors to manage files used in their notebooks.
-
create_folder(folder: str) → bool
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the create_folder method found in a NotebookFolder instead. The first folder in the list of folders is the Home folder.
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the create_folder method found in a NotebookFolder instead. The first folder in the list of folders is the Home folder.
Create a folder in your /arcgis/home notebook workspace directory.
Parameter |
Description |
folder |
Required String. The name of the folder to create. To create a folder in a subfolder,
use the format subfolder1/subfolder2/foldername. If you want to create a folder
in the root directory, use the format foldername. |
-
property files: list[NotebookFile]
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the files property found in a NotebookFolder instead or the get method with DATAACCESSTYPE.FILE.
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the files property found in a NotebookFolder instead or the get method with DATAACCESSTYPE.FILE.
lists files that are located in the workspace directory (/arcgis/home) of the user making the request.
- Returns:
list[NotebookFile] - list of NotebookFile objects
-
property folders: list[NotebookFolder]
Returns the folders in the workspace directory (/arcgis/home) of the user making the request.
- Returns:
list[NotebookFolder] - A list of NotebookFolder objects containing the folders in the workspace.
-
get(name: str, type: DATAACCESSTYPE | str = DATAACCESSTYPE.FOLDER) → NotebookFolder | NotebookFile
Get a notebook folder or file by name.
- Returns:
NotebookFolder or NotebookFile - The requested folder or file.
-
get_workspace(user: User | str) → NotebookDataAccess
Returns the NotebookDataAccess object for the specified user. This is only available to organization administrators.
Parameter |
Description |
user |
Required User instance or string. The user or username for which the workspace will be retrieved. |
- Returns:
NotebookDataAccess - A NotebookDataAccess object for the specified user.
-
transfer(source_user: User | str, target_user: User | str | None = None, folder_name: str | None = None) → bool
Transfer the workspace of one user to another user in the organization.
This can only be done by an administrator.
This method is useful for transferring the workspace of a user who is leaving the organization to another user.
Parameter |
Description |
source_user |
Required User instance or string. The user or username for which the workspace will be transferred. |
target_user |
Optional User instance or string. The user or username to which the workspace will be transferred.
If not provided, the workspace will be transferred to the current user. |
folder_name |
Optional String. The name of the folder to which the workspace will be transferred.
If not provided, a default name will be used. |
- Returns:
True if the transfer was successful, False or an error if it was not.
-
upload(fp: str | list[str], folder: str | None = None) → list[bool]
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the upload method found in a NotebookFolder instead.
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the upload method found in a NotebookFolder instead.
Uploads a file to the Notebook Server
Parameter |
Description |
fp |
Required String or list of Strings. Either: the path to the file to upload,
a list of paths to the files to upload, or the path to a folder where all
the files in the folder will be uploaded under the folder name. |
folder |
Optional String. The name of the folder to upload the file to. If not provided,
the file will be uploaded to the root directory of the notebook workspace.
Example: folder1 |
- Returns:
list of booleans. True if the file was uploaded, False or an error if it was not.
NotebookFile
-
class arcgis.gis.nb._dataaccess.NotebookFile(definition: dict[str, Any], da: NotebookDataAccess)
Bases: object
Represents a Single File on the ArcGIS Notebook Server
-
delete() → bool
Deletes a file from the system. This will permanently delete the file and the action cannot be undone.
- Returns:
True if the file was deleted, False or an error if it was not.
-
download() → str
Copies down the data from the server to the local machine
- Returns:
str as file path
-
erase() → bool
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the delete method instead.
Deprecated since version 2.4.2: Removed in: 2.5.0. Use the delete method instead.
Deletes a file from the system
- Returns:
Boolean
-
move(target_folder: NotebookFolder) → bool | dict[str, Any]
Moves the file to another NotebookFolder.
Parameter |
Description |
target_folder |
Required NotebookFolder. The target folder to move the file to. |
- Returns:
True if the file was moved successfully, False or an error dictionary otherwise.
-
property name: str
Get the file name
- Returns:
str - The name of the file.
-
property properties
returns the properties of the resource
- Returns:
Dict
-
rename(name: str) → bool | dict[str, Any]
Rename the file on the server.
Parameter |
Description |
name |
Required String. The new name of the file. |
- Returns:
True if the file was renamed, False or an error as a dictionary if it was not.
-
transfer(target_user: User | str | None = None) → bool
Transfer the file to another user in the organization. This can only be done by an administrator.
The file will be renamed to _transferred_{file_name} and moved to the target user’s Home folder.
Parameter |
Description |
target_user |
Required User instance or string. The user or username to which the file will be transferred.
If a string is provided, it should be the username of the target user. |
- Returns:
True if the file was transferred successfully, False or an error if it was not.
NotebookFolder
-
class arcgis.gis.nb._dataaccess.NotebookFolder(folder_name: str, da: NotebookDataAccess)
Bases: object
Represents a folder in the ArcGIS Notebook Server workspace.
This class allows you to manage files and subfolders within a specific folder in the notebook workspace directory.
-
create_folder(folder_name: str) → NotebookFolder
Create a subfolder in the current folder.
Parameter |
Description |
folder_name |
Required String. The name of the subfolder to create.
This will create a subfolder within the current folder. |
- Returns:
NotebookFolder - A NotebookFolder object representing the newly created subfolder.
-
delete() → bool
Deletes a folder and all content from the system. This will permanently delete the folder and content and the action cannot be undone.
- Returns:
True if the folder and content was deleted, False or an error if it was not.
-
property files: list[NotebookFile]
Returns the files in the folder.
- Returns:
list[NotebookFile] - A list of NotebookFile objects representing the files in the folder.
-
property folders: list[NotebookFolder]
Returns the subfolders in the folder.
- Returns:
list[NotebookFolder] - A list of NotebookFolder objects representing the subfolders.
-
move(target_folder: NotebookFolder) → bool
Move the folder to another folder in the notebook workspace.
Parameter |
Description |
target_folder |
Required NotebookFolder. The target folder to which this folder will be moved.
The target folder must be a valid NotebookFolder object. |
- Returns:
True if the folder was moved successfully, False or an error if it was not.
-
property name: str
Get or set the name of the folder.
Parameter |
Description |
new_name |
Required String. The name of the folder. This will rename the folder. |
- Returns:
str - The name of the folder.
-
rename(name: str) → bool | dict[str, Any]
Rename the folder.
Parameter |
Description |
name |
Required String. The new name of the folder.
The name must be a simple, non-empty name without slashes. |
- Returns:
True if the folder was renamed, False or an error as a dictionary if it was not.
-
transfer(target_user: User | str | None = None) → bool | dict[str, Any]
Transfer the folder to another user in the organization. This can only be done by an administrator.
The folder will be renamed to _transferred_{folder_name} and moved to the target user’s Home folder.
Parameter |
Description |
target_user |
Required User instance or string. The user or username to which the folder will be transferred.
If a string is provided, it should be the username of the target user. |
- Returns:
True if the folder was transferred successfully. If not then, False or an error dictionary.
-
upload(fp: str | list[str]) → list[bool]
Uploads a file to the Notebook Server in the current folder.
Parameter |
Description |
fp |
Required String or list of Strings. Either: the path to the file to upload,
a list of paths to the files to upload, or the path to a folder where all
the files in the folder will be uploaded under the folder name. |
- Returns:
list of booleans. True if the file was uploaded, False or an error if it was not.
DATAACCESSTYPE
-
class arcgis.gis.nb._dataaccess.DATAACCESSTYPE(*values)
Bases: Enum
Enum for data access types.
-
FILE = 'file'
-
FOLDER = 'folder'
NBServicesManager
-
class arcgis.gis.nb._services.NBServicesManager(url: str, gis: GIS, nbs: NotebookServer)
Bases: object
The NBServicesManager is used to manage the container of services published on the notebook server. An object of this
class can be created using services() method of the
NotebookServer class
-
create(item: Item, title: str, description: str = None) → Item
ArcGIS Notebook Server supports publishing a geoprocessing service
from a notebook. The create operation creates a service when a
JSON representation of the service is submitted to it.
To publish a service on Notebook Server, you must be an
administrator or a user with Notebook and Publish Web Tools
privileges. The notebook must belong to the user publishing the service.
A notebook-to-web tool relationship is created for maintaining the
relation between the notebook and the associated web tool created
for the service. This relationship ensures that ownership and
sharing permissions are the same for both. When a notebook is
deleted, the associated web tool is also deleted.
Parameter |
Description |
item |
Required Item. The notebook Item to create a service from. |
title |
Required string. The name of the GP tool |
description |
Required string. The description of the tool. |
- Returns:
Item of the tool.
# Usage Example:
>>> from arcgis.gis import GIS
>>> gis = GIS(profile="your_enterprise_admin_profile")
>>> notebook_item = gis.content.get("792a18985c2f4f15b8df0e1b545ea73f")
>>> service_manager = gis.notebook_server[0].services
>>> service_tool = service_manager.create(notebook_item, "nb_service", "this is a notebook service")
>>> service_tool
<Item title:"nb_service" type:Geoprocessing Toolbox owner:enterprise_admin>
-
property properties: dict
Returns the manager’s properties
# Usage Example:
>>> properties = service_manager.properties
-
property services: tuple[NBService]
Returns a tuple of all NBService created by the Notebook Server.
- Returns:
tuple
# Usage Example:
>>> services = service_manager.services
-
property types: dict
The types resource provides metadata and extensions that can be
enabled on GPServer service types supported in ArcGIS Notebook
Server. The services framework uses this information to validate a
service and construct the objects in the service. The metadata
contains identifiers for each object, a default list of
capabilities, properties, and other resource information. Type
information for a specific service type can be accessed by
appending the type name (GPServer, for example) to this URL.
- Returns:
Dict
# Usage Example:
>>> types = service_manager.types
NBService
-
class arcgis.gis.nb._services.NBService(url, gis)
Bases: object
A single ArcGIS Notebook Geoprocessing Tool.
-
delete() → bool
Deletes the notebook service
- Returns:
Boolean
-
property properties
Returns the manager’s properties
|