arcgis.apps.hub module

The Hub is the main entry point into the Hub module. It can be used as shown in the following code example.

from arcgis.gis import GIS
gis = GIS("https://arcgis.com", "<username>", "<password>")
myHub = gis.hub
a_Initiative = myHub.initiatives.get(itemId)
a_Site = myHub.sites.get(a_Initiative.site_id)
b_Site = myHub.sites.get(itemId)
c_Page = myHub.pages.get(itemId)
myEvents = myHub.events.search()

Hub

class arcgis.apps.hub.hub.Hub(gis)

Entry point into the Hub module. Lets you access an individual hub and its components.

Parameter

Description

url

Required string. If no URL is provided by user while connecting to the GIS, then the URL will be ArcGIS Online.

username

Optional string as entered while connecting to GIS. The login user name (case-sensitive).

password

Optional string as entered while connecting to GIS. If a username is provided, a password is expected. This is case-sensitive. If the password is not provided, the user is prompted in the interactive dialog.

property community_org_id

Returns the AGOL org id of the Community Organization associated with this Premium Hub.

property community_org_url

Returns the AGOL org id of the Community Organization associated with this Premium Hub.

property enterprise_org_id

Returns the AGOL org id of the Enterprise Organization associated with this Premium Hub.

property enterprise_org_url

Returns the AGOL org url of the Enterprise Organization associated with this Premium Hub.

property events

The resource manager for Hub events. See EventManager.

property initiatives

The resource manager for Hub initiatives. See InitiativeManager.

property pages

The resource manager for Hub pages. See PageManager.

property sites

The resource manager for Hub sites. See SiteManager.

Initiative

class arcgis.apps.hub.initiatives.Initiative(gis, initiativeItem)

Represents an initiative within a Hub. An Initiative supports policy- or activity-oriented goals through workflows, tools and team collaboration.

add_content(items_list)

Adds a batch of items to the initiative content library.

Parameter

Description

items_list

Required list. A list of Item or item ids to add to the initiative.

property all_events
property collab_group_id

Getter/Setter for the group id for the collaboration group

property content_group_id

Returns the group id for the content group

delete()

Deletes the initiative, its site and associated groups. If unable to delete, raises a RuntimeException.

Returns

A bool containing True (for success) or False (for failure).

USAGE EXAMPLE: Delete an initiative successfully

initiative1 = myHub.initiatives.get('itemId12345')
initiative1.delete()

>> True
property description

Returns the initiative description

property followers
property followers_group_id

Returns the group id for the followers group

property itemid

Returns the item id of the initiative item

property owner

Returns the owner of the initiative item

reassign_to(target_owner)

Allows the administrator to reassign the initiative object from one user to another.

Note

This will transfer ownership of all items (site, pages, content) and groups that belong to this initiative to the new target_owner.

Parameter

Description

target_owner

Required string. The new desired owner of the initiative.

share(everyone=False, org=False, groups=None, allow_members_to_edit=False)

Shares an initiative and associated site with the specified list of groups.

Parameter

Description

everyone

Optional boolean. Default is False, don’t share with everyone.

org

Optional boolean. Default is False, don’t share with the organization.

groups

Optional list of group ids as strings, or a list of arcgis.gis.Group objects, or a comma-separated list of group IDs.

allow_members_to_edit

Optional boolean. Default is False, to allow item to be shared with groups that allow shared update

Returns

A dictionary with key “notSharedWith” containing array of groups with which the items could not be shared.

property site_id

Returns the item id of the initiative site

property site_url

Getter/Setter for the url of the initiative site

property sites
property snippet

Getter/Setter for the initiative snippet

property tags

Returns the tags of the initiative item

property title

Returns the title of the initiative item

unshare(groups)

Stops sharing of the initiative and its associated site with the specified list of groups.

Parameter

Description

groups

Required list of group names as strings, or a list of arcgis.gis.Group objects, or a comma-separated list of group IDs.

Returns

Dictionary with key “notUnsharedFrom” containing array of groups from which the items could not be unshared.

update(initiative_properties=None)

Updates the initiative.

Note

For initiative_properties, pass in arguments for only the properties you want to be updated. All other properties will be untouched. For example, if you want to update only the initiative’s description, then only provide the description argument in initiative_properties.

Parameter

Description

initiative_properties

Required dictionary. See URL below for the keys and values.

To find the list of applicable options for argument initiative_properties - https://esri.github.io/arcgis-python-api/apidoc/html/arcgis.gis.toc.html#arcgis.gis.Item.update

