{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-managed-blockchain/refs/heads/main/json-structure/amazon-managed-blockchain-approval-threshold-policy-structure.json",
  "name": "ApprovalThresholdPolicy",
  "description": "<p>A policy type that defines the voting rules for the network. The rules decide if a proposal is approved. Approval may be based on criteria such as the percentage of <code>YES</code> votes and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.</p> <p>Applies only to Hyperledger Fabric.</p>",
  "type": "object",
  "properties": {
    "ThresholdPercentage": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ThresholdPercentageInt"
        },
        {
          "description": "The percentage of votes among all members that must be <code>YES</code> for a proposal to be approved. For example, a <code>ThresholdPercentage</code> value of <code>50</code> indicates 50%. The <code>ThresholdComparator</code> determines the precise comparison. If a <code>ThresholdPercentage</code> value of <code>50</code> is specified on a network with 10 members, along with a <code>ThresholdComparator</code> value of <code>GREATER_THAN</code>, this indicates that 6 <code>YES</code> votes are required for the proposal to be approved."
        }
      ]
    },
    "ProposalDurationInHours": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ProposalDurationInt"
        },
        {
          "description": "The duration from the time that a proposal is created until it expires. If members cast neither the required number of <code>YES</code> votes to approve the proposal nor the number of <code>NO</code> votes required to reject it before the duration expires, the proposal is <code>EXPIRED</code> and <code>ProposalActions</code> aren't carried out."
        }
      ]
    },
    "ThresholdComparator": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ThresholdComparator"
        },
        {
          "description": "Determines whether the vote percentage must be greater than the <code>ThresholdPercentage</code> or must be greater than or equal to the <code>ThreholdPercentage</code> to be approved."
        }
      ]
    }
  }
}