Esempio n. 1
0
def main(*argv):
    """ main driver of program """
    try:
        #   Inputs
        #
        adminUsername = argv[0]
        adminPassword = argv[1]
        siteURL = argv[2]
        username = argv[3]
        subFolders = argv[4].lower() == "true"
        #   Logic
        #
        sh = arcrest.AGOLTokenSecurityHandler(adminUsername, adminPassword)
        admin = arcrest.manageorg.Administration(url=siteURL,
                                                 securityHandler=sh)
        content = admin.content
        if isinstance(content, arcrest.manageorg._content.Content): pass
        usercontent = content.usercontent(username=username)
        res = usercontent.listUserContent(username=adminUsername)
        #   Delete Root Items
        #
        eItems = ""
        itemsToErase = ",".join([item['id'] for item in res['items']])
        usercontent.deleteItems(items=itemsToErase)
        #  Walk Each Folder and erase items if subfolder == True
        #
        if subFolders:
            for folder in res['folders']:
                c = usercontent.listUserContent(username=username,
                                                folderId=folder['id'])
                itemsToErase = ",".join([item['id'] for item in c['items']])
                if len(itemsToErase.split(',')) > 0:
                    usercontent.deleteItems(items=itemsToErase)
                del c
                usercontent.deleteFolder(folderId=folder['id'])
                del folder

        arcpy.AddMessage("User %s content has been deleted." % username)
        arcpy.SetParameterAsText(4, True)
    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 2
0
def main(*argv):
    """ main driver of program """
    try:
        username = str(argv[0])
        password = str(argv[1])
        baseURL = str(argv[2])
        folderId = str(argv[3])
        filePath = str(argv[4])
        #   Local variables
        #
        sh = None
        agol = None
        usercontent = None
        folderId = None
        proxy_port = None
        proxy_url = None
        #   Logic
        #
        if folderId == "":
            folderId = None
        if baseURL is None or \
           baseURL == "":
            baseURL = "https://www.arcgis.com/sharing/rest"
        sh = arcrest.AGOLTokenSecurityHandler(username=username,
                                              password=password)
        agol = arcrest.manageorg.Administration(url=baseURL,
                                                securityHandler=sh)
        usercontent = agol.content.usercontent(username)
        if isinstance(usercontent,
                      arcrest.manageorg.administration._content.UserContent):
            pass
        res = usercontent.addItem(itemParameters=None,
                                  filePath=filePath,
                                  overwrite=True,
                                  folder=folderId)
        arcpy.SetParameterAsText(5, str(res))
    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 3
0
def main(*argv):
    """ main driver of program """
    try:
        #   Inputs
        #
        adminUsername = argv[0]
        adminPassword = argv[1]
        siteURL = argv[2]
        groupTitle = argv[3]
        groupTags = argv[4]
        description = argv[5]
        access = argv[6]

        #   Logic
        #
        #   Connect to the site
        #
        sh = arcrest.AGOLTokenSecurityHandler(adminUsername, adminPassword)
        admin = arcrest.manageorg.Administration(url=siteURL,
                                                securityHandler=sh,
                                                initialize=True)
        community = admin.community
        #   Create Group
        #
        res = community.createGroup(title=groupTitle,
                                    tags=groupTags,
                                    description=description,
                                    snippet="",
                                    phone="",
                                    access=access,
                                    sortField="title",
                                    sortOrder="asc",
                                    isViewOnly=False,
                                    isInvitationOnly=False,
                                    thumbnail=None)
        arcpy.SetParameterAsText(7, str(res))
    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 4
0
def main():
    username = ""
    password = ""
    proxy_url = ""
    proxy_port = ""
    org_url = ""
    sh = arcrest.AGOLTokenSecurityHandler(username=username,
                                          password=password,
                                          org_url=org_url,
                                          proxy_port=proxy_port,
                                          proxy_url=proxy_url)

    users = ["",""] # List of users
    credits = 2320 # number of credits to assign to users

    admin = arcrest.manageorg.Administration(securityHandler=shh.securityhandler)
    portalself = admin.portals.portalSelf
    return portalself.assignUserCredits(usernames=users,credits=credits)
