Zum Inhalt
HALOWERK

Finopswerk

multipart storage assembly ledger

From original serial quiescent multipart events, reconstruct latest part/ETag binding, ordered complete manifests,5MiB nonlast minimum, lifecycle decisions, remaining parts/completed object and separate part/object byte-seconds. Failed local complete preflight retains storage; success/abort releases parts. Decisions are exact disclosed profile results, not observed AWS responses or real physical bills/prices/checksums/IAM. One missing part-commit capture preserves both full histories. A.

POST https://finops.halowerk.com/v1/multipart-storage-assembly-ledger

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
eventsarrayJa
horizonintegerJa
reportobjectJa
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "enum": [
              "init",
              "part",
              "complete",
              "abort"
            ]
          },
          "at": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          },
          "part_number": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              },
              {
                "type": "null"
              }
            ]
          },
          "etag": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-z][a-z0-9_]{0,15}$",
                "minLength": 1,
                "maxLength": 16
              },
              {
                "type": "null"
              }
            ]
          },
          "size_bytes": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 16777216
              },
              {
                "type": "null"
              }
            ]
          },
          "manifest": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "part_number": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4
                    },
                    "etag": {
                      "type": "string",
                      "pattern": "^[a-z][a-z0-9_]{0,15}$",
                      "minLength": 1,
                      "maxLength": 16
                    }
                  },
                  "required": [
                    "part_number",
                    "etag"
                  ],
                  "additionalProperties": false
                },
                "minItems": 1,
                "maxItems": 4
              },
              {
                "type": "null"
              }
            ]
          },
          "committed": {
            "enum": [
              true,
              false,
              null
            ]
          }
        },
        "required": [
          "kind",
          "at",
          "part_number",
          "etag",
          "size_bytes",
          "manifest",
          "committed"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 10
    },
    "horizon": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    },
    "report": {
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "decision": {
                "anyOf": [
                  {
                    "enum": [
                      "init",
                      "part_applied",
                      "part_not_applied",
                      "complete_ok",
                      "abort_ok",
                      "InvalidPart",
                      "InvalidPartOrder",
                      "EntityTooSmall",
                      "NoSuchUpload"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "phase": {
                "anyOf": [
                  {
                    "enum": [
                      "active",
                      "complete",
                      "aborted"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "part_bytes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 67108864
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "object_bytes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 67108864
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "part_byte_seconds": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100000000000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "object_byte_seconds": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100000000000
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "decision",
              "phase",
              "part_bytes",
              "object_bytes",
              "part_byte_seconds",
              "object_byte_seconds"
            ],
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 10
        },
        "remaining_parts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "etag": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[a-z][a-z0-9_]{0,15}$",
                    "minLength": 1,
                    "maxLength": 16
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "size_bytes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 16777216
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "etag",
              "size_bytes"
            ],
            "additionalProperties": false
          },
          "minItems": 4,
          "maxItems": 4
        },
        "object_parts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "part_number": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 4
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "etag": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[a-z][a-z0-9_]{0,15}$",
                    "minLength": 1,
                    "maxLength": 16
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "size_bytes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 16777216
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "part_number",
              "etag",
              "size_bytes"
            ],
            "additionalProperties": false
          },
          "minItems": 4,
          "maxItems": 4
        },
        "part_byte_seconds": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 100000000000
            },
            {
              "type": "null"
            }
          ]
        },
        "object_byte_seconds": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 100000000000
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "events",
        "remaining_parts",
        "object_parts",
        "part_byte_seconds",
        "object_byte_seconds"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "events",
    "horizon",
    "report"
  ],
  "additionalProperties": false
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "events": [
    {
      "kind": "init",
      "at": 0,
      "part_number": null,
      "etag": null,
      "size_bytes": null,
      "manifest": null,
      "committed": true
    },
    {
      "kind": "part",
      "at": 10,
      "part_number": 1,
      "etag": "old",
      "size_bytes": 6291456,
      "manifest": null,
      "committed": true
    },
    {
      "kind": "part",
      "at": 20,
      "part_number": 2,
      "etag": "tail",
      "size_bytes": 1048576,
      "manifest": null,
      "committed": true
    },
    {
      "kind": "part",
      "at": 30,
      "part_number": 1,
      "etag": "new",
      "size_bytes": 6291456,
      "manifest": null,
      "committed": true
    },
    {
      "kind": "complete",
      "at": 40,
      "part_number": null,
      "etag": null,
      "size_bytes": null,
      "manifest": [
        {
          "part_number": 1,
          "etag": "old"
        },
        {
          "part_number": 2,
          "etag": "tail"
        }
      ],
      "committed": true
    },
    {
      "kind": "complete",
      "at": 50,
      "part_number": null,
      "etag": null,
      "size_bytes": null,
      "manifest": [
        {
          "part_number": 1,
          "etag": "new"
        },
        {
          "part_number": 2,
          "etag": "tail"
        }
      ],
      "committed": true
    }
  ],
  "horizon": 100,
  "report": {
    "events": [
      {
        "decision": "init",
        "phase": "active",
        "part_bytes": 0,
        "object_bytes": 0,
        "part_byte_seconds": 0,
        "object_byte_seconds": 0
      },
      {
        "decision": "part_applied",
        "phase": "active",
        "part_bytes": 6291456,
        "object_bytes": 0,
        "part_byte_seconds": 0,
        "object_byte_seconds": 0
      },
      {
        "decision": "part_applied",
        "phase": "active",
        "part_bytes": 7340032,
        "object_bytes": 0,
        "part_byte_seconds": 62914560,
        "object_byte_seconds": 0
      },
      {
        "decision": "part_applied",
        "phase": "active",
        "part_bytes": 7340032,
        "object_bytes": 0,
        "part_byte_seconds": 136314880,
        "object_byte_seconds": 0
      },
      {
        "decision": "InvalidPart",
        "phase": "active",
        "part_bytes": 7340032,
        "object_bytes": 0,
        "part_byte_seconds": 209715200,
        "object_byte_seconds": 0
      },
      {
        "decision": "complete_ok",
        "phase": "complete",
        "part_bytes": 0,
        "object_bytes": 7340032,
        "part_byte_seconds": 283115520,
        "object_byte_seconds": 0
      }
    ],
    "remaining_parts": [
      {
        "etag": "empty",
        "size_bytes": 0
      },
      {
        "etag": "empty",
        "size_bytes": 0
      },
      {
        "etag": "empty",
        "size_bytes": 0
      },
      {
        "etag": "empty",
        "size_bytes": 0
      }
    ],
    "object_parts": [
      {
        "part_number": 1,
        "etag": "new",
        "size_bytes": 6291456
      },
      {
        "part_number": 2,
        "etag": "tail",
        "size_bytes": 1048576
      },
      {
        "part_number": 0,
        "etag": "empty",
        "size_bytes": 0
      },
      {
        "part_number": 0,
        "etag": "empty",
        "size_bytes": 0
      }
    ],
    "part_byte_seconds": 283115520,
    "object_byte_seconds": 367001600
  }
}

Ergebnis & Dokumentation

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-07, 02:42 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →