Python was easiest for me. Look how simple this is:
!/usr/bin/python3.4
import requests,json
def provisionSoftwareModule(ipAddress,verifyHttpsCert,userName,password,moduleName,provisioningLevel):
payload = {}
payload['name'] = moduleName
payload['level'] = provisioningLevel
apiCall = requests.session()
apiCall.auth = (userName, password)
apiCall.verify = verifyHttpsCert
apiCall.headers.update({'Content-Type' : 'application/json'})
apiUrl = 'https://' + ipAddress + '/mgmt/tm/sys/provision/' + moduleName
apiResponse = apiCall.put(apiUrl,data=json.dumps(payload))
if not '"generation"' in apiResponse.text:
print(apiResponse.text)
provisionSoftwareModule('192.168.1.1',False,'admin','mypassword','ltm','nominal')