The documentation does not include information about how to use RESTCONF clients. This example documents some common tasks using Python.
For additional details, see Extreme API with Python .
Configure the RESTCONF server on the switch.
#!/usr/bin/env python
import sys
import json
import requests
from requests import Request, Session
from requests.auth import HTTPBasicAuth
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
########################################################################
Host     = '192.0.2.1'
TcpPort  = ‘8080'
UserName = 'rwa'
PassWord = 'rwa'
LoginUrl = 'https://%s:%s/auth/token' % (Host, TcpPort)QueryUrl = 'https://%s:%s/rest/restconf/data/' % (Host, TcpPort)
vlan     = 123
########################################################################
session         = Session()
session.verify  = False
session.timeout = 5
session.headers.update({    'Accept': 	  'application/json',
                            'Accept-Encoding': 'gzip, deflate, br',
                            'Connection':      'keep-alive',
                            'Cache-Control':   'no-cache',
                            'Pragma': 	  'no-cache‘, })
        
Note
The token expires after 24 hours.
body = '{"username": "%s", "password" : "%s" }' % (UserName,PassWord)
response = session.put( LoginUrl, body )
if response.status_code != 200:
    print "ERROR: Login failed"
    sys.exit(1)
else:    session.headers.update({
             'X-Auth-Token': response.headers['X-Auth-Token‘]
    })
    print "INFO: login passed"
        response = session.get( QueryUrl + 'openconfig-vlan:vlans' )
if response.status_code != 200:
    print 'ERROR: can‘t fetch VLANs'
        response = session.get( QueryUrl + 'openconfig-vlan:vlans/vlan=%s' % vlan )
if response.status_code != 200:
    print 'INFO: VLAN %s doesn‘t exists' % vlan
else:
    print 'INFO: VLAN %s exists' % vlan
        inbound_data = json.loads( response.text )
for vlan in inbound_data['openconfig-vlan:vlans' ]['vlan']:
     print 'VLAN: %s [%s]' % ( vlan['state']['name'], vlan['vlan-id‘] )
        inbound_data = json.loads( response.text )
for dataVlan in inbound_data[ dataObject ]['vlan']:
    print ''
    print 'VLAN: ' + dataVlan['state']['name'] + '[' + dataVlan['vlan-id'] + ']'
    interfaces = ' '
    if 'members' in dataVlan :
        for interface in dataVlan['members']['member ']:
            interfaces = interfaces + interface['interface-ref']['state']['interface'] + ','
        
        print interfaces
        dataObject = 'openconfig-vlan:vlans‘
data = { "openconfig-vlan:vlan": [
                                   { "config":
						     { "name":    "Test-VLAN",
						       "extreme-mod-oc-vlan:stg-id": 1,
						       "vlan-id": vlan
						     }
					        }
                                 ] 
       }
response = session.post( QueryUrl + dataObject, json=data )
if response.status_code != 201:
	print "ERROR: add VLAN %s failed" % vlan
else:
	print "INFO: VLAN %s added " % vlan
        dataObject = 'openconfig-vlan:vlans/vlan=%s/config' % vlan
data = { "openconfig-vlan:config":
               { "name":    "New-VLAN-Name" }
        }
response = session.patch( QueryUrl + dataObject )
if response.status_code != 204:
    print "ERROR: update VLAN %s fails" % vlan
else:
    print "INFO: VLAN %s updated" % vlan
        dataObject = 'openconfig-vlan:vlans/vlan=%s' % vlan
response = session.delete( QueryUrl + dataObject )
if response.status_code != 204:
    print "ERROR: delete VLAN %s fails" % vlan
else:
    print "INFO: VLAN %s deleted" % vlan