Esempio n. 5
0
    def __init__(self,
                 username,
                 password,
                 org_url=None,
                 token_url=None,
                 proxy_url=None,
                 proxy_port=None):
        """Constructor"""
        self._org_url = org_url
        self._username = username
        self._password = password
        self._proxy_url = proxy_url
        self._proxy_port = proxy_port
        self._token_url = token_url
        if self._org_url is None or self._org_url == '':
            self._org_url = 'http://www.arcgis.com'
        if self._org_url is None or '.arcgis.com' in self._org_url:
            self._securityHandler = arcrest.AGOLTokenSecurityHandler(
                username=self._username,
                password=self._password,
                org_url=self._org_url,
                token_url=self._token_url,
                proxy_url=self._proxy_url,
                proxy_port=self._proxy_port)
            token = self._securityHandler.token
            #if 'error' in self._securityHandler.message and token is None:
            #if self._securityHandler.message['error']['code'] == 400:

            #self._securityHandler = arcrest.OAuthSecurityHandler(client_id='',
            #secret_id='',
            #org_url=self._org_url,
            #proxy_url=self._proxy_url,
            #proxy_port=self._proxy_port)
            #token = self._securityHandler.token
        else:

            self._securityHandler = arcrest.PortalTokenSecurityHandler(
                username=self._username,
                password=self._password,
                org_url=self._org_url,
                proxy_url=self._proxy_url,
                proxy_port=self._proxy_port)
            token = self._securityHandler.token
Esempio n. 6
0
def main(*argv):
    """ main driver of program """
    try:
        #   Inputs
        #
        adminUsername = argv[0]
        adminPassword = argv[1]
        siteURL = argv[2]
        groupName = argv[3]
        #   Logic
        #
        sh = arcrest.AGOLTokenSecurityHandler(adminUsername, adminPassword)
        admin = arcrest.manageorg.Administration(securityHandler=sh)
        community = admin.community
        g = community.getGroupIDs(groupNames=[groupName])
        if len(g) == 0:
            arcpy.AddWarning("No Group Exists with That Name %s" % groupName)
            arcpy.SetParameterAsText(4, False)
        elif len(g) == 1:
            groups = community.groups
            groups.deleteGroup(groupId=g[0])
            arcpy.AddWarning("%s was erased." % groupName)
            arcpy.SetParameterAsText(4, True)
        else:
            arcpy.AddError(
                "Multiple group names found, please manually delete!")
            arcpy.SetParameterAsText(4, False)
    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 7
0
def main(*argv):
    """ main driver of program """
    try:
        adminUsername = argv[0]
        adminPassword = argv[1]
        siteURL = argv[2]
        username = argv[3]
        groupName = argv[4]
        #   Logic
        #
        #   Connect to AGOL
        #
        sh = arcrest.AGOLTokenSecurityHandler(adminUsername, adminPassword)
        admin = arcrest.manageorg.Administration(securityHandler=sh)
        #   Get the group ID
        #
        community = admin.community
        groupId = community.getGroupIDs(groupNames=[groupName])[0]
        #   Add the User to the Group
        #
        group = community.groups
        res = group.addUsersToGroups(users=username, groupId=groupId)
        if len(res['notAdded']) == 0:
            arcpy.SetParameterAsText(5, True)
        else:
            arcpy.SetParameterAsText(5, False)
    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 8
0
def main(*argv):
    """ main driver of program """
    try:
        #   Inputs
        #
        adminUsername = argv[0]
        adminPassword = argv[1]
        siteURL = argv[2]
        username = argv[3]
        itemId = argv[4]
        folderId = argv[5]
        #   Logic
        #
        sh = arcrest.AGOLTokenSecurityHandler(adminUsername, adminPassword)
        admin = arcrest.manageorg.Administration(url=siteURL,
                                                 securityHandler=sh)
        content = admin.content
        #if isinstance(content, arcrest.manageorg._content.Content): pass
        usercontent = content.usercontent(username=username)
        if folderId is None or \
           folderId == "":
            res = usercontent.deleteItem(item_id=itemId)
        else:
            res = usercontent.deleteItem(item_id=itemId, folder=folderId)
        arcpy.SetParameterAsText(6, str(res))
    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 9