Returns

A boolean indicating success (True) or failure (False).

USAGE EXAMPLE: Update an initiative successfully

initiative1 = myHub.initiatives.get('itemId12345')
initiative1.update(initiative_properties={'description':'Create your own initiative to organize people around a shared goal.'})

>> True
property url

Returns the url of the initiative site

Site

class arcgis.apps.hub.sites.Site(gis, site_item)

Represents a site within a Hub. A site is a container for web accessible content.

add_catalog_group(group_id)

Parameter

Description

group_id

Group id to be added to site catalog

add_content(items_list)

Adds a batch of items to the site content library.

Parameter

Description

items_list

Required list. A list of Item or item ids to add to the site.

property catalog_groups

Return Site catalog groups

property collab_group_id

Returns the groupId for the collaboration group

property content_group_id

Returns the groupId for the content group

delete()

Deletes the Enterprise site. If unable to delete, raises a RuntimeException.

Returns

A bool containing True (for success) or False (for failure).

Note

Deleting the site object (instead of the Item object) for the site is encouraged, to also delete the groups associated with the site.

USAGE EXAMPLE: Delete a site successfully

site1 = gis.sites.get('itemId12345')
site1.delete()

>> True
delete_catalog_group(group_id)

Parameter

Description

group_id

Group id to be added to site catalog

property description

Getter/Setter for the site description

property initiative

Returns the initiative object (if available) for the site

property initiative_id

Returns the initiative id (if available) of the site

property itemid

Returns the item id of the site item

property layout

Return layout of a site

property owner

Returns the owner of the site item

property pages

The resource manager for an Initiative’s indicators. See PageManager.

reassign_to(target_owner)

Allows the administrator to reassign the Enterprise site object from one user to another.

Note

This will transfer ownership of all items (site, pages, content) and groups to the new target_owner.

Parameter

Description

target_owner

Required string. The new desired owner of the site.

search(query=None, item_type=None)

Search and filter content for a site.

Parameter

Description

query

Optional string. Filters items by presence of search query in title.

item_type

Optional list. Returns items of particular type.

Returns

List of items shared with this site.

USAGE EXAMPLE: Succcessfully fetch items of item_type 'Web Mapping Application'
for particular query 'school' for site

site1 = myHub.sites.get('itemId12345')
site_apps = site1.search(query='school', item_type='Web Map')
site_apps

>> List of relevant items
property tags

Returns the tags of the site item

property theme

Return theme of a site

property title

Returns the title of the site item

update(site_properties=None, subdomain=None)

Updates the site.

Note

For site_properties, pass in arguments for only the properties you want to be updated. All other properties will be untouched. For example, if you want to update only the site’s description, then only provide the description argument in site_properties.

Parameter

Description

site_properties

Required dictionary. See URL below for the keys and values.

subdomain

Optional string. New subdomain for the site.

To find the list of applicable options for argument site_properties - https://esri.github.io/arcgis-python-api/apidoc/html/arcgis.gis.toc.html#arcgis.gis.Item.update

Returns

A boolean indicating success (True) or failure (False).

update_layout(layout)

Updates the layout of the site.

Note

This operation can only be performed by the owner of the site or by an org administrator.

Parameter

Description

layout

Required dictionary. The new layout dictionary to update to the site.

Returns

A boolean indicating success (True) or failure (False).

USAGE EXAMPLE: Update a site successfully

site1 = myHub.sites.get('itemId12345')
site_layout = site1.layout
site_layout.sections[0].rows[0].cards.pop(0)
site1.update_layout(layout = site_layout)

>> True
update_theme(theme)

Updates the theme of the site.

Note

This operation can only be performed by the owner of the site or by an org administrator.

Parameter

Description

theme

Required dictionary. The new theme dictionary to update to the site.

Returns

A boolean indicating success (True) or failure (False).

USAGE EXAMPLE: Update a site successfully

site1 = myHub.sites.get('itemId12345')
site_theme = site1.theme
site_theme.body.background = '#ffffff'
site1.update_theme(theme = site_theme)

>> True
property url

Returns the url of the site

Page

class arcgis.apps.hub.sites.Page(gis, page_item)

Represents a page belonging to a site in Hub. A Page is a layout of content that can be rendered within the context of a Site

delete()

Deletes the page. If unable to delete, raises a RuntimeException.

Returns

A bool containing True (for success) or False (for failure).

