mirror of
https://github.com/hanzoai/swift-sdk.git
synced 2026-10-30 18:20:19 +00:00
The projection was 113 commits behind the document it claims to describe, and `generate.py --all --check` reported every one of the thirteen clients DRIFTED — the same +19 models in each, because they all fell behind the same emission. Regenerated in place from hanzo-inc/cloud openapi.yaml at 939b09d4 (sha256 087024f6…), which is the only description of this API that cannot name a route the binary does not serve. `--check` is clean across all thirteen after. .spec-lock moved with the code. The generator READS that file and never writes it — hanzoai/ci`s lane does — so a hand run leaves every lock naming the previous document. A lock that disagrees with the tree beside it is worse than no lock: the next `--check` without `--spec` fetches what production serves, compares it to a digest that was already wrong, and reports drift that is really staleness.
96 lines
4.4 KiB
Swift
96 lines
4.4 KiB
Swift
//
|
|
// RunnerBuildReq.swift
|
|
//
|
|
// Generated by openapi-generator
|
|
// https://openapi-generator.tech
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public struct RunnerBuildReq: Sendable, Codable, ParameterConvertible, Hashable {
|
|
|
|
/** Arch is the target architecture for the artifact lane. */
|
|
public var arch: String?
|
|
/** Args are --build-arg values. They are what lets several images off ONE Dockerfile mean different things — the sandbox classes are three entries differing only by STAGE. Validated at the k8s choke point, with VERSION and REVISION taking precedence: those are receipts the builder derives from the tag and the commit, and a caller that could overwrite them could make an image lie about which commit it is. */
|
|
public var args: [String: String]?
|
|
/** Binaries selects the ARTIFACT lane (artifact.go): build what the repo's hanzo.yml `binaries:` block declares — a Go binary, an npm tarball, a Rust binary — and publish it to hanzoai/s3 instead of pushing an image. It is the same recipe hanzoai/ci reads, sent verbatim, so `image` is meaningless here and must be absent. */
|
|
public var binaries: [BinarySpec]?
|
|
/** Branch is the branch to build when no SHA or Ref is given. */
|
|
public var branch: String?
|
|
/** Bucket mirrors hanzo.yml's `bucket:` — where the artifact lane publishes. */
|
|
public var bucket: String?
|
|
/** Context is the build context path within the repo. */
|
|
public var context: String?
|
|
/** DockerTarget is the multi-stage build target to stop at. */
|
|
public var dockerTarget: String?
|
|
/** Dockerfile is the path to build from; empty uses the zero-config frontend. */
|
|
public var dockerfile: String?
|
|
/** Image is the output image ref to push. Required on the image lane, and it must target a registry namespace the caller's org owns. */
|
|
public var image: String?
|
|
/** OS is the target operating system for the artifact lane. */
|
|
public var os: String?
|
|
/** Ref is the git ref to build when no SHA is given. */
|
|
public var ref: String?
|
|
/** Repo is the repository clone URL to build. Required on the image lane. */
|
|
public var repo: String?
|
|
/** SHA is the commit to pin; it wins over Ref and Branch. */
|
|
public var sha: String?
|
|
/** Tag is the publish path segment, so both entry points write ONE index at ONE URL. It defaults to the pinned ref, and must be named explicitly for a branch. */
|
|
public var tag: String?
|
|
|
|
public init(arch: String? = nil, args: [String: String]? = nil, binaries: [BinarySpec]? = nil, branch: String? = nil, bucket: String? = nil, context: String? = nil, dockerTarget: String? = nil, dockerfile: String? = nil, image: String? = nil, os: String? = nil, ref: String? = nil, repo: String? = nil, sha: String? = nil, tag: String? = nil) {
|
|
self.arch = arch
|
|
self.args = args
|
|
self.binaries = binaries
|
|
self.branch = branch
|
|
self.bucket = bucket
|
|
self.context = context
|
|
self.dockerTarget = dockerTarget
|
|
self.dockerfile = dockerfile
|
|
self.image = image
|
|
self.os = os
|
|
self.ref = ref
|
|
self.repo = repo
|
|
self.sha = sha
|
|
self.tag = tag
|
|
}
|
|
|
|
public enum CodingKeys: String, CodingKey, CaseIterable {
|
|
case arch
|
|
case args
|
|
case binaries
|
|
case branch
|
|
case bucket
|
|
case context
|
|
case dockerTarget
|
|
case dockerfile
|
|
case image
|
|
case os
|
|
case ref
|
|
case repo
|
|
case sha
|
|
case tag
|
|
}
|
|
|
|
// Encodable protocol methods
|
|
|
|
public func encode(to encoder: Encoder) throws {
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
try container.encodeIfPresent(arch, forKey: .arch)
|
|
try container.encodeIfPresent(args, forKey: .args)
|
|
try container.encodeIfPresent(binaries, forKey: .binaries)
|
|
try container.encodeIfPresent(branch, forKey: .branch)
|
|
try container.encodeIfPresent(bucket, forKey: .bucket)
|
|
try container.encodeIfPresent(context, forKey: .context)
|
|
try container.encodeIfPresent(dockerTarget, forKey: .dockerTarget)
|
|
try container.encodeIfPresent(dockerfile, forKey: .dockerfile)
|
|
try container.encodeIfPresent(image, forKey: .image)
|
|
try container.encodeIfPresent(os, forKey: .os)
|
|
try container.encodeIfPresent(ref, forKey: .ref)
|
|
try container.encodeIfPresent(repo, forKey: .repo)
|
|
try container.encodeIfPresent(sha, forKey: .sha)
|
|
try container.encodeIfPresent(tag, forKey: .tag)
|
|
}
|
|
}
|
|
|