0
def main(*argv):
    """ main driver of program """
    try:
        adminUsername = argv[0]
        adminPassword = argv[1]
        siteURL = argv[2]
        deleteUser = argv[3]
        #   Logic
        #
        sh = arcrest.AGOLTokenSecurityHandler(adminUsername, adminPassword)
        admin = arcrest.manageorg.Administration(securityHandler=sh)
        community = admin.community
        user = community.user
        res = user.deleteUser(username=deleteUser)
        if res.has_key('success'):
            arcpy.SetParameterAsText(4, str(res['success']).lower() == "true")
        else:
            arcpy.SetParameterAsText(4, False)
        del sh
        del admin
        del community
        del user
        del res
    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 10
0
             "visibility":
             True,
             "url":
             "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"
         }],
         "title":
         "Topographic"
     },
     "spatialReference": {
         "wkid": 102100,
         "latestWkid": 3857
     },
     "version":
     "2.0"
 }
 securityHandler = arcrest.AGOLTokenSecurityHandler(username, password)
 #   Create the administration connection
 #
 admin = arcrest.manageorg.Administration(url, securityHandler)
 #   Access the content properties to add the item
 #
 content = admin.content
 #   Get the user
 #
 user = content.users.user()
 #   Provide the item parameters
 #
 itemParams = arcrest.manageorg.ItemParameter()
 itemParams.title = "MY FIRST WEB MAP"
 itemParams.thumbnailurl = "http://its.ucsc.edu/software/images/arcgis.jpg"
 itemParams.type = "Web Map"
Esempio n. 11
0
def main(*argv):
    """ main driver of program """
    try:
        adminUsername = str(argv[0])
        adminPassword = str(argv[1])
        baseURL = str(argv[2])  #"https://www.arcgis.com/sharing/rest"#
        inviteSubject = str(argv[3])
        inviteEmail = str(argv[4])
        newUserName = argv[5]
        firstName = argv[6]
        lastName = argv[7]
        password = argv[8]
        email = argv[9]
        account_role = argv[10]
        #   Local Variables
        #
        isAdded = True
        #   Logic
        #
        #   Access AGOL
        #
        sh = arcrest.AGOLTokenSecurityHandler(adminUsername, adminPassword)
        userInvite = arcrest.manageorg.UserInvite(username=newUserName,
                                                  password=password,
                                                  firstName=firstName,
                                                  lastName=lastName,
                                                  email=email,
                                                  role=account_role)
        admin = arcrest.manageorg.Administration(securityHandler=sh,
                                                 initialize=True)

        #   Get the Org ID
        #
        community = admin.community
        user = community.user
        userDetails = user.user(username=adminUsername)
        orgID = userDetails['orgId']
        #   Access the Admin's Portal to Add User
        #
        portal = admin.portals(portalId=orgID)
        #   Validate the username to ensure it's free
        #   If it is not, raise error, else continue
        res = community.checkUserName(newUserName)
        if res['usernames'][0]['suggested'] != res['usernames'][0]['requested']:
            arcpy.AddError("Username %s is already taken" % newUserName)
        del community
        #   Add the User
        #
        res = portal.inviteUser(invitationList=userInvite,
                                html="welcome to the group",
                                subject="user invite to AGOL")
        for msg in res['notInvited']:
            arcpy.AddWarning("%s was not invited" % msg)
            isAdded = False
        del sh
        del portal
        del res
        arcpy.SetParameterAsText(11, isAdded)

    except arcpy.ExecuteError:
        line, filename, synerror = trace()
        arcpy.AddError("error on line: %s" % line)
        arcpy.AddError("error in file name: %s" % filename)
        arcpy.AddError("with error message: %s" % synerror)
        arcpy.AddError("ArcPy Error Message: %s" % arcpy.GetMessages(2))
    except FunctionError, f_e:
        messages = f_e.args[0]
        arcpy.AddError("error in function: %s" % messages["function"])
        arcpy.AddError("error on line: %s" % messages["line"])
        arcpy.AddError("error in file name: %s" % messages["filename"])
        arcpy.AddError("with error message: %s" % messages["synerror"])
        arcpy.AddError("ArcPy Error Message: %s" % messages["arc"])
