<!-- 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. -->
<!-- cloud_usage -->
<dataset>
<cloud_usage usage_type="1" account_id="1" domain_id="1" description="test" usage_display=" " raw_usage="11" usage_id="8" id="8" start_date="2019-01-01 00:00:01" end_date="2019-01-01 00:00:01" zone_id="1"/>
<cloud_usage usage_type="1" account_id="1" domain_id="1" description="test" usage_display=" "  raw_usage="13" usage_id="6" id="6" start_date="2019-01-01 00:00:01" end_date="2019-01-01 00:00:01" zone_id="1"/>

<cloud_usage usage_type="6" account_id="1" domain_id="1" description="test" usage_display=" "  raw_usage="2" usage_id="16" id="7" start_date="2019-01-01 00:00:01" end_date="2019-01-01 00:00:01" zone_id="1"/>
<cloud_usage usage_type="8" account_id="1" domain_id="1" description="test" usage_display=" "  raw_usage="4" usage_id="14" id="9" start_date="2019-01-01 00:00:01" end_date="2019-01-01 00:00:01" zone_id="1" />

<cloud_usage usage_type="9" account_id="1" domain_id="1" description="test" usage_display=" "  raw_usage="5" usage_id="18" id="10" start_date="2019-01-01 00:00:01" end_date="2019-01-01 00:00:01" zone_id="1" />

<usage_volume id="2" zone_id="1" account_id="1" domain_id="1" created="2019-01-01 00:00:01"/>
<usage_volume id="4" zone_id="1" account_id="1" domain_id="1" created="2019-01-01 00:00:01"/>

<usage_vm_instance usage_type="1" vm_instance_id="1" zone_id="1" account_id="1" vm_name="test" service_offering_id="1" template_id="1" start_date="2019-01-01 00:00:01"/>
<usage_vm_instance usage_type="2" vm_instance_id="2" zone_id="1" account_id="1" vm_name="test" service_offering_id="1" template_id="1" start_date="2019-01-01 00:00:01"/>
<usage_vm_instance usage_type="2" vm_instance_id="2" zone_id="1" account_id="1" vm_name="test" service_offering_id="1" template_id="1" start_date="2019-01-01 00:00:02"/>
</dataset>