USAGE EXAMPLE: Delete a page successfully

page1 = myHub.pages.get('itemId12345')
page1.delete()

>> True
property description

Getter/Setter for the page description

property itemid

Returns the item id of the page item

property layout

Return layout of a page

property owner

Returns the owner of the page item

property slug

Returns the page slug

property tags

Returns the tags of the page item

property title

Returns the title of the page item

update(page_properties=None, slug=None)

Updates the page.

Note

For page_properties, pass in arguments for only the properties you want to be updated. All other properties will be untouched. For example, if you want to update only the page’s description, then only provide the description argument in page_properties.

Parameter

Description

page_properties

Required dictionary. See URL below for the keys and values.

slug

Optional string. The slug or subdomain for the page.

To find the list of applicable options for argument page_properties - https://esri.github.io/arcgis-python-api/apidoc/html/arcgis.gis.toc.html#arcgis.gis.Item.update

Returns

A boolean indicating success (True) or failure (False).

USAGE EXAMPLE: Update a page successfully

page1 = mySite.pages.get('itemId12345')
page1.update(page_properties={'description':'Description for page.'})

>> True
update_layout(layout)

Updates the layout of the page.

Parameter

Description

layout

Required dictionary. The new layout dictionary to update to the page.

Returns

A boolean indicating success (True) or failure (False).

Event

class arcgis.apps.hub.Event(gis, event_object)

Represents an event in a Hub. A Hub has many Events that can be associated with an Initiative. Events are meetings for people to support an Initiative. Events are scheduled by an organizer and have many attendees. An Event has a Group so that they can include content for preparation as well as gather and archive content during the event for later retrieval or analysis.

property access

Returns access permissions of the event

property address

Returns the street address for the venue of the event

property attendance

Returns attendance count for a past event

property capacity

Returns attendance capacity for attendees of the event

property creator

Returns creator of the event

delete()

Deletes an event

Returns

A bool containing True (for success) or False (for failure).

USAGE EXAMPLE: Delete an event successfully

event1 = myhub.events.get(24)
event1.delete()

>> True
property description

Returns description of the event

property end_date

Returns end date of the event in milliseconds since UNIX epoch

property event_id

Returns the unique identifier of the event

property geometry

Returns co-ordinates of the event location

property group_id

Returns groupId for the event

property initiative_id

Returns the initiative id of the initiative the event belongs to

property is_cancelled

Check if event is Cancelled

property organizers

Returns the name and email of the event organizers

property start_date

Returns start date of the event in milliseconds since UNIX epoch

property title

Returns the title of the event

update(event_properties)

Updates properties of an event

Returns

A bool containing True (for success) or False (for failure).

USAGE EXAMPLE: Update an event successfully

event1 = myhub.events.get(id)
event_properties = {'status': 'planned', description: 'Test'}
event1.update(event_properties)

>> True
property venue

Returns the location of the event

InitiativeManager

class arcgis.apps.hub.initiatives.InitiativeManager(hub, initiative=None)

Helper class for managing initiatives within a Hub. This class is not created by users directly. An instance of this class, called ‘initiatives’, is available as a property of the Hub object. Users call methods on this ‘initiatives’ object to manipulate (add, get, search, etc) initiatives.

add(title, description=None, site=None)

Adds a new initiative to the Hub.

Parameter

Description

title

Required string.

description

Optional string.

site

Optional Site object.

Returns

The Initiative object if successfully added, None if unsuccessful.

USAGE EXAMPLE: Add an initiative successfully

initiative1 = myHub.initiatives.add(title='Vision Zero Analysis')
initiative1.item
clone(initiative, origin_hub=None, title=None)

Clone allows for the creation of an initiative that is derived from the current initiative.

Note

If both your origin_hub and destination_hub are Hub Basic organizations, please use the clone method supported under the ~arcgis.apps.sites.SiteManager class.

Parameter

Description

initiative

Required Initiative object of initiative to be cloned.

origin_hub

Optional Hub object. Required only for cross-org clones where the initiative being cloned is not an item with public access.

title

Optional String.

Returns

Initiative object

USAGE EXAMPLE: Clone an initiative in another organization

#Connect to Hub
hub_origin = gis1.hub
hub_destination = gis2.hub
#Fetch initiative
initiative1 = hub_origin.initiatives.get('itemid12345')
#Clone in another Hub
initiative_cloned = hub_destination.initiatives.clone(initiative1, origin_hub=hub_origin)
initiative_cloned.item


