# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

updateAccount=no
listAccounts=no

createUser=no
updateUser=no
deleteUser=no
listUsers=no
disableUser=yes
enableUser=no
disableAccount=yes
enableAccount=no
lockUser=no
lockAccount=no
deleteAccount=yes

createDomain=no
updateDomain=no
deleteDomain=yes
listDomains=no
listDomainChildren=no

updateResourceLimit=no
deleteResourceLimit=no
listResourceLimits=no

deployVirtualMachine=yes
destroyVirtualMachine=yes
rebootVirtualMachine=yes
startVirtualMachine=yes
stopVirtualMachine=yes
resetPasswordForVirtualMachine=yes
changeServiceForVirtualMachine=no
updateVirtualMachine=no
recoverVirtualMachine=no
listVirtualMachines=no

createSnapshot=yes
deleteSnapshot=yes
listSnapshots=no
listRecurringSnapshotSchedule=no
createVolumeFromSnapshot=yes
createSnapshotPolicy=no
deleteSnapshotPolicies=no
listSnapshotPolicies=no

createTemplate=yes
registerTemplate=no
updateTemplate=no
deleteTemplate=no
listTemplates=no
updateTemplatePermissions=no
listTemplatePermissions=no
copyTemplate=yes

attachIso=yes
detachIso=yes
listIsos=no
registerIso=no
updateIso=no
deleteIso=yes
copyIso=yes

listOSTypes=no

createServiceOffering=no
deleteServiceOffering=no
updateServiceOffering=no
listServiceOfferings=no

createDiskOffering=no
updateDiskOffering=no
deleteDiskOffering=no
listDiskOfferings=no

createVlan=no
deleteVlan=no

createVlanIpRange=no
deleteVlanIpRange=no
listVlanIpRanges=no

createVlanRange=no
deleteVlanRange=no
listVlanRanges=no

associateIpAddress=yes
disassociateIpAddress=yes
listPublicIpAddresses=no
listPrivateIpAddresses=no
updatePublicIpRange=no
updatePrivateIpRange=no

createPortForwardingServiceRule=yes
deletePortForwardingServiceRule=yes
listPortForwardingServiceRules=no
createPortForwardingService=no
deletePortForwardingService=yes
assignPortForwardingService=yes
removePortForwardingService=yes
listPortForwardingServices=no
listPortForwardingServicesByVm=no
createPortForwardingRule=no
deletePortForwardingRule=no
listPortForwardingRules=no
updatePortForwardingRule=no

createIpForwardingRule=yes
deleteIpForwardingRule=yes
listIpForwardingRules=no

createLoadBalancerRule=no
deleteLoadBalancerRule=yes
removeFromLoadBalancerRule=yes
assignToLoadBalancerRule=yes
listLoadBalancerRules=no
listLoadBalancerRuleInstances=no

startRouter=yes
rebootRouter=yes
stopRouter=yes
listRouters=no

startSystemVm=yes
rebootSystemVm=yes
stopSystemVm=yes
listSystemVms=no

updateConfiguration=no
listConfigurations=no

createPod=no
updatePod=no
deletePod=no
listPods=no

createZone=no
updateZone=no
deleteZone=no
listZones=no

listEvents=no

listAlerts=no

listCapacity=no

addHost=no
reconnectHost=yes
deleteHost=no
prepareHostForMaintenance=yes
cancelHostMaintenance=yes
listHosts=no
addSecondaryStorage=no

attachVolume=yes
detachVolume=yes
createVolume=yes
deleteVolume=no
listVolumes=no

registerUserKeys=no

queryAsyncJobResult=no

listStoragePools=no
listStoragePoolsAndHosts=no
createStoragePool=no


createNetworkGroup=no
revokeNetworkGroupIngress=yes
authorizeNetworkGroupIngress=yes

createNetwork=no