Esempio n. 12
0
    def __init__(self,
                 username,
                 password,
                 org_url=None,
                 token_url=None,
                 proxy_url=None,
                 proxy_port=None):
        """Constructor"""
        self._org_url = org_url
        self._username = username
        self._password = password
        self._proxy_url = proxy_url
        self._proxy_port = proxy_port
        self._token_url = token_url
        if self._org_url is None or self._org_url == '':
            self._org_url = 'http://www.arcgis.com'
        if self._username == "" or self._password == "":
            self._message = "No username or password, no security handler generated"
            self._valid = True
        else:
            if self._org_url is None or '.arcgis.com' in self._org_url:
                self._securityHandler = arcrest.AGOLTokenSecurityHandler(
                    username=self._username,
                    password=self._password,
                    org_url=self._org_url,
                    token_url=self._token_url,
                    proxy_url=self._proxy_url,
                    proxy_port=self._proxy_port)
                token = self._securityHandler.token

                #if self._securityHandler.message['error']['code'] == 400:

                #self._securityHandler = arcrest.OAuthSecurityHandler(client_id='',
                #secret_id='',
                #org_url=self._org_url,
                #proxy_url=self._proxy_url,
                #proxy_port=self._proxy_port)
                #token = self._securityHandler.token
            else:

                self._securityHandler = arcrest.PortalTokenSecurityHandler(
                    username=self._username,
                    password=self._password,
                    org_url=self._org_url,
                    proxy_url=self._proxy_url,
                    proxy_port=self._proxy_port)
                token = self._securityHandler.token
                #if 'error' in self._securityHandler.message and token is None:
                #if self._securityHandler.message['error']== 401:

                #self._securityHandler = arcrest.OAuthSecurityHandler(client_id='s5CKlHcJoNSm07TP',
                #secret_id='6015feb0f44c4a5fa00e1e9486de8c48',
                #org_url=self._org_url,
                #proxy_url=self._proxy_url,
                #proxy_port=self._proxy_port)
                #token = self._securityHandler.token
            if 'error' in self._securityHandler.message and token is None:
                self._message = self._securityHandler.message
                self._valid = False

            else:
                self._message = self._securityHandler.message
                self._valid = True