USAGE EXAMPLE: Clone initiative in the same organization

myhub = gis.hub
initiative1 = myhub.initiatives.get('itemid12345')
initiative2 = myhub.initiatives.clone(initiative1, title='New Initiative')
get(initiative_id)

Returns the initiative object for the specified initiative_id.

Parameter

Description

initiative_id

Required string. The initiative itemid.

Returns

The Initiative object if the item is found, None if the item is not found.

USAGE EXAMPLE: Fetch an initiative successfully

initiative1 = myHub.initiatives.get('itemId12345')
initiative1.item
search(title=None, owner=None, created=None, modified=None, tags=None)

Searches for initiatives.

Parameter

Description

title

Optional string. Return initiatives with provided string in title.

owner

Optional string. Return initiatives owned by a username.

created

Optional string. Date the initiative was created. Shown in milliseconds since UNIX epoch.

modified

Optional string. Date the initiative was last modified. Shown in milliseconds since UNIX epoch

tags

Optional string. User-defined tags that describe the initiative.

Returns

A list of matching Initiative objects.

SiteManager

class arcgis.apps.hub.sites.SiteManager(gis, initiative=None)

Helper class for managing sites within a Hub. This class is not created by users directly. An instance of this class, called ‘sites’, is available as a property of the Hub object. Users call methods on this ‘sites’ object to manipulate (add, get, search, etc) sites.

add(title, subdomain=None)

Adds a new site.

Note

Unicode characters are not allowed in the title of the site.

Parameter

Description

title

Required string.

subdomain

Optional string. Available ONLY with Enterprise Sites.

Returns

The site if successfully added, None if unsuccessful.

USAGE EXAMPLE: Add an open data site in Hub successfully

site1 = myHub.sites.add(title='My first site')
site1.item
USAGE EXAMPLE: Add an initiative site successfully

initiative_site = initiative1.sites.add(title=title)
site1.item
clone(site, pages=True, title=None)

Clone allows for the creation of a site that is derived from the current site.

Note

Use this method if you are cloning a Site object from a Hub Basic or Enterprise environment. To clone from Hub Premium environments, please use the initiatives.clone method.

Parameter

Description

site

Required Site object of site to be cloned.

pages

Optional Boolean. Decides if pages will be copied. Default is True.

title

Optional String.

Returns

Site.

get(site_id)

Returns the site object for the specified site_id.

Parameter

Description

site_id

Required string. The site itemid.

Returns

The site object if the item is found, None if the item is not found.

USAGE EXAMPLE: Fetch a site successfully

site1 = myHub.sites.get('itemId12345')
site1.item
get_by_domain(domain_url)

Returns the site object for the specified domain url.

Parameter

Description

domain_url

Required string. The site url.

Returns

The site object if the item is found, None if the item is not found.

Note

You may only fetch sites by domain local to your environment. E.g. If your Hub instance is an ArcGIS Online instance, then you can fetch ArcGIS Online sites by url, and if you have signed into an ArcGIS Enterprise Instance, only sites on premise will be available.

USAGE EXAMPLE: Fetch a site successfully

site1 = myHub.sites.get_by_domain('opendata.dc.gov')
site1.item
search(title=None, owner=None, created=None, modified=None, tags=None)

Searches for sites.

Parameter

Description

title

Optional string. Return sites with provided string in title.

owner

Optional string. Return sites owned by a username.

created

Optional string. Date the site was created. Shown in milliseconds since UNIX epoch.

modified

Optional string. Date the site was last modified. Shown in milliseconds since UNIX epoch

tags

Optional string. User-defined tags that describe the site.

Returns

A list of matching sites.

PageManager

class arcgis.apps.hub.sites.PageManager(gis, site=None)

Helper class for managing pages within a Hub. This class is not created by users directly. An instance of this class, called ‘pages’, is available as a property of the Site object. Users call methods on this ‘pages’ object to manipulate (add, get, search, etc) pages for a site.

add(title, site=None)

Returns the pages linked to the specific site.

Parameter

Description

title

Required string. The title of the new page.

site

Optional Site. The site object to add the page to.

Returns

The page if successfully added, None if unsuccessful.

USAGE EXAMPLE: Add a page to a site successfully

page1 = mySite.pages.add(title='My first page')
page1.item
USAGE EXAMPLE: Add a page successfully

page2 = myHub.pages.add(title='My second page', site=mySite)
page2.item
clone(page, site=None)

