# 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
