A collection of classes for administering ArcGIS Server sites.
Server
- class arcgis.gis.server.Server(url, 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()
orget()
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 functioningServer
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
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
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
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
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
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, folder=None, service_config=None, future=False, publish_options=None, item_id=None)
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 services
Gives the administrator access to the services on ArcGIS Server
- Returns:
ServiceManager
or None
- property site
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:
- property system
Provides access to common system configuration settings.
- Returns:
SystemManager
or None
- property usage
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=None, username=None, password=None, key_file=None, cert_file=None, verify_cert=False, proxy=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.
- footprints(folder=None, out_sr=None)
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]
- list(folder=None, as_dict=False)
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
returnFeatureLayerCollection
objects,Geoprocessing Services
returnToolbox
objects, whileMap Services
returnMapImageLayer
objects.Note
This method is not to be confused with the
list
method of theServerManager
class, which returnsServer
orNotebookServer
objects, or thelist
method of theServiceManager
class, which returns a list ofService
objects and modules.
Service
Extension
Machine
- class arcgis.gis.server.Machine(url, gis, initialize=False)
Bases:
BaseServer
A resource to provide administrative tools for managing this machine and the required SSL Certificate.
Note
The Machine
A server machine represents a machine on which ArcGIS Server software has been installed and licensed. A site is made up of one or more machines that must be 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 (https://developers.arcgis.com/rest/enterprise-administration/server/editmachine.htm ).
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 a certificate and get it signed by a trusted CA.
The Generate Certificate (https://developers.arcgis.com/rest/enterprise-administration/server/generatecertificate.htm ) 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. Even though a self-signed certificate can be used to enable SSL, it is recommended that you use these only on staging or development servers.
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)
Deletes a SSL certificate using the certificate alias.
Parameter
Description
certificate
Required string. The name of the certificate to delete
- Returns:
Boolean
- export_certificate(certificate)
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)
Generates a certificate signing request (CSR) for a self-signed certificate. A CSR is required by a CA to create a digitally signed version of your certificate. Supply the certificate object that was created with method ssl_certificate.
Parameter
Description
certificate
Required string. The name of the certificate in the key store.
- Returns:
The CSR.
- property hardware
This resource displays hardware information for the machine in your ArcGIS 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, ca_signed_certificate)
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, cert_password, cert_file)
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, root_CA_certificate)
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)
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
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()
Starts this server machine. Starting the machine enables its ability to host GIS services.
- Returns:
A boolean indicating success (True) or failure (False).
- stop()
Stops this server machine. Stopping the machine disables its ability to host GIS services.
- Returns:
A boolean indicating success (True) or failure (False).
- synchronize()
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()
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, gis, initialize=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).
- edit()
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=None)
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, path, datadict=None, **kwargs)
Bases:
BaseServer
Represents a single Datastore in the Data Store Manager.
- property datasets
Gets the datasets in the data store (currently implemented for big data file shares).
- delete()
Unregisters this data item from the data store.
- Returns:
A boolean indicating success (True) or failure (False).
- property hints
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
Returns information regarding when the data store item was created and last edited.
- property ref_count
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()
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)
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()
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, user_dict)
Bases:
dict
A resource representing a user in the user store that can administer ArcGIS Server.
- add_role(role_name)
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.
- update(password=None, full_name=None, description=None, email=None)
Updates this user account in the user store.
Parameter
Description
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.
Role
- class arcgis.gis.server.Role(rolemanager, roledict)
Bases:
dict
Represents a single role on server.
- delete()
Deletes this current role.
- Returns:
A boolean indicating success (True) or failure (False).
- grant(username)
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(privilage)
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
privilage
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=None)
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
Helper class for managing your ArcGIS Servers. This class is not created by users directly. An instance of this class, called ‘servers’, is available as a property of the gis.admin object. Administrators call methods on this
ServerManager
object to manage and interrogate ArcGIS Servers.- get(role=None, function=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 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. Limits the returned ArcGIS Servers based on the server’s function. Provide a comma-separated list of values. The allowed values are GeoAnalytics, RasterAnalytics, NotebookServer, and ImageHosting.
- Returns:
The ArcGIS Server(s) discovered that match the criteria.
- list()
The
list
method retrieves all servers in aGIS
, retrieving a list of admin services.Note
This method is not to be confused with the
list
method, in theServicesDirectory
class, which returns a variety of services, such as aFeature 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, role, function=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.
ServiceManager
- class arcgis.gis.server.ServiceManager(url, gis, initialize=False, sm=None)
Bases:
BaseServer
Helper class for managing services. This class is not created by users directly. An instance of this class, called ‘services’, is available as a property of the Server object. Users call methods on this ‘services’ object to managing services.
- create_folder(folder_name, description='')
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)
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)
Removes a folder on ArcGIS Server
Parameter
Description
folder_name
Required string. Name of the folder.
- Returns:
Boolean
- exists(folder_name, name=None, service_type=None)
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
- list(folder=None, refresh=True)
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, folder=None, service_config=None)
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.
- Returns:
Boolean
- property service_properties
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]
- property types
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, gis, initialize=False)
Bases:
BaseServer
This resource represents a collection of all the server machines that have been registered with the site. In other words, it represents the total computing power of your site. A site will continue to run as long as there is at least one server machine online.
For a server machine to start hosting GIS services, it must be in a cluster (note that clusters have been deprecated, see http://server.arcgis.com/en/server/latest/administer/windows/about-single-cluster-mode.htm ). When you create a new site, a cluster called ‘default’ (deployed with singleClusterMode set to true) 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.
- get(machine_name)
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()
- Returns:
A list of
machines
that are part of the server configuration.
- register(name, admin_url)
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, new_name)
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, gis, initialize=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.
- clean()
Deletes all the log files on all server machines in the site. This is an irreversible operation.
This operation forces the server to clean the logs, which has the effect of freeing up disk space. However, it is not required that you invoke this operation because the server periodically purges old logs.
- Returns:
A boolean indicating success (True) or failure (False).
- count_error_reports(machine='*')
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='WARNING', log_dir=None, max_age=90, max_report_count=10)
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=None, end_time=None, since_server_start=False, level='WARNING', services='*', machines='*', server='*', codes=None, process_IDs=None, export=False, export_type='CSV', out_path=None, max_records_return=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 or datetime. The most recent time to query. Default is now. Time can be specified in milliseconds since UNIX epoch.
Example for integer: start_time = 1312237040123
end_time
Optional String or datetime. The oldest time to include in the result set. You can use this to limit the query to the last n minutes or hours as needed.
If
`sinceLastStart`
is 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 String. Query records related to a specific service. The default is all.
machines
Optional String. Query records related to a specific machine. The default is all.
server
Optional String. Query records related to a specific server. The default is all.
codes
Optional String. Gets only the records with the specified code. The default is all. See http://server.arcgis.com/en/server/latest/administer/windows/log-codes-overview.htm
process_IDs
Optional String. Query by the machine process ID that logged the event.
export
Optional String. Boolean indicating whether to export the query results. The default is False (don’t export).
export_type
Optional String. The export file type. CSV or TAB are the choices, CSV is the default.
out_path
Optional String. The path to download the log file to.
max_records_return
Optional Int. The maximum amount of records to return. Default is 5000
- Returns:
A JSON of the log items that match the query. If export option is set to True, the output log file path is returned.
ReportManager
- class arcgis.gis.server.ReportManager(url, gis, initialize=False)
Bases:
BaseServer
A utility class for managing usage reports for ArcGIS Server.
- create(reportname, queries, metadata=None, since='LAST_DAY', from_value=None, to_value=None, aggregation_interval=None)
Creates a new usage report. A usage report is created by submitting a JSON representation of the usage report to this operation. See CreateUsageReport 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
andmetrics
# Usage Example [{"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 Siteservices/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.services/Folder_name/Map_bv_999.MapServer
service
- If in the root folderMap_bv_999.MapServer
metrics
–Comma-separated string of specific measures to gather.
RequestCount
— the number of requests receivedRequestsFailed
— the number of requests that failedRequestsTimedOut
— the number of requests that timed outRequestMaxResponseTime
— the maximum response timeRequestAvgResponseTime
— the average response timeServiceActiveInstances
— the maximum number of active (running) service instances sampled at 1 minute intervals for a specified serviceServiceRunningInstancesMax
— the maximum number of active (running) service instances, sampled at one-minute intervals for a specified service. If you include this metric, it must be the only metric included in the report.
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:
LAST_DAY
: 30 minutesLAST_WEEK
: 4 hoursLAST_MONTH
: 24 hoursLAST_YEAR
: 1 weekCUSTOM
: 30 minutes up to 1 day, 4 hours up to 1 week, 1
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, enabled=True, max_history=0)
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.
- quick_report(since='LAST_WEEK', queries='services/', metrics='RequestsFailed')
Generates an on the fly usage report for a service, services, or folder.
Parameter
Description
since
Optional string. The time duration of the report. The supported values are: LAST_DAY, LAST_WEEK, LAST_MONTH, or LAST_YEAR.
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
Required string. A string of resourceURIs for which to generate the report. Specified as a comma-separated sting of services or folders for which to gather metrics.
services/
– Entire Siteservices/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:services/Folder_Name/Map_bv_999.MapServer
services/Fodler_Name/ServiceName.ServiceType
root folder
– Service in the root folderMap_bv_999.MapServer.
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
ServiceActiveInstances – the maximum number of active (running) service instances sampled at 1 minute intervals, for a specified service
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
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, 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
, orServicesDirectory
object.- add(item)
Registers a new data item with the data store.
Parameter
Description
item
Required String, Dict. The dictionary representing the data item. See https://developers.arcgis.com/rest/enterprise-administration/server/dataitem.htm
- Returns:
The data item if registered successfully, None otherwise.
- add_bigdata(name, server_path=None, connection_type='fileShare')
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, conn_str, object_store, provider, managed=False, folder=None)
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, conn_str, client_conn_str=None, conn_type='shared')
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, server_path, client_path=None)
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, conn_str, object_store, provider, folder=None)
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
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
Gets the list of data items that are the root of all other data items in the data store.
- federate_data_item(path)
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)
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)
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)
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.
Parameter
Description
type_id
Required string. The datastore type ID of interest. See Relational Data Store Types for details.
- Returns:
A JSON string listing the properties
- get_total_refcount(path)
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()
Retrieves a list of datastore objects.
- Returns:
The list of
Datastore
objects.
- make_datastore_machine_primary(item_name, machine_name)
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, machine_name)
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
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, machine_name)
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=None, ancestor_path=None, types=None, id=None, **kwargs)
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, machine_name)
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, machine_name)
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_egdb(data_store_name, name)
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, gis, initialize=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, password, fullname=None, description=None, email=None)
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)
Finds a specific user.
Parameter
Description
username
Required string. The user to find.
- Returns:
The
User
object or None.
- property me
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, max_results=25)
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, gis, initialize=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=0, page_size=10)
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.
- create(name, description=None)
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=None, max_count=10)
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, gis, initialize=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()
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 deployment
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
- Returns:
The
ServerDirectory
object in a list.
- property handlers
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:
Rest – Exposes the REST-ful API
Soap – Exposes the SOAP API
The Rest Handler resource exposes some of the administrative operations on the REST handler such as clearing the cache.
- property jobs
Gets the Jobs object.
- Returns:
Jobs
object
- property licenses
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
Provides access to the platform services that are associated with GeoAnalytics.
- property server_properties
Gets the server properties for the site as an object.
- Returns:
ServerProperties
object
- property soap_config
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)
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, description, http_port, https_port)
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)
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
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
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, initialize=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, password, config_store_connection, directories, cluster=None, logs_settings=None, run_async=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()
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=None)
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.
- Returns:
A status indicating success (along with the folder location) or failure.
- import_site(location)
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.
- Returns:
A status indicating success (along with site details) or failure.
- join(admin_url, username, password)
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 public_key
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=False)
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, url, session)
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
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 provider
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.
ProvidersManager
- class arcgis.gis.server.ProvidersManager(url, session)
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)
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
ExtensionManager
RegisteredExtension
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, physicalPath, directoryType, maxFileAge, cleanupMode='NONE', description=None)
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()
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, arcgis_com_map, arcgis_com_map_text, jsapi_arcgis, jsapi_arcgis_css, jsapi_arcgis_css2, jsapi_arcgis_sdk, serviceDirEnabled)
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)
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
ConfigurationStore
- class arcgis.gis.server.ConfigurationStore(url, connection, initialize=False)
Bases:
BaseServer
A utility class for managing the Configuration Store of this server.
- edit(type_value, connection, move=True, run_async=False, *, local_path=None)
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()
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, connection, initialize=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.
ServerDirectory
- class arcgis.gis.server.ServerDirectory(url, connection, initialize=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()
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, cleanup_mode, max_age, description, *, use_local_dir=None, local_dir=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()
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).
ServerProperties
- class arcgis.gis.server.ServerProperties(url, connection, initialize=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: esriArcGISVersion101PushIdentityToDatabase
– 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 | FalsesuspendDuration
– 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 | FalseuploadFileExtensionWhitelist
– 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)
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, con)
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.
- property manifest
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
JobManager
- class arcgis.gis.server.JobManager(url, con)
Bases:
BaseServer
The JobManager provides operations to locate, monitor, and intervene in current asynchronous jobs being run by the geoprocessing service.
- purge()
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=None, end_time=None, status=None, username=None, machine=None)
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
Mode
- class arcgis.gis.server.Mode(url, gis, initialize=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, run_async=False, allow_editing=True)
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, gis, initialize=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.
- edit(*, name=None, change_types=None, hook_url=None, signature_key=None, active=None, schedule_info=None, payload_format=None, content_type=None)
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, con, **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, hook_url, *, change_types=WebHookEvents.ALL, signature_key=None, active=False, schedule_info=None, payload_format='json', content_type=None)
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()
The delete_all_hooks operation will permanently remove the specified webhook.
- Returns:
Bool, True if successful
- disable_hooks()
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
AsyncJob
- class arcgis.gis.server.AsyncJob(url, session)
Bases:
object
A job represents the asynchronous execution of an operation. Progress information can be acquired by periodically querying this resource.