GeezerVison is showing developers.arcgis.com — arcgis.gis.server module | ArcGIS API for Python | Esri Developer
A collection of classes for administering ArcGIS Server sites.
Server
-
class arcgis.gis.server.Server(url: str, gis: GIS = None, **kwargs)
Bases: BaseServer
An ArcGIS Server site used for hosting GIS web services.
This class can be directly instantied when working with stand-alone (unfederated) ArcGIS Server sites.
This class is not directly created when working with federated ArcGIS Server sites, instead use the
ServerManager list() or get() methods.
# Usage Example 1: Get an object for an ArcGIS Server site federated with an ArcGIS Enterprise portal
gis = GIS(profile="your_ent_admin_profile")
hosting_server = gis.admin.servers.get(role="HOSTING_SERVER")
For stand-alone ArcGIS Server sites, directly create a Server instance.
# Usage Example 2: Get a stand-alone ArcGIS Server site that has Web Adaptor installed
server_base_url = "https://example.com"
gis_server = Server(url=f"{server_base_url}/web_adaptor/admin",
token_url=f"{server_base_url}/web_adaptor/tokens/generateToken",
username="admin_user",
password="admin_password")
Parameter |
Description |
url |
Required string. The URL to the ArcGIS Server administration
end point for the ArcGIS Server site.
Example: https://gis.mysite.com/arcgis/admin
The URL should be formatted as follows:
<scheme>://<fully_qualified_domain_name>:<port (optional)>/<web adaptor>/admin
Note: Using the fully-qualified domain name to the server, also known as the
Web Context URL, is recommended as generally the SSL Certificate binding for
the web server uses this hostname.
|
gis |
Optional string. The GIS object representing the ArcGIS Enterprise portal which this
ArcGIS Server site is federated with. The GIS object should be logged in with a username
in the publisher or administrator Role in order to administer the server. If this
parameter is not present, a combination of other keyword arguments must be present. |
Note
If the gis argument is not present, any number of combinations of keyword arguments will initialize a
functioning Server object. See examples below.
Optional Argument |
Description |
baseurl |
Optional string. The root URL to a site.
Example: https://mysite.com/arcgis |
tokenurl |
Optional string. Used when a site is federated or when the token
URL differs from the site’s base url. If a site is federated, the
token URL will return as the portal token and ArcGIS Server users
will not validate correctly. |
username |
Optional string. The login username when using built-in ArcGIS Server security. |
password |
Optional string. The password for the specified username. |
key_file |
Optional string. The path to a PKI key file used to authenticate the
user to the Web Server in front of the ArcGIS Server site. |
cert_file |
Optional string. The path to PKI cert file used to authenticate the
user to the web server in front of the ArcGIS Server site. |
proxy_host |
Optional string. The web address to the proxy host if the environment
where the Python API is running requires a proxy host for access to the
Site URL or GIS URL.
Example: proxy.mysite.com
|
proxy_port |
Optional integer. The port which the proxy is accessed through,
default is 80. |
expiration |
Optional integer. This is the length of time in minutes that a token
requested through this login process will be valid for.
Example: 1440 is one day. The Default is 60. |
all_ssl |
Optional boolean. If True, all calls will be made over HTTPS instead
of HTTP. The default is False. |
portal_connection |
Optional string. This is used when a site is federated. It is the
ArcGIS Enterprise portal GIS object representing the portal managing the site. |
initialize |
Optional boolean. If True, the object will attempt to reach out to
the URL resource and populate at creation time. The default is False. |
# Usage Example 3: Get the ArcGIS Server site that is federated to an Enterprise (using ``gis``)
server_base_url = "https://example.com"
gis = GIS(profile="your_ent_admin_profile")
gis_server = Server(url=f"{server_base_url}/web_adaptor/admin",
gis = gis)
# Usage Example 4: Get the ArcGIS Server site that is federated to an Enterprise (using ``portal_connection``)
server_base_url = "https://example.com"
gis = GIS(profile="your_ent_admin_profile")
gis_server = Server(url=f"{server_base_url}/web_adaptor/admin",
portal_connection=gis._portal.con)
-
property content: ServicesDirectory
Gets the Services Directory which can help you discover information about
services available on a particular server. A service represents a
local GIS resource whose functionality has been made available on
the server to a wider audience. For example, an ArcGIS Server
administrator can publish a Pro map or ArcMap map document (.mxd) as a map
service. Developers and clients can display the map service and
query its contents.
The Services Directory is available as part of the REST services
infrastructure available with ArcGIS Server installations. It
enables you to list the services available, including secured
services when you provide a proper login. For each service, a set
of general properties are displayed. For map services, these
properties include the spatial extent, spatial reference
(coordinate system) and supported operations. Layers are also
listed, with links to details about layers, which includes layer
fields and extent. The Services Directory can execute simple
queries on layers.
The Services Directory is also useful for finding information about
non-map service types. For example, you can use the Services
Directory to determine the required address format for a geocode
service, or the necessary model inputs for a geoprocessing service.
- Returns:
ServicesDirectory object
-
property datastores: DataStoreManager
Gets the information about the data holdings of the server.
Data items are used by ArcGIS Pro, ArcGIS Desktop, and other clients
to validate data paths referenced by GIS services.
You can register new data items with the server by using the
Register Data Item operation. Use the Find Data Items operation to
search through the hierarchy of data items.
A relational data store type represents a database platform that
has been registered for use on a portal’s hosting server by the
ArcGIS Server administrator. Each relational data store type
describes the properties ArcGIS Server requires in order to connect
to an instance of a database for a particular platform. At least
one registered relational data store type is required before client
applications such as Insights for ArcGIS can create Relational
Database Connection portal items.
The Compute Ref Count operation counts and lists all references to
a specific data item. This operation helps you determine if a
particular data item can be safely deleted or refreshed.
- Returns:
DataStoreManager object
-
property logs: LogManager
Gives users access the ArcGIS Server’s logs and lets
administrators query and find errors and/or problems related to
the server or a service.
Logs are the records written by the various components of ArcGIS
Server. You can query the logs and change various log settings.
Note
ArcGIS Server Only
- Returns:
LogManager object
-
property machines: MachineManager
Gets the list of server machines registered with the site.
This resource represents a collection of all the server machines that
have been registered with the site. It other words, it represents
the total computing power of your site. A site will continue to run
as long as there is one server machine online.
For a server machine to start hosting GIS services, it must be
grouped (or clustered). When you create a new site, a cluster called
‘default’ is created for you.
The list of server machines in your site can be dynamic. You can
register additional server machines when you need to increase the
computing power of your site or unregister them if you no longer
need them.
- Returns:
MachineManager object
-
property mode: Mode
ArcGIS Server site mode that allows you to control changes to your site.
You can set the site mode to READ_ONLY to disallow the publishing of new
services and block most administrative operations. Your existing services
will continue to function as they did previously. Note that certain
administrative operations such as adding and removing machines from a
site are still available in READ_ONLY mode.
- Returns:
Mode class
-
publish_sd(sd_file: str, folder: str | None = None, service_config: dict | None = None, future: bool = False, publish_options: dict | None = None, item_id: str | None = None) → bool
Publishes a service definition file to ArcGIS Server.
Parameter |
Description |
sd_file |
Required string. The path to the service definition file to be uploaded and published. |
folder |
Optional string. The folder in which to publish the service definition
file to. If this folder is not present, it will be created. The
default is None in which case the service definition will be published
to the System folder. |
service_config |
Optional Dict[str, Any]. A set of configuration overwrites that overrides the service definitions defaults. |
future |
Optional boolean. If True, the operation is returned immediately and a Job object is returned. |
publish_options |
Optional Dict[str, Any]. A set of specifications for the published item. |
item_id |
Optional string. The item ID of the item to be published. Must be a valid ID nonexistent in the server. |
- Returns:
If future=False, A boolean indicating success (True) or failure (False).
else when future=True, a Future object is returned.
-
property resources: list
returns the list of resources available on the server administration endpoint.
-
property services: ServiceManager
Gives the administrator access to the services on ArcGIS Server
- Returns:
ServiceManager or None
-
property site: SiteManager
Gets the site’s collection of server resources. This collection
includes server machines that are installed with ArcGIS Server,
including GIS services, data and so on. The site resource also
lists the current version of the software.
When you install ArcGIS Server on a server machine for the first
time, you must create a new site. Subsequently, newer server
machines can join your site and increase its computing power. Once
a site is no longer required, you can delete the site, which will
cause all of the resources to be cleaned up.
- Returns:
SiteManager
-
property system: SystemManager
Provides access to common system configuration settings.
- Returns:
SystemManager or None
-
property uploads: Uploads
Gets an object to work with the site uploads.
-
property usage: ReportManager
Gets the collection of all the usage reports created
within your site. The Create Usage Report operation lets you define
a new usage report.
- Returns:
ReportManager or None
-
property users
Gets operations to work with users.
- Returns:
UserManager object
ServicesDirectory
-
class arcgis.gis.server.catalog.ServicesDirectory(url: str = None, username: str = None, password: str = None, key_file: str = None, cert_file: str = None, verify_cert: bool = False, proxy: dict = None, **kwargs)
Bases: BaseServer
Provides ArcGIS Server Services Directory access.
The Services Directory allows you to browse the contents of an ArcGIS Server and obtain
information that can be useful to end-users for developing applications, performing analysis, or
cataloging services. The ServicesDirectory is a view of the ArcGIS Server REST API in a python
class.
- With the Services Directory, you can do the following:
Browse the contents of the GIS Server and get service-level metadata
Navigate a series of links to view information about the services on your GIS Server.
Get information to help you develop applications
When you develop applications with the Python API, you must provide URLs to services and the
layers and functionality they expose. The Services Directory provides an interactive way for
you to construct those URLs.
The Services Directory works using REST. REST is an architectural style that allows ArcGIS
Server to reveal a hierarchy of information about itself through endpoints, or URLs. When you
use the Services Directory, you navigate through a series of links to discover information
about the server. Each time you click a link, you see a new page that reveals additional
information about what’s available on the server. The information that you see on the page is
retrieved through REST using the page’s URL.
Parameter |
Description |
url |
string required. The web address to the ArcGIS Server administration
end point.
Example: https://mysite.com/arcgis
The URL should be formatted as follows:
<scheme>://<host>:<port (optional)>/<web adapter>
|
baseurl |
optional string, the root URL to a site.
Example: https://mysite.com/arcgis |
tokenurl |
optional string. Used when a site if federated or when the token
URL differs from the site’s baseurl. If a site is federated, the
token URL will return as the Portal token and ArcGIS Server users
will not validate correctly. |
username |
optional string, login username for BUILT-IN security |
password |
optional string, a secret word or phrase that must be used to gain
access to the account above. |
key_file |
optional string, path to PKI ket file |
cert_file |
optional string, path to PKI cert file |
proxy_host |
optional string, web address to the proxy host
Example: proxy.mysite.com
|
proxy_port |
optional integer, default is 80. The port where the proxy resided on |
expiration |
optional integer. The Default is 60. This is the length of time a
token is valid for.
Example 1440 is one week. |
all_ssl |
optional boolean. The default is False. If True, all calls will be
made over HTTPS instead of HTTP. |
portal_connection |
optional GIS. This is used when a site is federated. It is the
ArcGIS Online or Portal GIS object used. |
initialize |
optional boolean. The default is False. If True, the object will
attempt to reach out to the URL resource and populate at creation
time. |
verify_cert |
optional booean. The defaut is True. If False, any certificate
errors will be ignored. This is useful for new sites or where site
that have invalid certificates. |
-
find(service_name: str, folder: str | None = None)
finds a service based on it’s name in a given folder
-
property folders
returns a list of server folders
-
footprints(folder: str | None = None, out_sr: dict | None = None) → dict
Returns the Services’ extents for all services in a given folder.
Parameter |
Description |
folder |
Optional String. The name of the folder to examine for the footprints. |
out_sr |
Optional Integer. The well-known ID of the spatial reference. The default is 4326. |
- Returns:
dict[str, Any]
-
get(name: str, folder: str | None = None)
returns a single service in a folder
-
list(folder: str | None = None, as_dict: bool = False) → list | dict[str, Any]
The list method returns a list of services at the given folder.
The objects will vary in type according to the type of service. For
example, Feature Services
return FeatureLayerCollection objects,
Geoprocessing Services return
Toolbox objects, while Map
Services return MapImageLayer objects.
Note
This method is not to be confused with the
list method of the
ServerManager class, which returns
Server or
NotebookServer objects, or the
list method of
the ServiceManager class, which
returns a list of Service objects and modules.
-
report(as_html: bool = True, folder: str | None = None)
Generates a table of Services in the given folder, as a Pandas dataframe.
-
property session: EsriSession
returns the session for the ServiceDirectory
Service
-
class arcgis.gis.server.Service(url: str, gis: GIS, initialize: bool = False, **kwargs)
Bases: BaseServer
Represents a GIS administrative service
(This should not be created by a user)
-
change_provider(provider: str) → bool
Allows for the switching of the service provide and how it is hosted on the ArcGIS Server instance.
Values:
‘ArcObjects’ means the service is running under the ArcMap runtime i.e. published from ArcMap
‘ArcObjects11’: means the service is running under the ArcGIS Pro runtime i.e. published from ArcGIS Pro
‘DMaps’: means the service is running in the shared instance pool (and thus running under the ArcGIS Pro provider runtime)
- Returns:
Boolean
-
delete() → bool
deletes a service from arcgis server
-
edit(service: dict, future: bool = False) → tuple[bool, dict] | tuple[bool, AsyncJob]
To edit a service, you need to submit the complete JSON
representation of the service, which includes the updates to the
service properties. Editing a service causes the service to be
restarted with updated properties.
Parameter |
Description |
service |
Required dict. The service JSON as a dictionary. |
future |
Optional bool. Allows the operation to be run asynchronously when
True, else the operation is run synchronously. |
- Returns:
Boolean and the Service Message when future=False,
or AsyncJob when future=True
-
property extensions: list
lists the extensions on a service
-
property iteminformation: ItemInformationManager
Returns the item information
- Returns:
ItemInformationManager
-
property jobs: JobManager
returns a JobManager to manage asynchronous geoprocessing tasks
-
modify_extensions(extension_objects: list | None = None) → bool
enables/disables a service extension type based on the name
Parameter |
Description |
extension_objects |
Required list. A list of new extensions. |
- Returns:
Boolean
-
rename(new_name: str) → bool
Renames this service to the new name
Parameter |
Description |
new_name |
Required string. New name of the current service. |
- Returns:
Boolean
-
restart() → bool
restarts the current service
-
service_manifest(file_type: str = 'json') → str
The service manifest resource documents the data and other
resources that define the service origins and power the service.
This resource will tell you underlying databases and their location
along with other supplementary files that make up the service.
Parameter |
Description |
file_type |
Required string. This value can be json or xml. json return the
manifest.json file. xml returns the manifest.xml file. |
- Returns:
string
-
start() → bool
starts the specific service
-
property statistics: dict
returns the stats for the service
-
property status: dict
returns the status of the service
-
stop() → bool
stops the current service
-
property webhook_manager: ServiceWebHookManager
Returns an instance of ServiceWebHookManager,
the feature service-based webhook manager available at
ArcGIS Server 11.1 and later.
Extension
-
class arcgis.gis.server.Extension(type_name: str, capabilities: str, enabled: bool, max_upload_file_size: str | float | int, allowed_upload_filetype: str, properties: dict)
Bases: object
represents a service extension
-
property allowed_upload_filetypes: str
gets/sets the allowed upload file type
-
property capabilities: str
gets/sets the capabilities
-
property enabled: bool
gets/sets the extension is enabled
-
static fromJSON(value: str | dict) → Extension
returns the object from json string or dictionary
-
property max_upload_file_size: int | float
sets/gets the max upload file size
-
property properties: dict
gets/sets the extension properties
-
property typeName: str
gets the extension type
-
property value: dict
returns the object as a dictionary
Machine
-
class arcgis.gis.server.Machine(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
A resource to administer aspects of the machine on which the ArcGIS
Portal or Server software has been installed. A site is composed of one or
more server machines, each of which is registered with the site. The site’s
machines work together to host GIS services and data, and provide
administrative capabilities for the site. Each server machine is capable
of performing all these administrative tasks and hence a site can be thought
of as a distributed peer-to-peer network of machines. The server machine
communicates with its peers over a range of TCP and UDP ports that can be
configured using the
edit operation
Note
SSL Certificates
A certificate represents a key pair that has been digitally signed
and acknowledged by a Certifying Authority (CA). It is the most
fundamental component in enabling SSL on your server. Before you
enable SSL on your server, you need to
generate() certificates and get
them signed by a trusted CA. See the REST API
generate certificate
documentation for more information.
The operation creates a new self-signed certificate and adds it to the
keystore. For your convenience, the server is capable of generating
self-signed certificates that can be used during development or staging.
However, it is critical that you obtain CA-signed certificates when
standing up a production server.
In order to get a certificate signed by a CA, you need to generate a CSR
(certificate signing request) and then submit it to your CA. The CA will
sign your certificate request which can then be imported into the server
by using the
import CA signed certificate
operation.
-
delete_certificate(certificate: str) → bool
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) → 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:
The SSL certificate object.
-
generate_CSR(certificate: str) → dict
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: dict
This resource displays hardware information for the machine in your
ArcGIS 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) → bool
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) → bool
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 boolean indicating success (True) or failure (False).
-
import_root_certificate(alias: str, root_CA_certificate: str) → dict
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 boolean indicating success (True) or failure (False).
-
ssl_certificate(certificate: str)
Provides the self-signed certificate object.
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:
The certificate object.
-
property ssl_certificates: dict
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.
-
start() → bool
Starts this server machine. Starting the machine enables its
ability to host GIS services.
- Returns:
A boolean indicating success (True) or failure (False).
-
property status: dict
Gets the status/state of this machine.
-
stop() → bool
Stops this server machine. Stopping the machine disables its
ability to host GIS services.
- Returns:
A boolean indicating success (True) or failure (False).
-
synchronize() → bool
On occasion, one or more machines in a server site might be
unavailable due to network issues or because they are down
(intentionally or unintentionally). Once these machines become
available again, they will need to synchronize with the site to
pick up any changes made to the site during that downtime. This
is done automatically by the site, but it is only a one-time
attempt. If there are any issues with this synchronizing effort,
a SEVERE message is logged.
This operation allows administrators to manually synchronize specific
machines with the site. Synchronizing a machine with the site will
reconfigure the machine and redeploy all services. This will take a
few minutes. During this time, all administrative operations on the
site will be blocked.
- Returns:
Boolean
-
unregister() → bool
Removes this machine from the 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).
Report
-
class arcgis.gis.server.Report(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
(This class should not be created by a user)
A utility class representing a single usage report returned by ArcGIS Server.
A Usage Report is used to obtain ArcGIS Server usage data for specified
resources during a given time period. It specifies the parameters for
obtaining server usage data, time range (parameters since, from_value, to_value),
aggregation interval, and queries (which specify the metrics to be
gathered for a collection of server resources, such as folders and
services).
-
delete() → dict
Deletes this usage report.
- Returns:
A JSON indicating success.
-
edit() → dict
Edits the usage report. To edit a usage report, submit
the complete JSON representation of the usage report which
includes updates to the usage report properties. The name of the
report cannot be changed when editing the usage report.
Values are changed in the class, to edit a property like
metrics, pass in a new value.
- Returns:
A JSON indicating success.
-
query(query_filter: str | None = None) → dict
Retrieves server usage data for this report. This operation
aggregates and filters server usage statistics for the entire
ArcGIS Server site. The report data is aggregated in a time slice,
which is obtained by dividing up the time duration by the default
(or specified) aggregationInterval parameter in the report. Each
time slice is represented by a timestamp, which represents the
ending period of that time slice.
In the JSON response, the queried data is returned for each metric-
resource URI combination in a query. In the report-data section,
the queried data is represented as an array of numerical values. A
response of null indicates that data is not available or requests
were not logged for that metric in the corresponding time-slice.
Parameter |
Description |
query_filter |
Optional string. The report data can be filtered by the machine
where the data is generated. The filter accepts a comma-separated
list of machine names; * represents all machines. |
- Returns:
A JSON containing the server usage data.
USAGE EXAMPLE 1: Filters for the specified machines
{"machines": ["WIN-85VQ4T2LR5N", "WIN-239486728937"]}
USAGE EXAMPLE 2: No filtering, all machines are accepted
{"machines": "*"}
Datastore
-
class arcgis.gis.server.Datastore(datastore: DataStoreManager, path: str, datadict: dict | None = None, **kwargs)
Bases: BaseServer
Represents a single Datastore in the Data Store Manager.
-
property datasets: list
Gets the datasets in the data store (currently implemented for big data file shares).
-
delete() → bool
Unregisters this data item from the data store.
- Returns:
A boolean indicating success (True) or failure (False).
-
property hints: dict
Gets the hints resource for a big data file share. Hints
are advanced parameters to control the generation of a manifest.
Sets the hints resource for a big data file share. Hints
are advanced parameters to control the generation of a manifest.
Upload a hints file for a big data file share item. This will
replace the existing hints file. To apply the control parameters in
the hints file and regenerate the manifest, use the editDataItem to
edit the big data file share (using the same data store item as
input) which will regenerate the manifest. When a manifest is
regenerated, it will be updated only for datasets that have hints
and for new datasets that are added to the existing big data file
share location.
Parameter |
Description |
hints |
Required string. The hints file to be uploaded. |
-
property lifecycleinfos: dict[str, Any]
Returns information regarding when the data store item was created and last edited.
-
property manifest: dict
Gets the manifest resource for a big data file share.
-
property ref_count: dict
The total number of references to this data item that exist on the
server. You can use this property to determine if this data item
can be safely deleted or taken down for maintenance.
- Returns:
A number indictaing the number of references to this data item.
-
regenerate() → bool
This regenerates the manifest for a big data file share. You can
regenerate a manifest if you have added new data or if you have
uploaded a hints file using the edit resource.
- Returns:
Boolean. True = Success, False = Failure
-
update(item: str) → bool
Edits this data item to update its connection information.
Parameter |
Description |
item |
Required string. The dict representation of the updated item. |
- Returns:
True if the data item was successfully updated, False if the update failed.
-
validate() → bool
Validates that this data item’s path (for file shares) or connection string (for databases)
is accessible to every server node in the site. This is necessary for the data item to be
registered and used successfully with the server’s data store.
- Returns:
True if the data item was successfully validated.
User
-
class arcgis.gis.server.User(usermanager: UserManager, user_dict: dict)
Bases: dict
A resource representing a user in the user store that can administer ArcGIS Server.
-
add_role(role_name: str) → dict
Use this operation to assign roles to a user account when
working with a user and role store that supports reads and writes.
By assigning a role to a user, the user account automatically
inherits all the role’s permissions.
Parameter |
Description |
role_name |
Required string. A role name to assign to this user. |
- Returns:
A JSON indicating success.
-
delete() → bool
Deletes this user account.
- Returns:
A JSON indicating success.
-
update(password: str | None = None, full_name: str | None = None, description: str | None = None, email: str | None = None) → bool
Updates this user account in the user store.
Parameter |
Description |
password |
Optional string. The password for this user. |
full_name |
Optional string. A full name for this user. |
description |
Optional string. Provide comments or description for this user. |
email |
Optional string. An email for this user account. |
- Returns:
A JSON indicating success.
Role
-
class arcgis.gis.server.Role(rolemanager: RoleManager, roledict: dict)
Bases: dict
Represents a single role on server.
-
delete() → bool
Deletes this current role.
- Returns:
A boolean indicating success (True) or failure (False).
-
grant(username: str) → bool
Adds a user to this role.
Parmeters |
Description |
username |
Required string. The account name to add to the role. |
- Returns:
A boolean indicating success (True) or failure (False).
-
set_privileges(privilege: str) → bool
Assigns a privilege to this role.
Administrative access to ArcGIS Server is modeled as three broad
tiers of privileges:
ADMINISTER - A role that possesses this privilege has unrestricted administrative access to ArcGIS Server.
PUBLISH - A role with PUBLISH privilege can only publish GIS services to ArcGIS Server.
ACCESS - No administrative access. A role with this privilege can only be granted permission to access one or more GIS services.
By assigning these privileges to one or more roles in the role
store, ArcGIS Server’s security model supports role-based access
control to its administrative functionality.
These privilege assignments are stored independent of ArcGIS
Server’s role store. As a result, you don’t need to update your
enterprise identity stores (like Active Directory).
Parameter |
Description |
privilege |
Required string. The capability to assign to the role. Choices are
ADMINISTER, PUBLISH, ACCESS |
- Returns:
A boolean indicating success (True) or failure (False).
-
update(description: str | None = None) → dict
Updates this role in the role store with new information. This
operation is available only when the role store is a read-write
store such as the default ArcGIS Server store.
Parameter |
Description |
description |
Optional string. An optional field to add comments or a description for the role. |
- Returns:
A status dictionary.
ServerManager
-
class arcgis.gis.server.ServerManager(gis)
Bases: object
Class for managing your ArcGIS servers in
an ArcGIS Enteprise deployment. This class is not created by users directly,
but rather an instance of this class is accessed using the
servers property on the
PortalAdminManager object. Administrators access
the admin property on their gis connection
to get the PortalAdminManager. Methods on the ServerManager
object allow administrators to manage and qeury ArcGIS Servers.
# Accessing the ServerManger for an ArcGIS Enterprise organization
>>> from arcgis.gis import GIS
>>> gis = GIS(profile="your_enterprise_admin_profile")
>>> org_admin = gis.admin
>>> org_admin
< PortalAdminManager @ https://org.example.com/<web_adaptor>//portaladmin >
>>> server_mgr = org_admin.servers
>>> server_mgr
< ServerManager @ https://org.example.com/<web_adaptor>//portaladmin >
-
get(role: str | None = None, function: str | None = None)
Retrieves the ArcGIS Server(s) by role or function. While each argument is optional,
at least one argument must be set with an allowed value other than None.
Parameter |
Description |
role |
Optional string. Limits the returned ArcGIS Servers based on the
server’s role as either a hosting server, a federated server,
or a server with restricted access to publishing. The allowed values
are:
|
function |
Optional string. Limits the returned ArcGIS Servers based on the
server’s function. Provide a comma-separated list of values. Options
for server functions are:
RasterAnalytics
NotebookServer
KnowledgeServer
MissionServer
WorkflowManager
ImageHosting
GeoEvent Server
VideoServer
|
- Returns:
List of server(s) objects that match the criteria.
-
list()
Retrieves all servers in a GIS, retrieving a list of admin services.
Note
This method is not to be confused with the list
method on the ServicesDirectory class, which returns a variety of
services, such as a Feature Service, Map Service, Vector Tile, Geoprocessing Service, etc.
- Returns:
A list of all servers (in the form of admin service objects) found in the GIS.
-
property properties
The ServerManager properties
- Returns:
Dict
-
update(server: str, role: str, function: str | None = None)
This operation allows you to set an ArcGIS Server federated with
Portal for ArcGIS as the hosting server or to enforce fine-grained
access control to a federated server. You can also remove hosting
server status from an ArcGIS Server. To set a hosting server, an
enterprise geodatabase must be registered as a managed database
with the ArcGIS Server.
Parameter |
Description |
server |
Required string. The arcgis.gis.Server object. |
role |
Required string. State whether the server is either a hosting server
for the portal, a federated server, or a server with restricted access
to publishing. The allowed values are HOSTING_SERVER, FEDERATED_SERVER,
or FEDERATED_SERVER_WITH_RESTRICTED_PUBLISHING, respectively. |
function |
Optional string. The specific function associated with this server. Provide a
comma-separated list of values, but it is not recommend that a single
server have all the server functions. The allowed values are
RasterAnalytics and ImageHosting. |
- Returns:
A status message of ‘success’ with the ID of the ArcGIS Server.
-
validate(verbose: bool = False) → bool | dict
This operation returns information on the status of ArcGIS Servers
registered with Portal for ArcGIS.
Parameter |
Description |
verbose |
Optional bool. If true a dictionary with any messages will be returned. |
- Returns:
True if all servers are functioning as expected, False if there is an
issue with 1 or more of the Federated Servers.
when verbose=True the response will be a dictionary.
ServiceManager
-
class arcgis.gis.server.ServiceManager(url: str, gis: GIS, initialize: bool = False, sm: Server = None)
Bases: BaseServer
Helper class for managing services. This class is not created by users
directly, but rather an instance is accessed using the
services property of a Server
object.
# Usage Example: Initializing a ServiceManager object
>>> from arcgis.gis import GIS
>>> gis = GIS(profile="your_enterprise_admin_profile")
>>> server_mgr = gis.admin.servers
>>> site_server = server_mgr.get(function="RasterAnalytics")
>>> rax_service_mgr = site_server.services
>>> rax_service_mgr
< ServiceManager @ https://example.url.com/rasteranalytics/admin/services >
-
create_folder(folder_name: str, description: str = '') → bool
Creates a unique folder name on AGS
Parameter |
Description |
folder_name |
Required string. Name of the new folder. |
description |
Optional string. Description of what the folder is. |
- Returns:
Boolean
-
create_service(service: dict) → dict
Creates a new GIS service in the folder. A service is created by
submitting a JSON representation of the service to this operation.
The JSON representation of a service contains the following four
sections:
Service Description Properties-Common properties that are shared
by all service types. Typically, they identify a specific service.
Service Framework Properties-Properties targeted towards the
framework that hosts the GIS service. They define the life cycle
and load balancing of the service.
Service Type Properties -Properties targeted towards the core
service type as seen by the server administrator. Since these
properties are associated with a server object, they vary across
the service types. The Service Types section in the Help
describes the supported properties for each service.
Extension Properties-Represent the extensions that are enabled
on the service. The Extension Types section in the Help describes
the supported out-of-the-box extensions for each service type.
Parameter |
Description |
service |
Required dict. The service is the properties to create a service. |
- Returns:
Dict
- Output:
dictionary status message
-
delete_folder(folder_name: str) → bool
Removes a folder on ArcGIS Server
Parameter |
Description |
folder_name |
Required string. Name of the folder. |
- Returns:
Boolean
-
exists(folder_name: str, name: str | None = None, service_type: str | None = None) → bool
This operation allows you to check whether a folder or a service
exists. To test if a folder exists, supply only a folder_name. To
test if a service exists in a root folder, supply both serviceName
and service_type with folder_name=None. To test if a service exists
in a folder, supply all three parameters.
Parameter |
Description |
folder_name |
Required string. The folder name to check for. |
name |
Optional string. The service name to check for. |
service_type |
- Optional string. A service type. Allowed values:
GeometryServer | ImageServer | MapServer | GeocodeServer |
GeoDataServer | GPServer | GlobeServer | SearchServer
|
- Returns:
Boolean
-
property folders: list
returns a list of all folders
-
list(folder: str | None = None, refresh: bool = True) → list
returns a list of services in the specified folder
Parameter |
Description |
folder |
Required string. The name of the folder to list services from. |
refresh |
Optional boolean. Default is False. If True, the list of services will be
requested to the server, else the list will be returned from cache. |
- Returns:
list
-
publish_sd(sd_file: str, folder: str | None = None, service_config: dict | None = None) → bool
publishes a service definition file to arcgis server
Parameter |
Description |
sd_file |
Required string. File path to the .sd file. |
folder |
Optional string. This parameter allows for the override of the
folder option set in the sd file. |
service_config |
Optional dictionary that can override parameters configured in the
sd file. See CreateService
for full details on key-value pairs. |
- Returns:
Boolean
-
property service_properties: dict[str, Any]
The properties resource returns the default settings for newly
published services. Currently, the only supported property is
preferSharedInstances. The preferSharedInstances property
controls whether new, compatible services published from ArcGIS Pro
will use shared or dedicated instances. This property can be
modified using the update operation.
Parameter |
Description |
properties |
Required dict[str,Any]. A JSON object that describes each property
to be set. Currently, the only supported property is
preferSharedInstances. When set to true, compatible services will
use shared instances when first published. When set to false, they
will use dedicated instances. The default is true. |
- Returns:
dict[str,Any]
-
session: EsriSession | None = None
-
property types: TypesManager
The types resource provides metadata about all service types and
extensions that can be enabled on each service type. The services
framework uses this information to validate a service and construct
the various objects in the service. The metadata contains
identifiers for each object, a default list of capabilities,
properties, and other resource information (like WSDL and so
forth). Type information for a specific service type can be
accessed by appending the type name to this URL.
- Returns:
TypesManager
MachineManager
-
class arcgis.gis.server.MachineManager(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
This class provides management capabilities for a specific
Server machine in an ArcGIS Enterprise
deployment. Objects of this class are not meant to be initialized directly
but are accessed by the machines property
on a server.
# Usage Example: Accessing the machine for an ArcGIS Server
>>> from arcgis.gis import GIS
>>> gis = GIS(profile="your_enterprise_admin_profile")
>>> server_mgr = gis.admin.servers
>>> ra_server = server_mgr.get(function="RasterAnalytics")[0]
>>> ra_server
< Server @ https://organization.example.com/<web_adaptor>/admin >
>>> server_machine_mgr = ra_server.machines
>>> server_machine_mgr
< MachineManager @ https://organization.example.com/<web_adaptor>/admin/machines >
-
get(machine_name: str) → Machine
Provides the machine object for a given machine.
Parameter |
Description |
machine_name |
Required string. The name of the server. Example: machines_obj.get(“SERVER.DOMAIN.COM”) |
- Returns:
Machine object
-
list() → list
- Returns:
A list of machines that are part of the server configuration.
-
register(name: str, admin_url: str) → bool
For a server machine to participate in a site, it needs to be
registered with the site. The server machine must have ArcGIS
Server software installed and authorized.
Registering machines this way is a “pull” approach to growing
the site and is a convenient way when a large number of machines
need to be added to a site. A server machine can also
choose to join a site.
Parameter |
Description |
name |
Required string. The name of the server machine. |
admin_url |
Required string. The URL where the Administrator API is running on
the server machine. Example: http: //<machineName>:6080/arcgis/admin |
- Returns:
A boolean indicating success (True) or failure (False).
-
rename(name: str, new_name: str) → bool
You must use this operation if one of the registered machines
has undergone a name change. This operation updates any
references to the former machine configuration.
By default, when the server is restarted, it is capable of
identifying a name change and repairing itself and all its
references. This operation is a manual call to handle the
machine name change.
Parameter |
Description |
name |
Required string. The former name of the server machine that is
registered with the site. |
new_name |
Required string. The new name of the server machine. |
- Returns:
A boolean indicating success (True) or failure (False).
LogManager
-
class arcgis.gis.server.LogManager(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
Helper class for the management of logs by administrators. Logs are the
transaction records written by the various components of ArcGIS Server.
You can query the logs, change various log settings, and check error
messages for helping to determine the nature of an issue. This class is
not meant to be initialized directly, but instead is accessed as the
logs property on a
Server object:
#Usage Example: Initializing a Server LogManager of federated server
>>> from arcgis.gis import GIS
>>> gis = GIS(profile="your_enterprise_admin_profile")
>>> server_mgr = gis.admin.servers
>>> host_server = server_mgr.get(role="HOSTING_SERVER")[0]
>>> log_mgr = host_server.logs
<LogManager at https://example_server.com/<web_adaptor>/admin/logs>
See the Server logs
documentation for more details.
-
clean() → bool
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.
- Returns:
A boolean indicating success (True) or failure (False).
-
count_error_reports(machine: str = '*') → dict
This operation counts the number of error reports (crash reports) that have been generated
on each machine.
Parameter |
Description |
machine |
Optional string. The name of the machine on which to count the
reports. The default will return the count for all machines in a site. |
- Returns:
A dictionary with machine name and report count.
-
edit(level: str = 'WARNING', log_dir: str | None = None, max_age: int = 90, max_report_count: int = 10) → dict
Provides log editing capabilities for the entire site.
Parameter |
Description |
level |
Optional string. The log level. Can be one of (in severity order):
OFF, DEBUG, VERBOSE, FINE, INFO, WARNING, SEVERE. The default is WARNING. |
log_dir |
Optional string. The file path to the root of the log directory. |
max_age |
Optional integer. The number of days that a server should save a
log file. The default is 90. |
ax_report_count |
Optional integer. The maximum number of error report files per
machine. The default is 10. |
- Returns:
A JSON with the edited settings.
-
query(start_time: int | str | datetime | None = None, end_time: int | str | datetime | 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, max_records_return: int = 5000)
The query operation on the logs resource provides a way to
aggregate, filter, and page through logs across the entire site.
Parameter |
Description |
start_time |
Optional integer, string or datetime. The most recent time to query.
Default is current time. Time can be specified in:
milliseconds since UNIX epoch - integer
ArcGIS Server timestamp - string
Python datetime object - datetime
# Example for Unix Epoch:
log_resp = log_mgr.query(
start_time = 1312237040123,
...
)
# Example for Timestamp:
log_resp = log_mgr.query(
start_time="2024-10-18T13:00:00",
...
)
# Example for Datetime object:
import datetime as dt
starting_time = dt.datetime(2024, 10, 18, 13, 0, 0)
log_resp = log_mgr.query(
start_time=starting_time,
...)
|
end_time |
Optional integer, string or datetime. The previous time to query from.
Time can be specified in:
milliseconds since UNIX epoch - integer
ArcGIS Server timestamp - string
Python datetime object - datetime
Note
If since_server_start=True, the default is all logs since the
server was started.
|
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 List of comma separated strings denoting service names.
Query records related to a specific service(s). The default is “*”,
which queries all services.
Note
The string format is Folder_name/<service_name>.<service_type>.
For example:
log_mgr.query(
...
services="Hosted/streets.FeatureServer",
...
)
|
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 of integers and/or strings. Gets only the records with the
specified codes, or between the range of codes. If no argument is
provided, all codes are included.
See Log codes overview
for full details.
Note
Individual codes should be entered as integers. A range of codes
must be entered as a string:
res = log_manager.query(
...
codes = ["6500-7000", 12018]
...
)
|
process_IDs |
Optional list or comma-separated string. Query by the machine process ID 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. Choices are:
The default is CSV.
|
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. |
max_records_return |
Optional Int. The maximum amount of records to return. Default is 5000 |
- Returns:
A Python dictionary of the log items that match the query. If export option is set to True, the
output log file path is returned.
Example: Query all services for specific codes:
from arcgis.gis import GIS
gis = GIS(profile="your_enterprise_admin_profile")
server_mgr = gis.admin.servers
log_mgr = server_mgr.logs
query_resp = log_mgr.query(
start_time="2025-03-07T06:00:00",
end_time="2025-02-07T06:00:00",
codes=["7000-8000"],
services="Hosted/water_mains.FeatureServer",
level="WARNING"
)
-
property settings: dict
Gets the current log settings.
ReportManager
-
class arcgis.gis.server.ReportManager(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
A utility class for managing usage reports for ArcGIS Server.
-
create(reportname: str, queries: list, metadata: str | None = None, since: str = 'LAST_DAY', from_value: int | None = None, to_value: int | None = None, aggregation_interval: str | None = None) → dict
Creates a new usage report. A usage report is created by submitting
a JSON representation of the usage report to this operation.
See Create Usage Report
for details on the REST request bundled by this method.
Parameter |
Description |
reportname |
Required string. The unique name of the report. |
queries |
Required list of Python dictionaries for which to generate the
report. Each dictionary has two keys: resourceURIs and
metrics
# Usage Example
>>> server1.usage.create(
...
queries = [
{
"resourceURIs": [
"/services/Folder_name/",
"Forest_loss.FeatureServer"
],
"metrics": [
"RequestCount,RequestsFailed"
]
}
]
...
)
Each key’s corresponding value is a list of strings specifying
a resource for which to gather metrics, or the metrics to
gather, respectively.
resourceURIs –Comma-separated list that specifies the services or folders
for which to gather metrics, formatted as below:
services/ -
Entire Site
services/Folder/ -
Folder within a Site. Reports metrics aggregated across all
services within that folder and any sub-folders.
services/Folder/ServiceName.ServiceType -
Service in a specified folder.
service -
If in the root folder
metrics –Comma-separated string of specific measures to gather.
RequestCount — the number of requests received
RequestsFailed - the number of requests that failed
RequestsTimedOut — the number of requests that timed out
RequestMaxResponseTime — the maximum response time
RequestAvgResponseTime - the average response time
ServiceRunningInstancesMax — the maximum number of active service instances
sampled at one-minute intervals for a specified service.
Note
For ArcGIS Enterprise deployments at 11.0 and below, if you include
ServiceRunningInstancesMax, it must be the only metric included in the report.
RequestAvgWaitTime — the average time all requests waited for an available instance
RequestMaxWaitTime — the maximum time a request waited for an available instance
RequestMinWaitTime — the minimum time a request waited for an available instance
|
metadata |
Optional string. Any JSON object representing presentation tier
data for the usage report, such as report title, colors,
line-styles, etc. Also used to denote visibility in ArcGIS Server
Manager for reports created with the Administrator Directory. To
make any report created in the Administrator Directory visible to
Manager, include “managerReport”:true in the metadata JSON object.
When this value is not set (default), reports are not visible in
Manager. This behavior can be extended to any client that wants to
interact with the Administrator Directory. Any user-created value
will need to be processed by the client. |
since |
Optional string. The time duration of the report. The supported
values are: LAST_DAY, LAST_WEEK, LAST_MONTH, LAST_YEAR, CUSTOM
LAST_DAY represents a time range spanning the previous 24 hours.
This is the default value.
LAST_WEEK represents a time range spanning the previous 7 days.
LAST_MONTH represents a time range spanning the previous 30 days.
LAST_YEAR represents a time range spanning the previous 365 days.
CUSTOM represents a time range that is specified using the from
and to parameters.
|
from_value |
Optional integer. Only valid when since is CUSTOM. The timestamp
in milliseconds (since January 1, 1970, 00:00:00 GMT, the Unix epoch)
for the beginning period of the report.
# usage Example:
import datetime as dt
>>> sept1_2020 = int(dt.datetime(2020, 9, 1).timestamp()) * 1000
sept1_2020
1598943600000
|
to_value |
Optional integer. Only valid when since is CUSTOM. The timestamp
in milliseconds (since January 1, 1970, 00:00:00 GMT, the Unix epoch)
for the ending period of the report.
# usage Example:
import datetime as dt
now = int(dt.datetime.now().timestamp()) * 1000
|
aggregation_interval |
Optional string. The aggregation interval in minutes. Server metrics
are aggregated and returned for time slices aggregated using the
specified aggregation interval. The time range for the report,
specified using the since parameter (and from_value and
to_value when since is CUSTOM) is split into multiple slices, each
covering an aggregation interval. Server metrics are then aggregated
for each time slice and returned as data points in the report data.
When the aggregation_interval is not specified, the following defaults
are used:
day up to 30 days, and 1 week for longer periods.
If the interval specified in Usage Reports Settings is more than
the aggregationInterval, the interval is used instead.
|
- Returns:
A Report object.
USAGE EXAMPLE:
import datetime as dt
from arcgis.gis import GIS
>>> gis = GIS(profile="your_ent_profile", verify_cert=False)
>>> gis_servers = gis.admin.servers.list()
>>> gis_server = gis_servers[1]
>>> now = int(dt.datetime.now().timestamp()) * 1000
>>> sept1_2020 = int(dt.datetime(2020, 9, 1).timestamp()) * 1000
>>> query_obj = [{"resourceURIs": ["services/Map_bv_999.MapServer"],
"metrics": ["RequestCount"]}]
>>> r = gis_server.usage.create(reportname="SampleReport",
queries=query_obj,
metadata="This could be any String or JSON Object.",
since="CUSTOM",
from_value=sept1_2020,
to_value=now)
>>> r
<Report at https://server_url:6443/arcgis/admin/usagereports/SampleReport>
-
edit(interval: str, enabled: bool = True, max_history: int = 0) → dict
Edits the usage reports settings that are applied to the entire site.
Parameter |
Description |
interval |
Required string. Defines the duration (in minutes) for which the
usage statistics are aggregated or sampled, in-memory, before being
written out to the statistics database. |
enabled |
Optional string. When usage reports are enabled, service
usage statistics are collected and persisted to a statistics
database. When usage reports are disabled, the statistics are not
collected. The default is True (enabled). |
max_history |
Optional integer. The number of days after which usage statistics
are deleted from the statistics database. If the max_history
parameter is set to 0 (the default value), the statistics are
persisted forever. |
- Returns:
A JSON message indicating success.
-
list() → list
Retrieves a list of reports on the server.
- Returns:
A list of reports found.
-
quick_report(since: str = 'LAST_WEEK', queries: str = 'services/', metrics: str = 'RequestsFailed') → dict
Generates an on the fly usage report for a service, services, or folder.
See Create Usage Report
for full details on server reports.
Parameter |
Description |
since |
Optional string. The time duration of the report. The supported
values are:
LAST_DAY represents a time range spanning the previous 24 hours.
This is the default value.
LAST_WEEK represents a time range spanning the previous 7 days.
LAST_MONTH represents a time range spanning the previous 30 days.
LAST_YEAR represents a time range spanning the previous 365 days.
|
queries |
Opitonal string. A string of resources for which to generate the report.
Specified as a comma-separated sting of services or folders for which to
gather metrics.
services/ – Entire Site. The default.
services/Folder/ – Folder within a Site. Reports metrics
aggregated across all services within that Folder and Sub-Folders.
services/Folder/ServiceName.ServiceType – Service in a
specified folder, for example:
root folder – Service in the root folder-
# Example:
>>> my_server.usage.quick_report(
...
queries = "services/Hydroligic_Data/Lake_algae.FeatureServer,services/Mountains"
...
)
|
metrics |
Optional string. Comma separated list of metrics to be reported.
Supported metrics are:
RequestCount – the number of requests received
RequestsFailed – the number of requests that failed
RequestsTimedOut – the number of requests that timed out
RequestMaxResponseTime – the maximum response time
RequestAvgResponseTime – the average response time
ServiceRunningInstancesMax – the maximum number of running service instances,
sampled at one-minute intervals for a specified service.
Note
For ArcGIS Enterprise deployments at 11.0 and below, if you include ServiceRunningInstancesMax,
it must be the only metric included in the report.
RequestAvgWaitTime— the average time all requests waited for an available instance
RequestMaxWaitTime— the maximum time a request waited for an available instance
RequestMinWaitTime— the minimum time a request waited for an available instance
# Example:
>>> my_server.usage.quick_report(
...
metrics="RequestCount,RequestsFailed"
)
|
- Returns:
A Python dictionary of data on a successful query.
# Usage Example:
>>> gis = GIS(profile="my_own_portal", verify_cert=False)
>>> gis_servers = gis.admin.servers.list()
>>> srv = gis_servers[0]
>>> query_string = "services/Forests/Forests_degraded_2000.MapServer,services/Lakes/Lakes_drought_levels.MapServer"
>>> qk_report = srv.usage.quick_report(since = "LAST_MONTH",
queries = query_string,
metrics = "RequestCount,RequestsFailed")
>>> qk_report
{'report': {'reportname': '1fa828eb31664485ae5c25c76c86e28d',
'metadata': '{"temp":true,"title":"1fa828eb31664485ae5c25c76c86e28d","managerReport":false}',
'time-slices': [1598914800000, 1599001200000, 1599087600000, ... 1601420400000],
'report-data': [[{'resourceURI': 'services/Forests/Forests_degraded_2000.MapServer',
'metric-type': 'RequestCount', 'data': [None, 17, 928, ... 20]},
{'resourceURI': 'services/Forests/Forests_degraded_2000.MapServer',
'metric-type': 'RequestsFailed', 'data': [None, 225, None, ... 0]},
{'resourceURI': 'services/Lakes/Lakes_drought_levels.MapServer',
'metric-type': 'RequestCount', 'data': [0, 0, 7, ... 71]},
{'resourceURI': 'services/Lakes/Lakes_drought_levels.MapServer',
'metric-type': 'RequestsFailed', 'data': [None, None, 1 ... , 0]}]]}}
-
property settings: dict
Gets the current usage reports settings. The usage reports
settings are applied to the entire site. When usage
reports are enabled, service usage statistics are collected and
persisted to a statistics database. When usage reports are
disabled, the statistics are not collected. The interval
parameter defines the duration (in minutes) during which the usage
statistics are sampled or aggregated (in-memory) before being
written out to the statistics database. Database entries are
deleted after the interval specified in the max_history parameter (
in days), unless the max_history parameter is 0, for which the
statistics are persisted forever.
DataStoreManager
-
class arcgis.gis.server.DataStoreManager(url: str, gis: GIS = None, **kwargs)
Bases: BaseServer
This resource provides information about the data holdings of the
server, as well as the ability to manage (add new items, update primary
data store, remove a data store item, etc) the data store. Data items
are used by ArcGIS Pro, ArcGIS Desktop, and other clients to validate data paths
referenced by GIS services.
Note
A relational data store type represents a database platform that has been
registered for use on a portal’s hosting server by the ArcGIS Server
administrator. Each relational data store type describes the
properties ArcGIS Server requires in order to connect to an instance of
a database for a particular platform. At least one registered
relational data store type is required before client applications such
as Insights for ArcGIS can create Relational Database Connection portal
items.
Parameter |
Description |
url |
Required string. The URL to the Data Store URL. |
gis |
Optional string. The GIS, Server,
or ServicesDirectory object. |
-
add(item: dict) → Datastore
Registers a new data item with the data store.
- Returns:
The data item if registered successfully, None otherwise.
-
add_bigdata(name: str, server_path: str | None = None, connection_type: str = 'fileShare') → Datastore
Registers a bigdata fileshare with the data store.
Parameter |
Description |
name |
Required string. The unique bigdata fileshare name on the server. |
server_path |
Optional string. The path to the folder from the server. |
connection_type |
Optional string. Allows for the setting of the types of big data store.
The value ‘fileShare’ is used for local big data stores, and for
cloud stores, the connection_type should be ‘dataStore’. The value
‘fileShare’ is the default value. |
- Returns:
The big data fileshare if registered successfully, None otherwise.
-
add_cloudstore(name: str, conn_str: str, object_store: str, provider: str, managed: bool = False, folder: str | None = None) → Datastore
Cloud Store data item represents a connection to a Amazon or Microsoft Azure store.
Connection information for the data store item is stored within conn_str as a
stringified JSON. ArcGIS Server encrypts connection string for storage. Connection
strings that are encrypted will include a {crypt} prefix. You can get a data store
item with decrypted connection string by passing a decrypt=true parameter in the request
for a data store item. Data store with decrypted connection string will be returned only for
requests made with https. The examples below show data stores with decrypted conn_str.
A valid object_store (S3 bucket or Azure Blob store) is required. Folders within an object
store are optional.
Parameter |
Description |
name |
Required string. The name of the cloud store. |
conn_str |
Required string. The connection information for the cloud storage
product. |
object_store |
Required string. This is the amazon bucket path or Azuze path. |
provider |
Required string. Values must be amazon or azure. |
managed |
Optional boolean. When the data store is server only, the database
is entirely managed and owned by the server and cannot be accessed
by the publisher directly. When this option is chosen, the
managed property should be set to true. Otherwise it is false. |
folder |
Optional string. For some Azure cloud stores, an optional folder
can be specified. |
- Returns:
Datastore object or None
-
add_database(name: str, conn_str: str, client_conn_str: str | None = None, conn_type: str = 'shared') → Datastore
Registers a database with the data store.
Parameter |
Description |
name |
Required string. The unique database name on the server. |
conn_str |
Required string. The path to the folder from the server (and client,
if shared or serverOnly database) |
client_conn_str |
Optional string. The connection string for client to connect to replicated enterprise database> |
conn_type |
Optional string. The connection type. Default value is shared,
other choices are replicated or serverOnly |
- Returns:
The data item if successfully registered, None otherwise.
-
add_folder(name: str, server_path: str, client_path: str | None = None) → Datastore
Registers a folder with the data store.
Parameter |
Description |
name |
Required string. The unique fileshare name on the server. |
server_path |
Required string. The path to the folder from the server (and client, if shared path). |
client_path |
Optional string. If folder is replicated, the path to the folder from
the client; if folder is shared, don’t set this parameter. |
- Returns:
The data item if successfully registered, None otherwise.
-
add_object_store(name: str, conn_str: str, object_store: str, provider: str, folder: str | None = None) → Datastore
Object-store data item represents a connection to a Amazon or Microsoft Azure store.
Parameter |
Description |
name |
Required string. The name of the cloud store. |
conn_str |
Required string. The connection information for the cloud storage
product. |
object_store |
Required string. This is the amazon bucket path or Azuze path. |
provider |
Required string. Values must be amazon or azure. |
folder |
Optional string. For some Azure cloud stores, an optional folder
can be specified. |
- Returns:
Datastore object or None
-
property config: dict
Gets the data store configuration properties. These properties
affect the behavior of the data holdings of the server. For
example, the blockDataCopy property - when this property is false,
or not set at all, copying data to the site when publishing services
from a client application is allowed. This is the default behavior.
When this property is true, the client application is not allowed to
copy data to the site when publishing. Rather, the publisher is
required to register data items through which the service being
published can reference data. Values: true | false
This operation allows you to update the data store configuration
You can use this to allow or block the automatic copying of data
to the server at publish time
Parameter |
Description |
config |
Required string. A JSON string containing the data store configuration. |
- Returns:
JSON dictionary of the set configuration properties.
-
property data_items: dict
Gets the list of data items that are the root of all other data items in the data store.
-
federate_data_item(path: str) → bool
This operation can be used to create a data store item in the portal
for a data store that has been registered with one of the portal’s
federated ArcGIS Server sites.
Once the operation is complete, a data store item is created in the
portal with which the ArcGIS Server site is federated. If the data
store is registered with only this federated server, no further
steps are required. However, if the data store is registered with
multiple federated servers and you want any of those servers to
access the data store item, you need to bind the data store item
with an additional federated server or servers using the
PortalDataStore.register method.
Parameter |
Description |
path |
Required string. The item path for the database, cloud, or file
share data store for which you want to create a data store item. |
- Returns:
Boolean
-
generate_connection_string(sde: str) → str
Converts an SDE connection file to a string with encrypted password.
Parameter |
Description |
sde |
required string. Path to SDE connection file. |
- Returns:
string on success, None on failure
# Usage
>>> con = dm.generate_connection_string("c:\myfolder\postgres_db.sde")
>>> print(con)
'ENCRYPTED_PASSWORD=************************;SERVER=localhost;
INSTANCE=sde:postgresql:localhost,5432;DBCLIENT=postgresql;
DB_CONNECTION_PROPERTIES=localhost,5432;DATABASE=esri_spatial;
USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS'
-
get(path: str) → Datastore
Retrieves the data item object at the given path.
Parameter |
Description |
path |
Required string. The path to the data item. |
- Returns:
The data item object, None if not found.
-
get_relational_datastore_type(type_id: str) → list
This resource lists the properties of a registered relational data
store of the given type. The properties returned are those that client
applications must provide when creating a Relational Database
Connection portal item.
Note
This method only works if using ArcGIS Insights.
- Returns:
A JSON string listing the properties
-
get_total_refcount(path: str) → dict
The total number of references to a given data item
that exists on the server. You can use this operation to
determine if a data resource can be safely deleted, or taken
down for maintenance.
Parameter |
Description |
path |
Required string. The complete hierarchical path to the item. |
- Returns:
A JSON dictionary containing a number representing the total count.
-
list() → list
Retrieves a list of datastore objects.
- Returns:
The list of Datastore objects.
-
make_datastore_machine_primary(item_name: str, machine_name: str) → bool
Promotes a standby machine to the primary Data Store machine. The
existing primary machine is downgraded to a standby machine.
Parameter |
Description |
item_name |
Required string. The primary machine item name in the data store. |
machine_name |
Required string. The machine name of the machine to promote to primary. |
- Returns:
A boolean indicating success (True) or failure (False).
-
make_primary(datastore_name: str, machine_name: str) → bool
Promotes a standby machine to the primary Data Store machine. The
existing primary machine is downgraded to a standby machine.
Parameter |
Description |
datastore_name |
Required string. The primary machine name in the data store. |
machine_name |
Required string. The machine name of the machine to promote to primary. |
- Returns:
A boolean indicating success (True) or failure (False).
-
property relational_datastore_types: dict
Gets a list of the relational data store types that have been
registered with the server. Each registered relational data store
type has both an id and a name property, as well as an array of
userDefinedProperties, which indicates the properties client
applications must provide when creating a Relational Database
Connection portal item. Only administrators can register and
unregister a relational data store type. The following database
platforms are supported: SAP HANA, Microsoft SQL Server and
Teradata.
-
remove_datastore_machine(item_name: str, machine_name: str) → bool
Removes a standby machine from the Data Store. This operation is
not supported on the primary Data Store machine.
Parameter |
Description |
item_name |
Required string. The standby machine item name in the data store. |
machine_name |
Required string. The machine name of the machine to remove. |
- Returns:
A boolean indicating success (True) or failure (False).
-
search(parent_path: str | None = None, ancestor_path: str | None = None, types: str | None = None, id: str | None = None, **kwargs) → list
Use this operation to search through the various data items that are registered in the server’s data store.
Parameter |
Description |
parent_path |
Optional string. The path of the parent under which to find items. |
ancestor_path |
Optional string. The path of the ancestor under which to find items. |
types |
Optional string. A filter for the type of the items (for example, fgdb or folder or egdb). |
id |
Optional string. A filter to search by the ID of the item. |
- Returns:
A JSON list of the items found matching the search criteria.
-
start(item_name: str, machine_name: str) → bool
Starts the database instance running on the Data Store machine.
Parameter |
Description |
item_name |
Required string. The database item name in the data store to start. |
machine_name |
Required string. The machine name of the machine with the database
instance to start. |
- Returns:
A boolean indicating success (True) or failure (False).
-
stop(item_name: str, machine_name: str) → bool
Stop the database instance running on the Data Store machine.
Parameter |
Description |
item_name |
Required string. The database item name in the data store to stop. |
machine_name |
Required string. The machine name of the machine with the database
instance to stop. |
- Returns:
A boolean indicating success (True) or failure (False).
-
validate() → bool
Validates all the items in the data store.
- Returns:
True if all items are valid.
-
validate_egdb(data_store_name: str, name: str) → dict
Checks the status of the given ArcGIS Data Store and provides a health check response.
Parameter |
Description |
data_store_name |
Required string. The item name of the data store. |
name |
Required string. The machine name of where the data store is. |
- Returns:
A JSON response containing general status information and an overall health report.
UserManager
-
class arcgis.gis.server.UserManager(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
This resource represents all users available in the user store that can
administer ArcGIS Server and access the GIS services hosted on the
server. As the user space could be potentially large, and there is not a listing
of users, but you can use Get Users or Search operations to access
their account information.
ArcGIS Server is capable of connecting to your enterprise identity
stores such as Active Directory or other directory services exposed
through the LDAP protocol. Such identity stores are treated as read
only, and ArcGIS Server does not attempt to update them. As a result,
operations that need to update the identity store (such as adding
users, removing users, updating users, assigning roles and removing
assigned roles) are not supported when identity stores are read only.
On the other hand, you could configure your ArcGIS Server to use the
default identity store (shipped with the server) which is treated as a
read-write store.
The total number of users are returned in the response.
Note
Typically, this resource must be accessed over an HTTPS connection.
-
create(username: str, password: str, fullname: str | None = None, description: str | None = None, email: str | None = None) → dict
Adds a user account to the user store.
Parameter |
Description |
username |
Required string. The name of the new user. The name must be unique
in the user store. |
password |
Optional string. The password for this user. |
fullname |
Optional string. A full name for this user. |
description |
Optional string. Provide comments or description for this user. |
email |
Optional string. An email for this user account. |
- Returns:
A JSON indicating success.
-
get(username: str) → User
Finds a specific user.
Parameter |
Description |
username |
Required string. The user to find. |
- Returns:
The User object or None.
-
property me: str
Gets the user object as the current logged in user. If the username
cannot be found, for example, the site administrator account, then
just the username is returned.
- Returns:
The User object or username
-
property roles
Helper object to manage custom roles for users
- Returns:
RoleManager object
-
search(username: str, max_results: int = 25) → list
You can use this operation to search a specific user or a group of
users from the user store. The size of the search result can be
controlled with the max_results parameter.
Parameter |
Description |
username |
Required string. The user or users to find. |
max_results |
Optional integer. The maximum number of users to return for this
query. The default is 25. |
- Returns:
A list of users found.
RoleManager
-
class arcgis.gis.server.RoleManager(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
This resource represents all roles available in the role store. The
ArcGIS Server security model supports a role-based access control in
which each role can be assigned certain permissions (privileges) to
access one or more resources. Users are assigned to these roles. The
server then authorizes each requesting user based on all the roles
assigned to the user.
ArcGIS Server is capable of connecting to your enterprise identity
stores such as Active Directory or other directory services exposed via
the LDAP protocol. Such identity stores are treated as read-only stores
and ArcGIS Server does not attempt to update them. As a result,
operations that need to update the role store (such as adding roles,
removing roles, updating roles) are not supported when the role store
is read-only. On the other hand, you can configure your ArcGIS Server
to use the default role store shipped with the server, which is
treated as a read-write store.
-
all(start_index: int = 0, page_size: int = 10) → list
This operation gives you a pageable view of roles in the role
store. It is intended for iterating through all available role
accounts. To search for specific role accounts instead, use the
Search Roles operation.
Parameter |
Description |
start_index |
Optional integer. The starting index (zero-based) from the roles
list to be returned in the result page. The default is 0. |
page_size |
Optional integer. The maximum number of roles to return in the
result page. The default size is 10. |
- Returns:
A JSON dictionary containing the list of roles found and a boolean on if there are more roles.
-
property count: dict
Gets the number of roles for ArcGIS Server.
-
create(name: str, description: str | None = None) → bool
Adds a role to the role store. This operation is available only
when the role store is a read-write store such as the default
ArcGIS Server store.
If the name of the role exists in the role store, an error will
be returned.
Parameter |
Description |
name |
Required string. The name of the new role. The name must be unique
in the role store. |
description |
Optional string. Provide comments or description for the role. |
- Returns:
A JSON message as dictionary
-
get_role(role_id: str | None = None, max_count: int = 10) → list
Use this operation to search a specific role or a group
of roles from the role store.
Parameter |
Description |
role_id |
Optional string. A filter string to search for the roles |
max_count |
Optional integer. The maximum number of the result items that can
be retuned. The default is 10. |
- Returns:
A JSON message as dictionary.
SystemManager
-
class arcgis.gis.server.SystemManager(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
The System resource is a collection of miscellaneous server-wide
resources such as server properties, server directories, the
configuration store, Web Adaptors, and licenses.
-
clear_cache() → bool
This operation clears the cache on all REST handlers in the system.
While the server typically manages the REST cache for you, use this
operation to get explicit control over the cache.
- Returns:
A boolean indicating success (True).
-
property configuration_store: ConfigurationStore
Gets the ConfigurationStore object for this site.
- Returns:
ConfigurationStore
-
property deployment: dict
Gets the load balancing value for this site. Load balancing is an
ArcGIS Server deployment configuration resource that can
control the load balancing functionality between GIS server
machines. A value of True means that load balancing is disabled.
singleClusterMode - At 10.4, in large sites with a single cluster,
the site is configured to prevent load balancing between GIS
server machines. This reduces network traffic between machines
in the site and helps reduce load on your network. Upgrades
from earlier versions will set this property to true if the
site uses a single cluster. Sites with multiple clusters cannot
use singleClusterMode.
To prevent load balancing, the following criteria must be met:
All machines in the site must participate in a single
cluster. Multiple clusters cannot exist.
An external load balancer or ArcGIS Web Adaptor must be
configured to forward requests to the site. If no external
gateway exists, requests will only be handled by the
machine designated in the request.
To enable load balancing, set this property to false. Updating
this property will restart all machines in the site.
-
property directories: DirectoryManager
- Returns:
The ServerDirectory object in a list.
-
property handlers: dict
Gets the handler of this server. A handler exposes the GIS capabilities of ArcGIS Server through a
specific interface/API. There are two types of handlers currently
available in the server:
The Rest Handler resource exposes some of the administrative
operations on the REST handler such as clearing the cache.
-
property jobs: Jobs
Gets the Jobs object.
- Returns:
Jobs object
-
property licenses: dict
Gets the license resource list. The licenses resource lists the
current license level of ArcGIS for Server and all authorized
extensions. Contact Esri Customer Service if you have questions
about license levels or expiration properties.
-
property platform_services: PlatformServiceManager
Provides access to the platform services that are associated with GeoAnalytics.
-
property rest_handler: dict
Gets a list of resources accessible throught the REST API.
-
property server_properties: ServerProperties
Gets the server properties for the site as an object.
- Returns:
ServerProperties object
-
property soap_config: dict
The soap_config resource lists the URLs for domains allowed to
make cross-domain requests, including SOAP and OGC service requests.
If the value for origins is not updated, no restrictions on
cross-domain requests will be made.
The set operation allows you to restrict cross-domain requests to
specific domains, including SOAP and OGC service requests. By default,
no domains are restricted.
Parameter |
Description |
origins |
Optional String. A comma-separated list of URLs of domains allowed
to make requests. The default value, *, denotes all domains, meaning
none are restricted. |
- Returns:
dict
-
unregister_webadaptor(wa_id: str) → bool
Unregistering a Web Adaptor removes the Web Adaptor from the ArcGIS
Server’s trusted list. The Web Adaptor can no longer submit requests
to the server.
Parameter |
Description |
wa_id |
Required string. The web adaptor ID. |
- Returns:
A boolean indicating success (True).
-
update_web_adaptor(wa_id: str, description: str, http_port: int, https_port: int) → bool
This operation allows you to update the description, HTTP port, and
HTTPS port of a Web Adaptor that is registered with the server.
Note
This operation is only meant to change the descriptive properties
of the Web Adaptor and does not affect the configuration of the web
server that deploys your Web Adaptor.
Parameter |
Description |
wa_id |
Required string. The web adaptor ID. |
description |
Required string. A description of this web adaptor. |
http_port |
Required integer. The HTTP port of the web server. |
https_port |
Required integer. The HTTPS (SSL) port of the web server that runs
the web adaptor. |
- Returns:
A boolean indicating success (True), else a Python dictionary containing an error message.
-
update_web_adaptors_configuration(config: str) → bool
You can use this operation to change the Web Adaptor configuration
and the sharedkey attribute. The sharedkey attribute must be present
in the request.
Parameter |
Description |
config |
Required string. The configuration items to be updated for this web
adaptor. Always include the web adaptor’s sharedkey attribute. |
- Returns:
A boolean indicating success (True), else a Python dictionary containing an error message.
-
property web_adaptors: dict
Gets a list of all the Web Adaptors that have been registered
with the site. The server will trust all these Web Adaptors and
will authorize calls from these servers.
To configure a new Web Adaptor with the server, you’ll need to use
the configuration web page or the command line utility. For full
instructions, see Configuring the Web Adaptor after installation.
-
property web_adaptors_configuration: dict
Gets the Web Adaptors configuration which is a resource of all the
configuration parameters shared across all the Web Adaptors in the
site. Most importantly, this resource lists the shared key that is
used by all the Web Adaptors to encrypt key data bits for the
incoming requests to the server.
SiteManager
-
class arcgis.gis.server.SiteManager(server: Server, initialize: bool = False)
Bases: object
A site is a collection of server resources. This collection includes
server machines that are installed with ArcGIS Server, including GIS
services, data and so on. The site resource also lists the current
version of the software.
When you install ArcGIS Server on a server machine for the first time,
you must create a new site. Subsequently, newer server machines can
join your site and increase its computing power. Once a site is no
longer required, you can delete the site, which will cause all of
the resources to be cleaned up.
Parameter |
Description |
server |
Required string. The arcgis.gis.server object. |
-
static create(username: str, password: str, config_store_connection: str, directories: str, cluster: str | None = None, logs_settings: str | None = None, run_async: bool = False, **kwargs)
This is the first operation that you must invoke when you install
ArcGIS Server for the first time. Creating a new site involves:
Allocating a store to save the site configuration
Configuring the server machine and registering it with the site
Creating a new cluster configuration that includes the server machine
Configuring server directories
Deploying the services that are marked to auto-deploy
Because of the sheer number of tasks, it usually takes some time
for this operation to complete. Once a site has been created,
you can publish GIS services and deploy them to your server
machines.
Parameter |
Description |
url |
Required string. URI string to the site. |
username |
Required string. The name of the administrative account to be used by
the site. This can be changed at a later stage. |
password |
Required string. The password to the administrative account. |
configStoreConnection |
Required string. A JSON object representing the connection to the
configuration store. By default, the configuration store will be
maintained in the ArcGIS Server installation directory. |
directories |
Required string. A JSON object representing a collection of server
directories to create. By default, the server directories will be
created locally. |
cluster |
Optional string. An optional cluster configuration. By default, the
site will create a cluster called ‘default’ with the first available
port numbers starting from 4004. |
logsSettings |
Optional string. Optional log settings, see https://developers.arcgis.com/rest/enterprise-administration/server/logssettings.htm . |
run_async |
Optional boolean. A flag to indicate if the operation needs to be run
asynchronously.
|
Optional Argument |
Description |
baseurl |
Optional string. The root URL to a site.
Example: https://mysite.example.com/arcgis |
tokenurl |
Optional string. Used when a site is federated or when the token
URL differs from the site’s baseurl. If a site is federated, the
token URL will return as the Portal token and ArcGIS Server users
will not validate correctly. |
username |
Optional string. The login username when using built-in ArcGIS Server security. |
password |
Optional string. The password for the specified username. |
key_file |
Optional string. The path to PKI key file. |
cert_file |
Optional string. The path to PKI cert file. |
proxy_host |
Optional string. The web address to the proxy host.
Example: proxy.mysite.com
|
proxy_port |
Optional integer. The port where the proxy resides on, default is 80. |
expiration |
Optional integer. This is the length of time a token is valid for.
Example 1440 is one week. The Default is 60. |
all_ssl |
Optional boolean. If True, all calls will be made over HTTPS instead
of HTTP. The default is False. |
portal_connection |
Optional string. This is used when a site is federated. It is the
ArcGIS Enterprise portal GIS object representing the portal managing the site. |
initialize |
Optional boolean. If True, the object will attempt to reach out to
the URL resource and populate at creation time. The default is False. |
- Returns:
Success statement.
-
delete() → dict
Deletes the site configuration and releases all server resources.
This operation is well suited
for development or test servers that need to be cleaned up
regularly. It can also be performed prior to uninstall. Use caution
with this option because it deletes all services, settings, and
other configurations.
This operation performs the following tasks:
Stops all server machines participating in the site. This in
turn stops all GIS services hosted on the server machines.
All services and cluster configurations are deleted.
All server machines are unregistered from the site.
All server machines are unregistered from the site.
The configuration store is deleted.
Note
This is an unrecoverable operation!
- Returns:
A status indicating success or failure.
-
export(location: str | None = None, location_config: dict | None = None) → dict
Exports the site configuration to a location you specify as input
to this operation.
Parameter |
Description |
location |
Optional string. A path to a folder accessible to the server
where the exported site configuration will be written. If a location
is not specified, the server writes the exported site configuration
file to directory owned by the server and returns a virtual path
(an HTTP URL) to that location from where it can be downloaded. |
location_config |
Optional Dict. The location configuration defines where the storage
type is. If using cloud storage, connection information such as
bucket or container, and credentials, and cloud region are defined
here. |
- Returns:
A status indicating success (along with the folder location) or failure.
-
import_site(location: str, location_config: dict | None = None) → dict
This operation imports a site configuration into the currently
running site. Importing a site means replacing all site
configurations (including GIS services, security configurations,
and so on) of the currently running site with those contained in
the site configuration file you supply as input. The input site
configuration file can be obtained through the exportSite
operation.
This operation will restore all information included in the backup,
as noted in exportSite. When it is complete, this operation returns
a report as the response. You should review this report and fix any
problems it lists to ensure your site is fully functioning again.
The importSite operation lets you restore your site from a backup
that you created using the exportSite operation.
Parameter |
Description |
location |
Required string. A file path to an exported configuration or an ID
referencing the stored configuration on the server. |
location_config |
Optional Dict. The location configuration defines where the storage
type is. If using cloud storage, connection information such as
bucket or container, and credentials, and cloud region are defined
here. |
- Returns:
A status indicating success (along with site details) or failure.
-
join(admin_url: str, username: str, password: str) → dict
The Join Site operation is used to connect a server machine to an
existing site. This is considered a ‘push’ mechanism, in which a
server machine pushes its configuration to the site. For the
operation to be successful, you need to provide an account with
administrative privileges to the site.
When an attempt is made to join a site, the site validates the
administrative credentials, then returns connection information
about its configuration store back to the server machine. The
server machine then uses the connection information to work with
the configuration store.
If this is the first server machine in your site, use the Create
Site operation instead.
Parameter |
Description |
admin_url |
Required string. The site URL of the currently live site. This is
typically the Administrator Directory URL of one of the server
machines of a site. |
username |
Required string. The name of an administrative account for the site. |
password |
Required string. The password of the administrative account. |
- Returns:
A status indicating success or failure.
-
property properties: dict
Gets the site properties.
-
property public_key: dict
Returns the public key of the server that can be used by a client
application (or script) to encrypt data sent to the server using the
RSA algorithm for public-key encryption. In addition to encrypting
the sensitive parameters, the client is also required to send to
the server an additional flag encrypted with value set to true. As
the public key for the server can be changed at a later time, the
client must fetch it on each request before encrypting the data
sent to the server.
- Returns:
dict
-
upgrade(run_async: bool = False) → dict
This is the first operation that must be invoked during an ArcGIS
Server upgrade. Once the new software version has been installed
and the setup has completed, this operation will be available. A
successful run of this operation will complete the upgrade of
ArcGIS Server.
Note
If errors are returned with the upgrade operation, you must address
the errors before you can continue. For example, if you encounter
an error about an invalid license, you will need to re-authorize
the software using a valid license and you may then retry this
operation.
This operation is available only when a server machine is currently
being upgraded. It will not be available after a successful upgrade
of a server machine.
Parameter |
Description |
run_async |
Required string. A flag to indicate if the operation needs to be run
asynchronously. The default value is False. |
debug |
Optional Boolean. Introduced at 11.0. This parameter sets the log
level for the upgrade process. If true, the log level is set to
DEBUG during the upgrade, which can aid in troubleshooting issues
related to the upgrade process. If false, the log level is set to
VERBOSE during the upgrade process. The default value is false. |
- Returns:
A status indicating success or failure.
TypesManager
-
class arcgis.gis.server.TypesManager(uploads: Uploads, url: str, session: EsriSession)
Bases: object
The types resource provides metadata about all service types and
extensions that can be enabled on each service type. The services
framework uses this information to validate a service and construct the
various objects in the service. The metadata contains identifiers for
each object, a default list of capabilities, properties, and other
resource information (like WSDL and so forth). Type information for a
specific service type can be accessed by appending the type name to
this URL.
-
property extension: ExtensionManager
The extensions resource is a collection of all the custom server
object extensions that have been uploaded and registered with the
server. You can register new server object extensions using the
Register Extension operation. When updating an existing extension,
you need to use the Update Extension operation. If an extension is
no longer required, you can use the Unregister operation to remove
the extension from the site.
-
property properties: dict[str, Any]
returns the types properties
-
property provider: ProvidersManager
The providers resource returns the supported provider types for the
GIS services in your organization. Starting at ArcGIS Enterprise
10.9.1, this resource includes an enabled providers section that
specifies which of the supported providers are currently enabled.
At Enterprise 11.0, only ArcObjects11 is supported as an enabled
provider.
-
session: EsriSession | None = None
-
uploads: Uploads
-
url: str | None = None
ProvidersManager
-
class arcgis.gis.server.ProvidersManager(url: str, session: EsriSession)
Bases: object
The providers resource returns the supported provider types for the
GIS services in your organization. Starting at ArcGIS Enterprise
10.9.1, this resource includes an enabled providers section that
specifies which of the supported providers are currently enabled.
At Enterprise 11.0, only ArcObjects11 is supported as an enabled
provider.
-
get(provider: str) → dict[str, Any]
Returns the supported services for a given provider
Parameter |
Description |
provider |
Required String. The single provider to return supported service
information on. The registered providers can be obtained from the
properties property. The provider types will vary based on your
version of ArcGIS Server. |
- Returns:
dict
-
property properties: dict[str, Any]
returns the properties of the endpoint.
-
session: EsriSession
-
url: str
ExtensionManager
-
class arcgis.gis.server.ExtensionManager(url: str, session: EsriSession, um: Uploads)
Bases: object
Manages the Service Extension Objects
-
property extensions: Iterable[RegisteredExtension]
returns all the registered extensions
-
property properties: dict[str, Any]
returns the properties of the extension
-
register(file_path: str) → bool
Registers a new extension
Parameter |
Description |
file_path |
Required str. The path to the SOI/SOE zipped file. |
- Returns:
dict
-
session: EsriSession
-
url: str
RegisteredExtension
-
class arcgis.gis.server.RegisteredExtension(url: str, session: EsriSession, extension_name: str, properties: dict[str, Any], upload: Uploads)
Bases: object
Represents a single SOE or SOI deployment.
-
delete() → bool
Removes the extension from the server
-
extension_name: str | None = None
-
property name: str
returns the SOI/SOE name
-
property properties: dict[str, Any]
returns the properties of the extension
-
session: EsriSession | None = None
-
update(file_path: str) → bool
updates the extension
-
url: str | None = None
DirectoryManager
-
class arcgis.gis.server.DirectoryManager(system)
Bases: object
A collection of all the server directories is listed under this
resource.
You can add a new directory using the Register Directory operation. You
can then configure GIS services to use one or more of these
directories. If you no longer need the server directory, you must
remove the directory by using the Unregister Directory operation.
-
add(name: str, physicalPath: str, directoryType: str, maxFileAge: int, cleanupMode: str = 'NONE', description: str | None = None) → bool
Registers a new server directory. While registering the server
directory, you can also specify the directory’s cleanup parameters.
Parameter |
Description |
name |
Required string. The name of the server directory. |
physical_path |
Required string. The absolute physical path of the server directory. |
directory_type |
Required string. The type of server directory. |
max_age |
Required integer. The length of time a file in the directory needs
to be kept before it is deleted. |
cleanup_mode |
Optional string. Defines if files in the server directory needs to
be cleaned up. The default is None. |
description |
Optional string. An optional description for the server directory.
The default is None. |
- Returns:
A boolean indicating success (True).
-
all() → list
Provides a configuration of this server directory.
Server directories are used by GIS services as a location to output
items such as map images, tile caches, and geoprocessing results.
In addition, some directories contain configurations that power the
GIS services.
- Returns:
A dictionary of this server directory configuration properties.
-
edit_services_directory(allowedOrigins: str, arcgis_com_map: str, arcgis_com_map_text: str, jsapi_arcgis: str, jsapi_arcgis_css: str, jsapi_arcgis_css2: str, jsapi_arcgis_sdk: str, serviceDirEnabled: str) → bool
Allows you to update the Services Directory configuration. You can do such thing as
enable or disable the HTML view of ArcGIS REST API, or adjust the JavaScript and map viewer
previews of services in the Services Directory so that they work with your own locally
hosted JavaScript API and map viewer.
Parameter |
Description |
allowed_origins |
Required string. A comma-separated list of URLs of domains allowed to
make requests. An asterisk (*) can be used to denote all domains. |
arcgis_com_map |
Required string. URL of the map viewer application used for service
previews. Defaults to the ArcGIS.com map viewer but could be used
to point at your own Portal for ArcGIS map viewer. |
arcgis_com_map_text |
Required string. The text to use for the preview link that opens
the map viewer. |
jsapi_arcgis |
Required string. The URL of the JavaScript API to use for service
previews. Defaults to the online ArcGIS API for JavaScript, but
could be pointed at your own locally-installed instance of the
JavaScript API. |
jsapi_arcgis_css |
Required string. The CSS file associated with the ArcGIS API for
JavaScript. Defaults to the online Dojo tundra.css. |
jsapi_arcgis_css2 |
Required string. An additional CSS file associated with the ArcGIS
API for JavaScript. Defaults to the online esri.css. |
jsapi_arcgis_sdk |
Required string. The URL of the ArcGIS API for JavaScript help. |
service_dir_enabled |
Required string. Flag to enable/disable the HTML view of the
services directory. |
- Returns:
A boolean indicating success (True).
-
get(name: str) → dict
Retrieves a single directory registered with ArcGIS Server.
Parameter |
Description |
name |
Required string. The name of the registered directory. |
- Returns:
The ArcGIS Server ServerDirectory object
-
property properties: dict
returns the current service directory properties for the server.
- Returns:
Dict
ConfigurationStore
-
class arcgis.gis.server.ConfigurationStore(url: str, connection: Connection, initialize: bool = False)
Bases: BaseServer
A utility class for managing the Configuration Store of this server.
-
edit(type_value: str, connection: GIS, move: bool = True, run_async: bool = False, *, local_path: str | None = None) → bool
You can use this operation to update the configuration store.
Typically, this operation is used to change the location of the
configuration store.
When ArcGIS Server is installed, the default configuration store
uses local paths. As the site grows (more server machines are
added), the location of the store must be updated to use a shared
file system path. On the other hand, if you know at the onset that
your site will have two or more server machines, you can start from
a shared path while creating a site and skip this step altogether.
Parameter |
Description |
type_value |
Required string. The type of the configuration store. Values: FILESYSTEM |
gis |
Required string. A file path or connection URL to the physical
location of the store. |
move |
Optional string. A boolean to indicate if you want
to move the content of the current store to the new store. The
default True (move the content). |
run_async |
Optional string. Determines if this operation must run asynchronously.
The default is False (doesn not have to run asynchronously). |
local_path |
Optional String. A file path or connection URL to the physical
location of the local repository for when the site is in read-only
mode. |
- Returns:
A boolean indicating success (True).
-
recover() → dict
Recovers the Configuration Store of the site.
If the shared configuration store for a site is unavailable, a site
in read-only mode will operate in a degraded capacity that allows
access to the ArcGIS Server Administrator Directory. You can recover
a site if the shared configuration store is permanently lost. The
site must be in read-only mode, and the site configuration files
must have been copied to the local repository when switching site
modes. The recover operation will copy the configuration store from
the local repository into the shared configuration store location.
The copied local repository will be from the machine in the site
where the recover operation is performed.
- Returns:
A boolean indicating success (True).
Jobs
-
class arcgis.gis.server.Jobs(url: str, connection: Connection, initialize: bool = False)
Bases: BaseServer
This resource is a collection of all the administrative jobs
(asynchronous operations) created within your site. When operations
that support asynchronous execution are run, the server creates a new
job entry that can be queried for its current status and messages.
-
get(job_id: str) → dict
A job represents the asynchronous execution of an operation. You
can acquire progress information by periodically querying the job.
Parameter |
Description |
job_id |
Required string. The ID of the job. |
- Returns:
A JSON dictionary containing progress information for the job ID.
-
property jobs: list
Gets the job IDs.
ServerDirectory
-
class arcgis.gis.server.ServerDirectory(url: str, connection: Connection, initialize: bool = False)
Bases: BaseServer
Server directories are used by GIS services as a location to output
items such as map images, tile caches, and geoprocessing results. In
addition, some directories contain configurations that power the GIS
services.
In a Site with more than one server machine these directories must be
available on network shares, accessible to every machine in the site.
The following directory types can be registered with the server:
Output – Stores various information generated by services, such as map
images. Instances: One or more
Cache – Stores tile caches used by map, globe, and image services for
rapid performance. Instances: One or more
Jobs – Stores results and other information from geoprocessing
services. Instances: One or more
System – Stores files that are used internally by the GIS server.
Instances: One
Server directories that contain output of various GIS
services can be periodically cleaned to remove old unused files. By
using the cleanup mode and maximum file age parameters, you control
when when you would like the files in these directories to be
cleaned.
All the output server directories are automatically virtualized (they
can be accessed over a URL) for you through the ArcGIS Server REST API.
-
clean() → bool
Cleans the content (files and folders) within the directory that
have passed their expiration date. Every server directory has the
max file age and cleanup mode parameter that govern when a file
created inside is supposed to be cleaned up. The server directory
cleaner automatically cleans up the content within server
directories at regular intervals. However, you can explicitly clean
the directory by invoking this operation.
- Returns:
A boolean indicating success (True).
-
edit(physical_path: str, cleanup_mode: str, max_age: int, description: str, *, use_local_dir: bool | None = None, local_dir: str | None = None)
The server directory’s edit operation allows you to change the path
and clean up properties of the directory. This operation updates
the GIS service configurations (and points them to the new path)
that are using this directory, causing them to restart. It is
therefore recommended that any edit to the server directories be
performed when the server is not under load.
This operation is mostly used when growing a single machine site to
a multiple machine site configuration, which requires that the
server directories and configuration store be put on a
network-accessible file share.
Parameter |
Description |
physical_path |
Required string. The absolute physical path of the server directory. |
cleanup_mode |
Optional string. Defines if files in the server directory needs to
be cleaned up. The default is None. |
max_age |
Required integer. The length of time a file in the directory needs
to be kept before it is deleted. |
description |
Optional string. An optional description for the server directory.
The default is None. |
use_local_dir |
Optional Boolean. When True the local directory will be used to
store results. This is useful for HA configurations to reduce
copying over the local network. The directory must exist on the
server already. |
local_dir |
Optional String. The local directory path to be used for the service. |
- Returns:
A boolean indicating success (True).
-
recover() → dict
Recovers the shared server directories of the site.
If the shared server directories for a site are unavailable, a site
in read-only mode will operate in a degraded capacity that allows
access to the ArcGIS Server Administrator Directory. You can recover
a site if the shared server directories are permanently lost. The
site must be in read-only mode, and the site configuration files
must have been copied to the local repository when switching site
modes. The recover operation will copy the server directories from
the local repository into the shared server directories location.
The copied local repository will be from the machine in the site
where the recover operation is performed.
- Returns:
A boolean indicating success (True).
-
unregister() → bool
Unregisters a server directory. Once a directory has been
unregistered, it can no longer be referenced (used) from within a
GIS service.
- Returns:
A boolean indicating success (True).
ServerProperties
-
class arcgis.gis.server.ServerProperties(url: str, connection: Connection, initialize: bool = False)
Bases: BaseServer
The Server has configuration parameters that can govern some of its
intricate behavior. This Server Properties resource is a container for
such properties. These properties are available to all server objects
and extensions through the server environment interface.
The properties include:
CacheSizeForSecureTileRequests – An integer that specifies the
number of users whose token information will be cached. This
increases the speed of tile retrieval for cached services. If not
specified, the default cache size is 200,000. Both REST and SOAP
services honor this property. You’ll need to manually restart
ArcGIS Server in order for this change to take effect.
DisableAdminDirectoryCache – Disables browser caching of the
Administrator Directory pages. The default is False. To disable
browser caching, set this property to True.
disableIPLogging – When a possible cross-site request forgery
(CSRF) attack is detected, the server logs a message containing
the possible IP address of the attacker. If you do not want IP
addresses listed in the logs, set this property to True. Also,
HTTP request referrers are logged at FINE level by the REST and
SOAP handlers unless this property is set to True.
javaExtsBeginPort – Specifies a start port of the port range used
for debugging Java server object extensions.
Example: 8000
javaExtsEndPort – Specifies an end port of the port range used for
debugging Java server object extensions.
Example: 8010
localTempFolder – Defines the local folder on a machine that can
be used by GIS services and objects. If this property is not
explicitly set, the services and objects will revert to using the
system’s default temporary directory.
Note
If this property is used, you must create the temporary directory
on every server machine in the site. Example: /tmp/arcgis.
messageFormat – Defines the transmission protocol supported by
the services catalog in the server.
Values:
- esriServiceCatalogMessageFormatBin,
- esriServiceCatalogMessageFormatSoap,
- esriServiceCatalogMessageFormatSoapOrBin
messageVersion – Defines the version supported by the services
catalog in the server.
Example: esriArcGISVersion101
PushIdentityToDatabase – Propogates the credentials of the logged-in
user to make connections to an Oracle database. This
property is only supported for use with Oracle databases.
Values: True | False
suspendDuration – Specifies the duration for which the ArcGIS
service hosting processes should suspend at startup. This
duration is specified in milliseconds. This is an optional
property that takes effect when suspendServiceAtStartup is set
to True. If unspecified and suspension of service at startup is
requested, then the default suspend duration is 30 seconds.
Example: 10000 (meaning 10 seconds)
suspendServiceAtStartup – Suspends the ArcGIS service hosting
processes at startup. This will enable attaching to those
processes and debugging code that runs early in the lifecycle of
server extensions soon after they are instantiated.
Values: True | False
uploadFileExtensionWhitelist – This specifies what files are
allowed to be uploaded through the file upload API by
identifying the allowable extensions. It is a list of comma-separated
extensions without dots. If this property is not
specified, a default list is used. This is the default list: soe,
sd, sde, odc, csv, txt, zshp, kmz, and geodatabase.
Note
Updating this list overrides the default list completely. This
means if you set this property to a subset of the default list
then only those items in the subset will be accepted for upload.
Example: sd, so, sde, odc.
uploadItemInfoFileExtensionWhitelist – This specifies what files
are allowed to be uploaded through the service iteminfo upload
API by identifying the allowable extensions. It should be a list
of comma-separated extensions without dots. If this property is
not specified, a default list is used. This is the default list:
xml, img, png, gif, jpg, jpeg, bmp.
Note
This list overrides the default list completely. This means if you
set this property to a subset of the default list then only those
items in the subset will be accepted for upload. Example: png, svg,
gif, jpg, tiff, bmp.
WebContextURL – Defines the web front end as seen by your users.
Example: http://mycompany.com/gis
-
update(properties: str) → bool
This operation allows you to update the server properties. See the ServerProperties
class description for all possible properties.
Parameter |
Description |
properties |
Required string. A Python dictionary of server properties to be updated.
To reset the properties, pass in None. |
- Returns:
A boolean indicating success (True).
ItemInformationManager
-
class arcgis.gis.server.ItemInformationManager(url: str, con: Connection)
Bases: BaseServer
The item information resource stores metadata about a service.
Typically, this information is available to clients that want to index
or harvest information about the service.
Item information is represented in JSON. The property properties allows
users to access the schema and see the current format of the JSON.
-
delete() → bool
Deletes the item information.
- Returns:
Boolean
-
property manifest: dict
The service manifest resource documents the data and other resources
that define the service origins and power the service. This resource
will tell you underlying databases and their location along with
other supplementary files that make up the service.
The JSON representation of the manifest has the following two sections:
Databases
byReference - Indicates whether the service data is referenced from a registered folder or database (true) or it was copied to the server at the time the service was published (false).
onPremiseConnectionString - Path to publisher data location.
onServerConnectionString - Path to data location after publishing completes.
When both the server machine and the publisher’s machine are using
the same folder or database, byReference is true and the
onPremiseConnectionString and onServerConnectionString properties
have the same value.
When the server machine and the publisher machine are using
different folders or databases, byReference is true and the
onPremiseConnectionString and onServerConnectionString properties
have different values.
When the data is copied to the server automatically at publish time,
byReference is false.
Resources
clientName - Machine where ArcGIS Pro or ArcGIS Desktop was used to publish the service.
onPremisePath - Path, relative to the ‘clientName’ machine, where the source resource (.mxd, .3dd, .tbx files, geodatabases, and so on) originated.
serverPath - Path to the document after publishing completes.
- Returns:
Dict
-
property properties: dict
Gets/Sets the Item Information for a serivce.
- Returns:
Dict
-
upload(info_file: str, folder: str | None = None) → dict
Uploads a file associated with the item information to the server.
Parameter |
Description |
info_file |
Required String. The file to upload to the server. |
folder |
Optional String. The name of the folder on the server to which the
file must be uploaded. |
- Returns:
Dict
JobManager
-
class arcgis.gis.server.JobManager(url: str, con: Connection)
Bases: BaseServer
The JobManager provides operations to locate, monitor, and intervene
in current asynchronous jobs being run by the geoprocessing service.
-
purge() → dict
The method purge cancels all asynchronous jobs for the
geoprocessing service that currently carry a status of NEW,
SUBMITTED, or WAITING.
- Returns:
Boolean
-
search(start_time: datetime = None, end_time: datetime = None, status: str | None = None, username: str | None = None, machine: str | None = None) → Job
This operation allows you to query the current jobs for a
geoprocessing service, with a range of parameters to find jobs that
meet specific conditions.
Parameter |
Description |
start_time |
Optional Datetime. The start date/time of the geoprocessing job. |
end_time |
Optional Datetime. The end date/time of the geoprocessing job. |
status |
Optional String. The current status of the job. The possible
statuses are as follows:
esriJobNew
esriJobSubmitted
esriJobExecuting
esriJobSucceeded
esriJobFailed
esriJobCancelling
esriJobCancelled
esriJobWaiting
|
username |
Optional String. The ArcGIS Server user who submitted the job. If
the service is anonymous, this parameter will be unavailable. |
machine |
Optional String. The machine running the job. |
- Returns:
List of geoprocessing service jobs
Job
-
class arcgis.gis.server.Job(url: str, con: GIS)
Bases: BaseServer
A Job represents the asynchronous execution of an operation by a
geoprocessing service.
-
cancel() → bool
Cancels the current job from the server
- Returns:
Boolean
-
delete() → bool
Deletes the current job from the server
- Returns:
Boolean
Mode
-
class arcgis.gis.server.Mode(url: str, gis: GIS, initialize: bool = False)
Bases: BaseServer
ArcGIS Server site mode that allows you to control changes to your site.
You can set the site mode to READ_ONLY to disallow the publishing of new
services and block most administrative operations. Your existing services
will continue to function as they did previously. Note that certain
administrative operations such as adding and removing machines from a
site are still available in READ_ONLY mode.
-
update_mode(site_mode: str, run_async: bool = False, allow_editing: bool = True) → bool
The update operation is used to move between the two types of site
modes. Switching to READ_ONLY mode will restart all your services
as the default behavior. Moving to EDITABLE mode will not restart
services.
Parameter |
Description |
site_mode |
Required string. The mode you will set your site to. Values:
READ_ONLY or EDITABLE. |
run_async |
Optional boolean. Determines if this operation must run asynchronously. |
allow_editing |
Optional boolean. Specifies if edits to feature services are allowed
while a Server is in read-only mode. The default value is true. |
- Returns:
Boolean
ServiceWebHook
-
class arcgis.gis.server.ServiceWebHook(url: str, gis: GIS | Connection, initialize: bool = False, **kwargs)
Bases: BaseServer
The webhooks resource returns a list of service webhooks configured
for a specific geoprocessing or feature service, including
deactivated and activated webhooks. Webhooks are an ArcGIS
Enterprise capability that provide other applications or webhook
receivers with event-driven information, delivered as an HTTPS POST
request, that can be used to create automated and integrative
workflows. For more information on how webhooks are supported in
ArcGIS Enterprise, see Webhooks in ArcGIS Enterprise.
-
delete() → bool
Deletes the current webhook from the system
- Returns:
Boolean, True if successful
-
edit(*, name: str | None = None, change_types: WebHookEvents | str | None = None, hook_url: str | None = None, signature_key: str | None = None, active: bool | None = None, schedule_info: WebHookScheduleInfo | dict[str, Any] | None = None, payload_format: str | None = None, content_type: str | None = None) → dict[str, Any]
Updates the existing WebHook’s Properties.
Parameter |
Description |
name |
Optional String. Use valid name for a webhook. This name needs to be unique per service. |
hook_url |
Optional String. The URL to which the payloads will be delivered. |
change_types |
Optional WebHookEvents or String.
The default is “*”, which means all events. This is a
comma separated list of values that will fire off the web hook. The list
each supported type is below. |
signature_key |
Optional String. If specified, the key will be used in generating the HMAC
hex digest of value using sha256 hash function and is return in the
x-esriHook-Signature header. |
active |
Optional bool. Enable or disable call backs when the webhook is triggered. |
schedule_info |
Optional WebHookScheduleInfo or Dict.
Allows the trigger to be used as a given schedule.
Example Dictionary:
{
“name” : “Every-5seconds”,
“startAt” : 1478280677536,
“state” : “enabled”,
“recurrenceInfo” : {
“frequency” : “second”,
“interval” : 5
}
}
|
payload_format |
Optional String. The payload can be sent in pretty format or standard.
The default is json. |
content_type |
Optional String. The Content Type is used to indicate the media type of the
resource. The media type is a string sent along with the file indicating
the format of the file. |
A list of allowed web hook triggers is shown below.
Name |
Triggered When |
* |
Wildcard event. Any time any event is triggered. |
FeaturesCreated |
A new feature is created |
FeaturesUpdated |
Any time a feature is updated |
FeaturesDeleted |
Any time a feature is deleted |
FeaturesEdited |
Any time a feature is edited (insert or update or delete) |
AttachmentsCreated |
Any time adding a new attachment to a feature |
AttachmentsUpdated |
Any time updating a feature attachment |
AttachmentsDeleted |
Any time an attachment is deleted from a feature |
LayerSchemaChanged |
Any time a schema is changed in a layer |
LayerDefinitionChanged |
Any time a layer definition is changed |
FeatureServiceDefinitionChanged |
Any time a feature service is changed |
- Returns:
Response of edit as a dict.
ServiceWebHookManager
-
class arcgis.gis.server.ServiceWebHookManager(url: str, con: Connection, **kwargs)
Bases: BaseServer
The webhooks resource returns a list of service webhooks configured
for a specific geoprocessing or feature service, including
deactivated and activated webhooks. Webhooks are an ArcGIS
Enterprise capability that provide other applications or webhook
receivers with event-driven information, delivered as an HTTPS POST
request, that can be used to create automated and integrative
workflows. For more information on how webhooks are supported in
ArcGIS Enterprise, see Webhooks in ArcGIS Enterprise.
-
create(name: str, hook_url: str, *, change_types: WebHookEvents | str = WebHookEvents.ALL, signature_key: str | None = None, active: bool = False, schedule_info: dict[str, Any] | WebHookScheduleInfo | None = None, payload_format: str = 'json', content_type: str | None = None) → ServiceWebHook
Creates a new Feature Collection Web Hook
Parameter |
Description |
name |
Required String. Use valid name for a webhook. This name needs to be unique per service. |
hook_url |
Required String. The URL to which the payloads will be delivered. |
change_types |
Optional WebHookEvents or String. The default is “WebHookEvents.ALL”, which means all events. This is a
comma separated list of values that will fire off the web hook. The list
each supported type is below. |
signature_key |
Optional String. If specified, the key will be used in generating the HMAC
hex digest of value using sha256 hash function and is return in the
x-esriHook-Signature header. |
active |
Optional bool. Enable or disable call backs when the webhook is triggered. |
schedule_info |
Optional Dict or WebHookScheduleInfo. Allows the trigger to be used as a given schedule.
Example Dictionary:
{
“name” : “Every-5seconds”,
“startAt” : 1478280677536,
“state” : “enabled”
“recurrenceInfo” : {
“frequency” : “second”,
“interval” : 5
}
}
|
payload_format |
Optional String. The payload can be sent in pretty format or standard.
The default is json. |
content_type |
Optional String. The Content Type is used to indicate the media type of the
resource. The media type is a string sent along with the file indicating
the format of the file. |
A list of allowed web hook triggers is shown below.
Name |
Triggered When |
* |
Wildcard event. Any time any event is triggered. |
FeaturesCreated |
A new feature is created |
FeaturesUpdated |
Any time a feature is updated |
FeaturesDeleted |
Any time a feature is deleted |
FeaturesEdited |
Any time a feature is edited (insert or update or delete) |
AttachmentsCreated |
Any time adding a new attachment to a feature |
AttachmentsUpdated |
Any time updating a feature attachment |
AttachmentsDeleted |
Any time an attachment is deleted from a feature |
LayerSchemaChanged |
Any time a schema is changed in a layer |
LayerDefinitionChanged |
Any time a layer definition is changed |
FeatureServiceDefinitionChanged |
Any time a feature service is changed |
- Returns:
A ServiceWebHook object
-
delete_all_hooks() → bool
The delete_all_hooks operation will permanently remove the specified webhook.
- Returns:
Bool, True if successful
-
disable_hooks() → bool
The disable_hooks will temporarily deactivate all configured webhooks
for a geoprocessing or feature service. While deactivated, the service’s
webhooks will not be invoked and payloads will not be delivered.
- Returns:
Bool, True if successful
-
enable_hooks() → bool
The enable_hooks operation restarts a deactivated webhook. When
activated, payloads will be delivered to the payload URL when the
webhook is invoked.
- Returns:
Bool, True if successful
-
property list: list[ServiceWebHook]
Lists the existing webhooks
- Returns:
list[ServiceWebHook]
AsyncJob
-
class arcgis.gis.server.AsyncJob(url: str, session: EsriSession)
Bases: object
A job represents the asynchronous execution of an operation. Progress
information can be acquired by periodically querying this resource.
-
property properties: dict[str, Any]
returns the object properties
-
result() → dict[str, Any]
This operation will wait until the job has completed before
returning the results of the operation.
-
session: EsriSession
-
url: str = None
|