<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!-- Copyright 2015-2026 Storage Networking Industry Association (SNIA), USA. All rights reserved.-->
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">

  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
    <edmx:Include Namespace="Resource.v1_0_0"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Measures.V1.xml">
    <edmx:Include Namespace="Org.OData.Measures.V1" Alias="Measures"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/swordfish/v1/IOStatistics_v1.xml">
    <edmx:Include Namespace="IOStatistics"/>
  </edmx:Reference>

  <edmx:DataServices>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VolumeMetrics">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="Redfish.Language" String="en"/>

      <EntityType Name="VolumeMetrics" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The usage and health statistics for a volume."/>
        <Annotation Term="OData.LongDescription" String="The VolumeMetrics schema shall contain the usage and health statistics for a volume in a Redfish implementation."/>
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="Capabilities.InsertRestrictions">
          <Record>
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record>
            <PropertyValue Property="Updatable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/ResourceBlocks/{ResourceBlockId}/Storage/{StorageId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/Storage/{StorageId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Storage/{StorageId}/ConsistencyGroups/{ConsistencyGroupId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Storage/{StorageId}/FileSystems/{FileSystemId}/CapacitySources/{CapacitySourceId}/ProvidingVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Storage/{StorageId}/StoragePools/{StoragePoolId}/AllocatedVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Storage/{StorageId}/StoragePools/{StoragePoolId}/CapacitySources/{CapacitySourceId}/ProvidingVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Storage/{StorageId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/ConsistencyGroups/{ConsistencyGroupId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/FileSystems/{FileSystemId}/CapacitySources/{CapacitySourceId}/ProvidingVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/StoragePools/{StoragePoolId}/AllocatedVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/StoragePools/{StoragePoolId}/CapacitySources/{CapacitySourceId}/ProvidingVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/StorageServices/{StorageServiceId}/ConsistencyGroups/{ConsistencyGroupId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/StorageServices/{StorageServiceId}/FileSystems/{FileSystemId}/CapacitySources/{CapacitySourceId}/ProvidingVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/StorageServices/{StorageServiceId}/StoragePools/{StoragePoolId}/AllocatedVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/StorageServices/{StorageServiceId}/StoragePools/{StoragePoolId}/CapacitySources/{CapacitySourceId}/ProvidingVolumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/StorageServices/{StorageServiceId}/Volumes/{VolumeId}/Metrics</String>
            <String>/redfish/v1/StorageServices/{StorageServiceId}/Volumes/{VolumeId}/CapacitySources/{CapacitySourceId}/ProvidingVolumes/{ProvidingVolumeId}/Metrics</String>
          </Collection>
        </Annotation>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VolumeMetrics.v1_0_0">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="Redfish.Release" String="1.2.5"/>

      <EntityType Name="VolumeMetrics" BaseType="VolumeMetrics.VolumeMetrics">
        <Property Name="CorrectableIOReadErrorCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of the correctable read errors for the lifetime of the volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of the correctable read errors for the lifetime of the volume."/>
        </Property>
        <Property Name="CorrectableIOWriteErrorCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of the correctable write errors for the lifetime of the volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of the correctable write errors for the lifetime of the volume."/>
        </Property>
        <Property Name="UncorrectableIOReadErrorCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of the uncorrectable read errors for the lifetime of the volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of the uncorrectable read errors for the lifetime of the volume."/>
        </Property>
        <Property Name="UncorrectableIOWriteErrorCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of the uncorrectable write errors for the lifetime of the volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of the uncorrectable write errors for the lifetime of the volume."/>
        </Property>

        <Property Name="StateChangeCount" Type="Edm.Decimal">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of state changes (changes in Status.State) for this volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of state changes (changes in Status.State) for this volume."/>
        </Property>
        <Property Name="ConsistencyCheckErrorCount" Type="Edm.Decimal">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of consistency check errors of the volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of consistency check errors over the lifetime of the volume."/>
        </Property>
        <Property Name="RebuildErrorCount" Type="Edm.Decimal">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of rebuild errors over the lifetime of the volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of rebuild errors over the lifetime of the volume."/>
        </Property>

        <Property Name="Actions" Type="VolumeMetrics.v1_0_0.Actions" Nullable="false">
          <Annotation Term="OData.Description" String="The available actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
        </Property>
      </EntityType>

      <ComplexType Name="Actions">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="The available actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
        <Property Name="Oem" Type="VolumeMetrics.v1_0_0.OemActions" Nullable="false">
          <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
        </Property>
      </ComplexType>

      <ComplexType Name="OemActions">
        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
        <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>

      </ComplexType>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VolumeMetrics.v1_0_1">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.LongDescription" String="Change IOStatistics references to unversioned."/>
      <EntityType Name="VolumeMetrics" BaseType="VolumeMetrics.v1_0_0.VolumeMetrics"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VolumeMetrics.v1_1_0">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="This version was created to add ConsistencyCheckCount and IOStatistics."/>
      <Annotation Term="Redfish.Release" String="1.2.6"/>
      <EntityType Name="VolumeMetrics" BaseType="VolumeMetrics.v1_0_0.VolumeMetrics">
        <Property Name="ConsistencyCheckCount" Type="Edm.Decimal">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of consistency checks completed over the lifetime of the volume."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of consistency checks completed over the lifetime of the volume."/>
        </Property>
        <Property Name="IOStatistics" Type="IOStatistics.IOStatistics" Nullable="false">
          <Annotation Term="OData.Description" String="Statistics for this volume."/>
          <Annotation Term="OData.LongDescription" String="The value shall represent IO statistics for this volume."/>
        </Property>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VolumeMetrics.v1_1_1">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="Change IOStatistics references to unversioned."/>
      <EntityType Name="VolumeMetrics" BaseType="VolumeMetrics.v1_1_0.VolumeMetrics"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VolumeMetrics.v1_2_0">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="Redfish.Release" String="1.2.8"/>
      <Annotation Term="OData.Description" String="This version was created to add CompressionSavingsBytes, DeduplicationSavingsBytes, and ThinProvisioningSavingsBytes."/>
      <EntityType Name="VolumeMetrics" BaseType="VolumeMetrics.v1_1_1.VolumeMetrics">
        <Property Name="CompressionSavingsBytes" Type="Edm.Int64">
          <Annotation Term="OData.Description" String="Current compression savings on the volume in Bytes."/>
          <Annotation Term="OData.LongDescription" String="The value shall represent the current compression savings on the volume in Bytes."/>
          <Annotation Term="Measures.Unit" String="By"/>
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
        </Property>
        <Property Name="DeduplicationSavingsBytes" Type="Edm.Int64">
          <Annotation Term="OData.Description" String="Current deduplication savings on the volume in Bytes."/>
          <Annotation Term="OData.LongDescription" String="The value shall represent the current deduplication savings on the volume in Bytes."/>
          <Annotation Term="Measures.Unit" String="By"/>
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
        </Property>
        <Property Name="ThinProvisioningSavingsBytes" Type="Edm.Int64">
          <Annotation Term="OData.Description" String="Current thin provisioning savings on the volume in Bytes."/>
          <Annotation Term="OData.LongDescription" String="The value shall represent the current thin provisioning savings on the volume in Bytes."/>
          <Annotation Term="Measures.Unit" String="By"/>
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
        </Property>        
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VolumeMetrics.v1_3_0">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="Redfish.Release" String="1.2.9"/>
      <Annotation Term="OData.Description" String="This version was created to add LifetimeStartDateTime."/>
      <EntityType Name="VolumeMetrics" BaseType="VolumeMetrics.v1_2_0.VolumeMetrics">
        <Property Name="LifetimeStartDateTime" Type="Edm.DateTimeOffset">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The date and time when the volume started accumulating data for properties maintained for the lifetime of the volume, such as, but not limited to 'CorrectableIOReadErrorCount' and 'CorrectableIOWriteErrorCount'."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the date and time when the volume started accumulating data for properties maintained for the lifetime of the volume, such as, but not limited to 'CorrectableIOReadErrorCount' and 'CorrectableIOWriteErrorCount'. Lifetime counts are noted in the LongDescription for relevant properties. This might contain the same value as the creation date of the volume."/>

        </Property>
      </EntityType>
    </Schema>

  </edmx:DataServices>
</edmx:Edmx>