Clone allows for the creation of a page that is derived from the current page.

Parameter

Description

page

Required Page object of page to be cloned.

site

Optional Site object.

Returns

Page.

USAGE EXAMPLE: Clone a page to a site successfully

#Fetch page
page1 = myhub.pages.get('itemId12345')
page1.item

#Clone it
page2 = mySite.pages.clone(page1)
page2.item
get(page_id)

Returns the page object for the specified page_id.

Parameter

Description

page_id

Required string. The page itemid.

Returns

The page object if the item is found, None if the item is not found.

USAGE EXAMPLE: Fetch a page successfully
page1 = myHub.pages.get('itemId12345')
page1.item

Links the page to the specific site.

Parameter

Description

page

Required string. The page object to link.

site

Optional Site. The site object to link page to.

slug

Optional string. The slug reference of the page in this site.

Returns

A bool containing True (for success) or False (for failure).

USAGE EXAMPLE: Link a page successfully for specific site
mySite.pages.link(page_id='itemId12345')

>> True
USAGE EXAMPLE: Link a page successfully for site object passed as param
myHub.pages.link(page_id='itemId12345', site=mySite)

>> True
search(title=None, owner=None, created=None, modified=None, tags=None)

Searches for pages.

Parameter

Description

title

Optional string. Return pages with provided string in title.

owner

Optional string. Return pages owned by a username.

created

Optional string. Date the page was created. Shown in milliseconds since UNIX epoch.

modified

Optional string. Date the page was last modified. Shown in milliseconds since UNIX epoch

tags

Optional string. User-defined tags that describe the page.

Returns

A list of matching pages.

Unlinks the page from the specific site.

Parameter

Description

page

Required Page. The page object to unlink.

site

Optional Site. The site object to unlink page from.

Returns

A bool containing True (for success) or False (for failure).

USAGE EXAMPLE: Unlink a page successfully from specific site

mySite.pages.unlink(page_id='itemId12345')

>> True
USAGE EXAMPLE: Unlink a page successfully from site object passed as param

myHub.pages.unlink(page_id='itemId12345', site=mySite)

>> True

EventManager

class arcgis.apps.hub.events.EventManager(hub, event=None)

Helper class for managing events within a Hub. This class is not created by users directly. An instance of this class, called ‘events’, is available as a property of the Hub object. Users call methods on this ‘events’ object to manipulate (add, search, get_map etc) events of a particular Hub.

add(event_properties)

Adds an event for an initiative.

Parameter

Description

event_properties

Required dictionary. See table below for the keys and values.

Key:Value Dictionary Options for Argument event_properties

Key

Value

title

Required string. Name of event.

description

Required string. Description of the event.

initiaitve_id

Required string. Name label of the item.

venue

Required string. Venue name for the event.

address1

Required string. Street address for the venue.

status

Required string. Access of event. Valid values are private, planned, public, draft.

startDate

Required start date of the event in milliseconds since UNIX epoch.

endDate

Required end date of the event in milliseconds since UNIX epoch.

isAllDay

Required boolean. Indicates if the event is a day long event.

capacity

Optional integer. The attendance capacity of the event venue.

address2

Optional string. Additional information about event venue street address.

onlineLocation

Optional string. Web URL or other details for online event.

organizers

Optional list of dictionary of keys name and contact for each organizer’s name and email. Default values are name, email, username of event creator.

sponsors

Optional list of dictionary of keys name and contact for each sponsor’s name and contact.

Returns

Event if successfully added.

USAGE EXAMPLE: Add an event successfully

event_properties = {
    'title':'Test Event',
    'description': 'Testing with python',
    'initiativeId': '43f..',
    'venue': 'Washington Monument',
    'address1': '2 15th St NW, Washington, District of Columbia, 20024',
    'status': 'planned',
    'startDate': 1562803200,
    'endDate': 1562889600,
    'isAllDay': 1
}

new_event = myhub.events.add(event_properties)
get(event_id)

Get the event for the specified event_id.

Parameter

Description

event_id

Required integer. The event identifier.

Returns

The Event object.

search(initiative_id=None, title=None, venue=None, organizer_name=None)

Searches for events within a Hub.

Parameter

Description

initiative_id

Optional string. Initiative itemid.

title

Optional string. Title of the event.

venue

Optional string. Venue where event is held.

organizer_name

Optional string. Name of the organizer of the event.

Returns

A list of matching indicators.