Amazon Managed Blockchain · JSON Structure
Amazon Managed Blockchain Proposal Structure
Properties of a proposal on a Managed Blockchain network.
Applies only to Hyperledger Fabric.
Type: object
Properties: 14
BlockchainDistributed LedgerHyperledger FabricEthereum
Proposal is a JSON Structure definition published by Amazon Managed Blockchain, describing 14 properties. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
ProposalId
NetworkId
Description
Actions
ProposedByMemberId
ProposedByMemberName
Status
CreationDate
ExpirationDate
YesVoteCount
NoVoteCount
OutstandingVoteCount
Tags
Arn
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$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-proposal-structure.json",
"name": "Proposal",
"description": "<p>Properties of a proposal on a Managed Blockchain network.</p> <p>Applies only to Hyperledger Fabric.</p>",
"type": "object",
"properties": {
"ProposalId": {
"allOf": [
{
"$ref": "#/components/schemas/ResourceIdString"
},
{
"description": "The unique identifier of the proposal."
}
]
},
"NetworkId": {
"allOf": [
{
"$ref": "#/components/schemas/ResourceIdString"
},
{
"description": "The unique identifier of the network for which the proposal is made."
}
]
},
"Description": {
"allOf": [
{
"$ref": "#/components/schemas/DescriptionString"
},
{
"description": "The description of the proposal."
}
]
},
"Actions": {
"allOf": [
{
"$ref": "#/components/schemas/ProposalActions"
},
{
"description": "The actions to perform on the network if the proposal is <code>APPROVED</code>."
}
]
},
"ProposedByMemberId": {
"allOf": [
{
"$ref": "#/components/schemas/ResourceIdString"
},
{
"description": "The unique identifier of the member that created the proposal."
}
]
},
"ProposedByMemberName": {
"allOf": [
{
"$ref": "#/components/schemas/NetworkMemberNameString"
},
{
"description": "The name of the member that created the proposal."
}
]
},
"Status": {
"allOf": [
{
"$ref": "#/components/schemas/ProposalStatus"
},
{
"description": "<p>The status of the proposal. Values are as follows:</p> <ul> <li> <p> <code>IN_PROGRESS</code> - The proposal is active and open for member voting.</p> </li> <li> <p> <code>APPROVED</code> - The proposal was approved with sufficient <code>YES</code> votes among members according to the <code>VotingPolicy</code> specified for the <code>Network</code>. The specified proposal actions are carried out.</p> </li> <li> <p> <code>REJECTED</code> - The proposal was rejected with insufficient <code>YES</code> votes among members according to the <code>VotingPolicy</code> specified for the <code>Network</code>. The specified <code>ProposalActions</code> aren't carried out.</p> </li> <li> <p> <code>EXPIRED</code> - Members didn't cast the number of votes required to determine the proposal outcome before the proposal expired. The specified <code>ProposalActions</code> aren't carried out.</p> </li> <li> <p> <code>ACTION_FAILED</code> - One or more of the specified <code>ProposalActions</code> in a proposal that was approved couldn't be completed because of an error. The <code>ACTION_FAILED</code> status occurs even if only one ProposalAction fails and other actions are successful.</p> </li> </ul>"
}
]
},
"CreationDate": {
"allOf": [
{
"$ref": "#/components/schemas/Timestamp"
},
{
"description": " The date and time that the proposal was created. "
}
]
},
"ExpirationDate": {
"allOf": [
{
"$ref": "#/components/schemas/Timestamp"
},
{
"description": " The date and time that the proposal expires. This is the <code>CreationDate</code> plus the <code>ProposalDurationInHours</code> that is specified in the <code>ProposalThresholdPolicy</code>. After this date and time, if members haven't cast enough votes to determine the outcome according to the voting policy, the proposal is <code>EXPIRED</code> and <code>Actions</code> aren't carried out. "
}
]
},
"YesVoteCount": {
"allOf": [
{
"$ref": "#/components/schemas/VoteCount"
},
{
"description": " The current total of <code>YES</code> votes cast on the proposal by members. "
}
]
},
"NoVoteCount": {
"allOf": [
{
"$ref": "#/components/schemas/VoteCount"
},
{
"description": " The current total of <code>NO</code> votes cast on the proposal by members. "
}
]
},
"OutstandingVoteCount": {
"allOf": [
{
"$ref": "#/components/schemas/VoteCount"
},
{
"description": " The number of votes remaining to be cast on the proposal by members. In other words, the number of members minus the sum of <code>YES</code> votes and <code>NO</code> votes. "
}
]
},
"Tags": {
"allOf": [
{
"$ref": "#/components/schemas/OutputTagMap"
},
{
"description": "<p>Tags assigned to the proposal. Each tag consists of a key and optional value.</p> <p>For more information about tags, see <a href=\"https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html\">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href=\"https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html\">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.</p>"
}
]
},
"Arn": {
"allOf": [
{
"$ref": "#/components/schemas/ArnString"
},
{
"description": "The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>."
}
]
}
}
}