Esempio n. 13
0
    def __init__(self,
                 username,
                 password,
                 org_url=None,
                 token_url=None,
                 proxy_url=None,
                 proxy_port=None):
        """Constructor"""
        self._org_url = org_url
        self._username = username
        self._password = password
        self._proxy_url = proxy_url
        self._proxy_port = proxy_port
        self._token_url = token_url

        if self._org_url is None or self._org_url == '':
            self._org_url = 'http://www.arcgis.com'
        if self._username == "" or self._password == "":
            self._message = "No username or password, no security handler generated"
            self._valid = True
        else:
            if self._org_url is None or '.arcgis.com' in self._org_url:
                self._securityHandler = arcrest.AGOLTokenSecurityHandler(
                    username=self._username,
                    password=self._password,
                    org_url=self._org_url,
                    token_url=self._token_url,
                    proxy_url=self._proxy_url,
                    proxy_port=self._proxy_port)
                token = self._securityHandler.token

                #if self._securityHandler.message['error']['code'] == 400:

                #self._securityHandler = arcrest.OAuthSecurityHandler(client_id='',
                #secret_id='',
                #org_url=self._org_url,
                #proxy_url=self._proxy_url,
                #proxy_port=self._proxy_port)
                #token = self._securityHandler.token
            else:

                self._securityHandler = arcrest.PortalTokenSecurityHandler(
                    username=self._username,
                    password=self._password,
                    org_url=self._org_url,
                    proxy_url=self._proxy_url,
                    proxy_port=self._proxy_port)
                token = self._securityHandler.token

                admin = arcrest.manageorg.Administration(
                    url=self._org_url, securityHandler=self._securityHandler)

                hostingServers = admin.hostingServers()
                for hostingServer in hostingServers:
                    serData = hostingServer.data
                    serData
                    dataItems = serData.rootDataItems
                    if 'rootItems' in dataItems:
                        for rootItem in dataItems['rootItems']:
                            if rootItem == '/enterpriseDatabases':
                                rootItems = serData.findDataItems(
                                    ancestorPath=rootItem, type='fgdb,egdb')
                                if not rootItems is None and 'items' in rootItems:
                                    for item in rootItems['items']:
                                        if 'info' in item:
                                            if 'isManaged' in item[
                                                    'info'] and item['info'][
                                                        'isManaged'] == True:
                                                conStrDic = {}
                                                conStr = item['info'][
                                                    'connectionString'].split(
                                                        ";")
                                                for conStrValue in conStr:
                                                    spltval = conStrValue.split(
                                                        "=")
                                                    conStrDic[spltval[
                                                        0]] = spltval[1]
                                                if 'DBCLIENT' in conStrDic:
                                                    if str(
                                                            conStrDic[
                                                                'DBCLIENT']
                                                    ).upper(
                                                    ) == 'postgresql'.upper():
                                                        self._featureServiceFieldCase = 'lower'

                #if 'error' in self._securityHandler.message and token is None:
                #if self._securityHandler.message['error']== 401:

                #self._securityHandler = arcrest.OAuthSecurityHandler(client_id='s5CKlHcJoNSm07TP',
                #secret_id='6015feb0f44c4a5fa00e1e9486de8c48',
                #org_url=self._org_url,
                #proxy_url=self._proxy_url,
                #proxy_port=self._proxy_port)
                #token = self._securityHandler.token
            if 'error' in self._securityHandler.message and token is None:
                self._message = self._securityHandler.message
                self._valid = False

            else:
                self._message = self._securityHandler.message
                self._valid = True
        password = "******"
        sh = None
        agol = None
        usercontent = None
        folderId = None
        proxy_port = None
        proxy_url = None
        baseURL = None

        fs = MapService(url=url)
        for serviceLayer in fs.layers:
            if serviceLayer.type == "Feature Layer":
                print "Adding: " + serviceLayer.name
                if baseURL is None or baseURL == "":
                    baseURL = "https://www.arcgis.com/sharing/rest"
                sh = arcrest.AGOLTokenSecurityHandler(username='******',
                                                      password='******')
                agol = arcrest.manageorg.Administration(url=baseURL,
                                                        securityHandler=sh)
                usercontent = agol.content.usercontent('ScottMoorePNW')
                if isinstance(
                        usercontent,
                        arcrest.manageorg.administration._content.UserContent):
                    pass

                #create an ArcPy Extent Object so we can reproject it to 4326 (lat/long)
                layerExtent = arcpy.Extent(serviceLayer.extent.get('xmin'),
                                           serviceLayer.extent.get('ymin'),
                                           serviceLayer.extent.get('xmax'),
                                           serviceLayer.extent.get('ymax'))
                try:
                    layerExtent.spatialReference = arcpy.SpatialReference(
Esempio n. 15
0
import arcrest

sh = arcrest.AGOLTokenSecurityHandler("user", "password")
admin = arcrest.manageorg.Administration(securityHandler=sh)
user = admin.content.users.user()
ip = arcrest.manageorg.ItemParameter()
ip.title = "MyGeoJSONTestFile"
ip.type = "GeoJson"
ip.tags = "Geo1,Geo2"
ip.description = "Publishing a geojson file"
addedItem = user.addItem(itemParameters=ip,
                         filePath=r"c:\temp3\states2.geojson")
itemId = addedItem['id']
pp = arcrest.manageorg.PublishGeoJSONParameter()
pp.name = "Geojsonrocks"
pp.hasStaticData = True
print user.publishItem(fileType="geojson", publishParameters=pp, itemId=itemId)
Esempio n. 16
0
from __future__ import print_function
from __future__ import absolute_import
import arcrest

if __name__ == "__main__":
    sh = arcrest.AGOLTokenSecurityHandler(username="******",
                                          password="******")
    admin = arcrest.manageorg.Administration(securityHandler=sh)
    user = admin.content.users.user()
    ip = arcrest.manageorg.ItemParameter()
    ip.title = "A very large fgdb"
    ip.type = "File Geodatabase"
    ip.tags = "fgdb"
    ip.description = "description"
    ip.snippet = "snippet"
    res = user.addItem(
        itemParameters=ip,
        filePath=r"C:\temp3\40a87ec04f334df8bd92d9842f19570f.zip",
        multipart=True)

    # the result object is a UserItem object, not JSON.  This is for version 3.5.3/3.5.4