diff --git a/.gitignore b/.gitignore index 96ef6c0..09b2d47 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target Cargo.lock +protos.fds diff --git a/Cargo.toml b/Cargo.toml index b914b87..82f5529 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,8 @@ edition = "2018" [dependencies] bytes = "1.0.1" prost = "0.8.0" -prost-types = "0.8" [build-dependencies] prost-build = "0.8.0" +prost-types = "0.8.0" +prost = "0.8.0" diff --git a/README.md b/README.md index af704d8..34699a6 100644 --- a/README.md +++ b/README.md @@ -26,34 +26,13 @@ Results of this step is committed already. But to run, invoke `just swagger`. ## Building -To build the [out](./out) directory from [build.rs](./build.rs) using swagger and protobuf results run `just build`. +To build the [out](./out) directory from [build.rs](./build.rs) we will use the outputs from the `swagger`, `protobuf`, and `protobuf-fds` targets. -Results of this step is committed already. +Results of this step is committed already. But to run, invoke `just build` ### Hack -Generate a [`FileDescriptorSet`] containing all of the input files: - -```bash -protoc \ - --include_imports \ - --include_source_info \ - --descriptor_set_out=k8s.pb \ - --proto_path=./protos \ - ./protos/**/*.proto -``` - -Working with `FileDescriptorSet`: -```rust -use prost_types::{FileDescriptorProto, FileDescriptorSet}; -let buf = fs::read(fds_path).unwrap(); -let fds = FileDescriptorSet::decode(&*buf).unwrap(); -let files = fds.files; -``` - -See [`prost_build`](https://github.com/tokio-rs/prost/blob/32bc87cd0b7301f6af1a338e9afd7717d0f42ca9/prost-build/src/lib.rs#L765-L825). - -[`FileDescriptorSet`]: https://github.com/tokio-rs/prost/blob/32bc87cd0b7301f6af1a338e9afd7717d0f42ca9/prost-types/src/protobuf.rs#L1-L7 +Generate a [`FileDescriptorSet`] containing all of the input files wih `just build-fds` ## OpenAPI Strategy diff --git a/build.rs b/build.rs index e9ef03c..412ecbd 100644 --- a/build.rs +++ b/build.rs @@ -1,58 +1,33 @@ -use std::cell::RefCell; -use std::rc::Rc; - -#[derive(Default)] -struct GeneratorState { - service_names: Vec, - finalized: usize, - generated: usize -} - -struct KubeGenerator { - data: String, - state: Rc>, -} -impl KubeGenerator { - fn new(state: Rc>) -> Self { - let data = std::fs::read_to_string("./openapi/api-resources.json").unwrap(); - Self { data, state } - } -} - -impl prost_build::ServiceGenerator for KubeGenerator { - fn generate(&mut self, service: prost_build::Service, buf: &mut String) { - let mut state = self.state.borrow_mut(); - state.service_names.push(service.name); - state.generated += 1; - // TODO: THIS doesn't work? never called by prost_build, bug? - let generics = format!("// TODO: generate\n"); - buf.push_str(&generics); - } - - fn finalize(&mut self, buf: &mut String) { - let mut state = self.state.borrow_mut(); - state.finalized += 1; - // NB: THIS works, but we need a name here before it's useful - //let generics = format!("// TODO: finalize\n"); - //buf.push_str(&generics); - } -} +use prost_types::{FileDescriptorProto, FileDescriptorSet}; +use prost::Message; fn main() -> std::io::Result<()> { - let protos: Vec<&str> = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/protos.list")) + let protos = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/protos.list")) .lines() - .collect(); + .collect::>(); - let state = Rc::new(RefCell::new(GeneratorState::default())); prost_build::Config::new() - .service_generator(Box::new(KubeGenerator::new(Rc::clone(&state)))) + // should probably switch to this + //.btree_map(&["."]) .out_dir("./out") .compile_protos(protos.as_slice(), &["protos/"])?; - // sanity - let state = state.borrow(); - assert_eq!(state.finalized, protos.len()); - assert_eq!(state.generated, protos.len()); // TODO: why does generate not trigger + let apis = std::fs::read_to_string("./openapi/api-resources.json")?; + + let buf = std::fs::read("./protos.fds").unwrap(); + let fds = FileDescriptorSet::decode(&*buf).unwrap(); // pulls in proto::Message + + // NB: FDS fields: https://github.com/tokio-rs/prost/blob/32bc87cd0b7301f6af1a338e9afd7717d0f42ca9/prost-types/src/protobuf.rs#L1-L7 + // FDS usage: https://github.com/tokio-rs/prost/blob/32bc87cd0b7301f6af1a338e9afd7717d0f42ca9/prost-build/src/lib.rs#L765-L825 + for f in fds.file { + use std::io::Write; + if let Some(pkg) = f.package { + let pkgpath = std::path::Path::new("./out").join(format!("{}.rs", pkg)); + let generics = format!("// TODO genericsfor {}\n", pkg); + let mut file = std::fs::OpenOptions::new().write(true).append(true).open(&pkgpath)?; + file.write(generics.as_bytes())?; + } + } // Generate code in `src/` by reading files in `OUT_DIR`? // Need to create `mod.rs` file for each level based on the filename, and write generated code in correct file. diff --git a/justfile b/justfile index 2dd5bba..692b2f9 100644 --- a/justfile +++ b/justfile @@ -61,8 +61,20 @@ swagger-transform: # Download and generate all swagger dependent files swagger: swagger-dl swagger-patch swagger-transform +# Build a FileDescriptorSet for custom code generation +build-fds: + #!/usr/bin/env bash + set -exuo pipefail + shopt -s globstar + protoc \ + --include_imports \ + --include_source_info \ + --descriptor_set_out=protos.fds \ + --proto_path=./protos \ + ./protos/**/*.proto + # Generate the library code from completed swagger and protos -build: +build: build-fds #!/usr/bin/env bash set -exuo pipefail rm -rf out/ && mkdir out diff --git a/out/api.admission.v1.rs b/out/api.admission.v1.rs index 8f85492..c0c727c 100644 --- a/out/api.admission.v1.rs +++ b/out/api.admission.v1.rs @@ -137,3 +137,4 @@ pub struct AdmissionReview { #[prost(message, optional, tag="2")] pub response: ::core::option::Option, } +// TODO genericsfor api.admission.v1 diff --git a/out/api.admission.v1beta1.rs b/out/api.admission.v1beta1.rs index f01a490..c3aecdf 100644 --- a/out/api.admission.v1beta1.rs +++ b/out/api.admission.v1beta1.rs @@ -137,3 +137,4 @@ pub struct AdmissionReview { #[prost(message, optional, tag="2")] pub response: ::core::option::Option, } +// TODO genericsfor api.admission.v1beta1 diff --git a/out/api.admissionregistration.v1.rs b/out/api.admissionregistration.v1.rs index dc3c146..78b5473 100644 --- a/out/api.admissionregistration.v1.rs +++ b/out/api.admissionregistration.v1.rs @@ -457,3 +457,4 @@ pub struct WebhookClientConfig { #[prost(bytes="vec", optional, tag="2")] pub ca_bundle: ::core::option::Option<::prost::alloc::vec::Vec>, } +// TODO genericsfor api.admissionregistration.v1 diff --git a/out/api.admissionregistration.v1beta1.rs b/out/api.admissionregistration.v1beta1.rs index 8ca0b5d..7261bc7 100644 --- a/out/api.admissionregistration.v1beta1.rs +++ b/out/api.admissionregistration.v1beta1.rs @@ -465,3 +465,4 @@ pub struct WebhookClientConfig { #[prost(bytes="vec", optional, tag="2")] pub ca_bundle: ::core::option::Option<::prost::alloc::vec::Vec>, } +// TODO genericsfor api.admissionregistration.v1beta1 diff --git a/out/api.apiserverinternal.v1alpha1.rs b/out/api.apiserverinternal.v1alpha1.rs index 6617ffc..ce33feb 100644 --- a/out/api.apiserverinternal.v1alpha1.rs +++ b/out/api.apiserverinternal.v1alpha1.rs @@ -97,3 +97,4 @@ pub struct StorageVersionStatus { #[prost(message, repeated, tag="3")] pub conditions: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.apiserverinternal.v1alpha1 diff --git a/out/api.apps.v1.rs b/out/api.apps.v1.rs index 0859778..f6028ff 100644 --- a/out/api.apps.v1.rs +++ b/out/api.apps.v1.rs @@ -737,3 +737,4 @@ pub struct StatefulSetUpdateStrategy { #[prost(message, optional, tag="2")] pub rolling_update: ::core::option::Option, } +// TODO genericsfor api.apps.v1 diff --git a/out/api.apps.v1beta1.rs b/out/api.apps.v1beta1.rs index 696e470..8e61a36 100644 --- a/out/api.apps.v1beta1.rs +++ b/out/api.apps.v1beta1.rs @@ -484,3 +484,4 @@ pub struct StatefulSetUpdateStrategy { #[prost(message, optional, tag="2")] pub rolling_update: ::core::option::Option, } +// TODO genericsfor api.apps.v1beta1 diff --git a/out/api.apps.v1beta2.rs b/out/api.apps.v1beta2.rs index e0c0ae0..5d9f05a 100644 --- a/out/api.apps.v1beta2.rs +++ b/out/api.apps.v1beta2.rs @@ -785,3 +785,4 @@ pub struct StatefulSetUpdateStrategy { #[prost(message, optional, tag="2")] pub rolling_update: ::core::option::Option, } +// TODO genericsfor api.apps.v1beta2 diff --git a/out/api.authentication.v1.rs b/out/api.authentication.v1.rs index 954c17f..2026bb1 100644 --- a/out/api.authentication.v1.rs +++ b/out/api.authentication.v1.rs @@ -165,3 +165,4 @@ pub struct UserInfo { #[prost(map="string, message", tag="4")] pub extra: ::std::collections::HashMap<::prost::alloc::string::String, ExtraValue>, } +// TODO genericsfor api.authentication.v1 diff --git a/out/api.authentication.v1beta1.rs b/out/api.authentication.v1beta1.rs index 570b970..f981262 100644 --- a/out/api.authentication.v1beta1.rs +++ b/out/api.authentication.v1beta1.rs @@ -93,3 +93,4 @@ pub struct UserInfo { #[prost(map="string, message", tag="4")] pub extra: ::std::collections::HashMap<::prost::alloc::string::String, ExtraValue>, } +// TODO genericsfor api.authentication.v1beta1 diff --git a/out/api.authorization.v1.rs b/out/api.authorization.v1.rs index e349d9a..631ba1a 100644 --- a/out/api.authorization.v1.rs +++ b/out/api.authorization.v1.rs @@ -263,3 +263,4 @@ pub struct SubjectRulesReviewStatus { #[prost(string, optional, tag="4")] pub evaluation_error: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.authorization.v1 diff --git a/out/api.authorization.v1beta1.rs b/out/api.authorization.v1beta1.rs index e86ebf7..fdace60 100644 --- a/out/api.authorization.v1beta1.rs +++ b/out/api.authorization.v1beta1.rs @@ -263,3 +263,4 @@ pub struct SubjectRulesReviewStatus { #[prost(string, optional, tag="4")] pub evaluation_error: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.authorization.v1beta1 diff --git a/out/api.autoscaling.v1.rs b/out/api.autoscaling.v1.rs index f6d3832..bddf130 100644 --- a/out/api.autoscaling.v1.rs +++ b/out/api.autoscaling.v1.rs @@ -482,3 +482,4 @@ pub struct ScaleStatus { #[prost(string, optional, tag="2")] pub selector: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.autoscaling.v1 diff --git a/out/api.autoscaling.v2beta1.rs b/out/api.autoscaling.v2beta1.rs index c0381c0..6f3ed28 100644 --- a/out/api.autoscaling.v2beta1.rs +++ b/out/api.autoscaling.v2beta1.rs @@ -459,3 +459,4 @@ pub struct ResourceMetricStatus { #[prost(message, optional, tag="3")] pub current_average_value: ::core::option::Option, } +// TODO genericsfor api.autoscaling.v2beta1 diff --git a/out/api.autoscaling.v2beta2.rs b/out/api.autoscaling.v2beta2.rs index 73fa247..12d47b1 100644 --- a/out/api.autoscaling.v2beta2.rs +++ b/out/api.autoscaling.v2beta2.rs @@ -483,3 +483,4 @@ pub struct ResourceMetricStatus { #[prost(message, optional, tag="2")] pub current: ::core::option::Option, } +// TODO genericsfor api.autoscaling.v2beta2 diff --git a/out/api.batch.v1.rs b/out/api.batch.v1.rs index 63bdf03..ec3141c 100644 --- a/out/api.batch.v1.rs +++ b/out/api.batch.v1.rs @@ -348,3 +348,4 @@ pub struct UncountedTerminatedPods { #[prost(string, repeated, tag="2")] pub failed: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +// TODO genericsfor api.batch.v1 diff --git a/out/api.batch.v1beta1.rs b/out/api.batch.v1beta1.rs index 4bfa095..79347c3 100644 --- a/out/api.batch.v1beta1.rs +++ b/out/api.batch.v1beta1.rs @@ -114,3 +114,4 @@ pub struct JobTemplateSpec { #[prost(message, optional, tag="2")] pub spec: ::core::option::Option, } +// TODO genericsfor api.batch.v1beta1 diff --git a/out/api.certificates.v1.rs b/out/api.certificates.v1.rs index f80f2f2..3f36afe 100644 --- a/out/api.certificates.v1.rs +++ b/out/api.certificates.v1.rs @@ -223,3 +223,4 @@ pub struct ExtraValue { #[prost(string, repeated, tag="1")] pub items: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +// TODO genericsfor api.certificates.v1 diff --git a/out/api.certificates.v1beta1.rs b/out/api.certificates.v1beta1.rs index d93150f..1bac015 100644 --- a/out/api.certificates.v1beta1.rs +++ b/out/api.certificates.v1beta1.rs @@ -174,3 +174,4 @@ pub struct ExtraValue { #[prost(string, repeated, tag="1")] pub items: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +// TODO genericsfor api.certificates.v1beta1 diff --git a/out/api.coordination.v1.rs b/out/api.coordination.v1.rs index 6ace99f..e010dfe 100644 --- a/out/api.coordination.v1.rs +++ b/out/api.coordination.v1.rs @@ -51,3 +51,4 @@ pub struct LeaseSpec { #[prost(int32, optional, tag="5")] pub lease_transitions: ::core::option::Option, } +// TODO genericsfor api.coordination.v1 diff --git a/out/api.coordination.v1beta1.rs b/out/api.coordination.v1beta1.rs index 6ace99f..17b8802 100644 --- a/out/api.coordination.v1beta1.rs +++ b/out/api.coordination.v1beta1.rs @@ -51,3 +51,4 @@ pub struct LeaseSpec { #[prost(int32, optional, tag="5")] pub lease_transitions: ::core::option::Option, } +// TODO genericsfor api.coordination.v1beta1 diff --git a/out/api.core.v1.rs b/out/api.core.v1.rs index 8a6f463..726e6e9 100644 --- a/out/api.core.v1.rs +++ b/out/api.core.v1.rs @@ -5824,3 +5824,4 @@ pub struct WindowsSecurityContextOptions { #[prost(bool, optional, tag="4")] pub host_process: ::core::option::Option, } +// TODO genericsfor api.core.v1 diff --git a/out/api.discovery.v1.rs b/out/api.discovery.v1.rs index e38db1f..c924f96 100644 --- a/out/api.discovery.v1.rs +++ b/out/api.discovery.v1.rs @@ -171,3 +171,4 @@ pub struct ForZone { #[prost(string, optional, tag="1")] pub name: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.discovery.v1 diff --git a/out/api.discovery.v1beta1.rs b/out/api.discovery.v1beta1.rs index 359d20c..54b66cf 100644 --- a/out/api.discovery.v1beta1.rs +++ b/out/api.discovery.v1beta1.rs @@ -174,3 +174,4 @@ pub struct ForZone { #[prost(string, optional, tag="1")] pub name: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.discovery.v1beta1 diff --git a/out/api.events.v1.rs b/out/api.events.v1.rs index ccfd902..90a4d0c 100644 --- a/out/api.events.v1.rs +++ b/out/api.events.v1.rs @@ -98,3 +98,4 @@ pub struct EventSeries { #[prost(message, optional, tag="2")] pub last_observed_time: ::core::option::Option, } +// TODO genericsfor api.events.v1 diff --git a/out/api.events.v1beta1.rs b/out/api.events.v1beta1.rs index 93862d4..1ac4c84 100644 --- a/out/api.events.v1beta1.rs +++ b/out/api.events.v1beta1.rs @@ -100,3 +100,4 @@ pub struct EventSeries { #[prost(message, optional, tag="2")] pub last_observed_time: ::core::option::Option, } +// TODO genericsfor api.events.v1beta1 diff --git a/out/api.extensions.v1beta1.rs b/out/api.extensions.v1beta1.rs index c861ba2..be677dd 100644 --- a/out/api.extensions.v1beta1.rs +++ b/out/api.extensions.v1beta1.rs @@ -1295,3 +1295,4 @@ pub struct SupplementalGroupsStrategyOptions { #[prost(message, repeated, tag="2")] pub ranges: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.extensions.v1beta1 diff --git a/out/api.flowcontrol.v1alpha1.rs b/out/api.flowcontrol.v1alpha1.rs index 004c295..b9e0c02 100644 --- a/out/api.flowcontrol.v1alpha1.rs +++ b/out/api.flowcontrol.v1alpha1.rs @@ -428,3 +428,4 @@ pub struct UserSubject { #[prost(string, optional, tag="1")] pub name: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.flowcontrol.v1alpha1 diff --git a/out/api.flowcontrol.v1beta1.rs b/out/api.flowcontrol.v1beta1.rs index 004c295..bef2f9d 100644 --- a/out/api.flowcontrol.v1beta1.rs +++ b/out/api.flowcontrol.v1beta1.rs @@ -428,3 +428,4 @@ pub struct UserSubject { #[prost(string, optional, tag="1")] pub name: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.flowcontrol.v1beta1 diff --git a/out/api.imagepolicy.v1alpha1.rs b/out/api.imagepolicy.v1alpha1.rs index 96425b6..4d64919 100644 --- a/out/api.imagepolicy.v1alpha1.rs +++ b/out/api.imagepolicy.v1alpha1.rs @@ -60,3 +60,4 @@ pub struct ImageReviewStatus { #[prost(map="string, string", tag="3")] pub audit_annotations: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, } +// TODO genericsfor api.imagepolicy.v1alpha1 diff --git a/out/api.networking.v1.rs b/out/api.networking.v1.rs index a221ef8..e6995b7 100644 --- a/out/api.networking.v1.rs +++ b/out/api.networking.v1.rs @@ -494,3 +494,4 @@ pub struct ServiceBackendPort { #[prost(int32, optional, tag="2")] pub number: ::core::option::Option, } +// TODO genericsfor api.networking.v1 diff --git a/out/api.networking.v1beta1.rs b/out/api.networking.v1beta1.rs index 57cde53..27fb552 100644 --- a/out/api.networking.v1beta1.rs +++ b/out/api.networking.v1beta1.rs @@ -285,3 +285,4 @@ pub struct IngressTls { #[prost(string, optional, tag="2")] pub secret_name: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.networking.v1beta1 diff --git a/out/api.node.v1.rs b/out/api.node.v1.rs index 88cb437..65e5d46 100644 --- a/out/api.node.v1.rs +++ b/out/api.node.v1.rs @@ -80,3 +80,4 @@ pub struct Scheduling { #[prost(message, repeated, tag="2")] pub tolerations: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.node.v1 diff --git a/out/api.node.v1alpha1.rs b/out/api.node.v1alpha1.rs index 870c96c..fa6b26a 100644 --- a/out/api.node.v1alpha1.rs +++ b/out/api.node.v1alpha1.rs @@ -90,3 +90,4 @@ pub struct Scheduling { #[prost(message, repeated, tag="2")] pub tolerations: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.node.v1alpha1 diff --git a/out/api.node.v1beta1.rs b/out/api.node.v1beta1.rs index d90936b..80e0c72 100644 --- a/out/api.node.v1beta1.rs +++ b/out/api.node.v1beta1.rs @@ -79,3 +79,4 @@ pub struct Scheduling { #[prost(message, repeated, tag="2")] pub tolerations: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.node.v1beta1 diff --git a/out/api.policy.v1.rs b/out/api.policy.v1.rs index e091228..0c1ae4d 100644 --- a/out/api.policy.v1.rs +++ b/out/api.policy.v1.rs @@ -123,3 +123,4 @@ pub struct PodDisruptionBudgetStatus { #[prost(message, repeated, tag="7")] pub conditions: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.policy.v1 diff --git a/out/api.policy.v1beta1.rs b/out/api.policy.v1beta1.rs index 3e5927f..498cbfd 100644 --- a/out/api.policy.v1beta1.rs +++ b/out/api.policy.v1beta1.rs @@ -415,3 +415,4 @@ pub struct SupplementalGroupsStrategyOptions { #[prost(message, repeated, tag="2")] pub ranges: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.policy.v1beta1 diff --git a/out/api.rbac.v1.rs b/out/api.rbac.v1.rs index cc0b323..209ee1c 100644 --- a/out/api.rbac.v1.rs +++ b/out/api.rbac.v1.rs @@ -181,3 +181,4 @@ pub struct Subject { #[prost(string, optional, tag="4")] pub namespace: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.rbac.v1 diff --git a/out/api.rbac.v1alpha1.rs b/out/api.rbac.v1alpha1.rs index c186796..623c0cc 100644 --- a/out/api.rbac.v1alpha1.rs +++ b/out/api.rbac.v1alpha1.rs @@ -188,3 +188,4 @@ pub struct Subject { #[prost(string, optional, tag="4")] pub namespace: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.rbac.v1alpha1 diff --git a/out/api.rbac.v1beta1.rs b/out/api.rbac.v1beta1.rs index 6014d60..f6be633 100644 --- a/out/api.rbac.v1beta1.rs +++ b/out/api.rbac.v1beta1.rs @@ -188,3 +188,4 @@ pub struct Subject { #[prost(string, optional, tag="4")] pub namespace: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.rbac.v1beta1 diff --git a/out/api.scheduling.v1.rs b/out/api.scheduling.v1.rs index 31913ca..ff60b7a 100644 --- a/out/api.scheduling.v1.rs +++ b/out/api.scheduling.v1.rs @@ -44,3 +44,4 @@ pub struct PriorityClassList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.scheduling.v1 diff --git a/out/api.scheduling.v1alpha1.rs b/out/api.scheduling.v1alpha1.rs index 6001386..a23239d 100644 --- a/out/api.scheduling.v1alpha1.rs +++ b/out/api.scheduling.v1alpha1.rs @@ -45,3 +45,4 @@ pub struct PriorityClassList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.scheduling.v1alpha1 diff --git a/out/api.scheduling.v1beta1.rs b/out/api.scheduling.v1beta1.rs index 6001386..f60c9d6 100644 --- a/out/api.scheduling.v1beta1.rs +++ b/out/api.scheduling.v1beta1.rs @@ -45,3 +45,4 @@ pub struct PriorityClassList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor api.scheduling.v1beta1 diff --git a/out/api.storage.v1.rs b/out/api.storage.v1.rs index 6defaef..858c430 100644 --- a/out/api.storage.v1.rs +++ b/out/api.storage.v1.rs @@ -446,3 +446,4 @@ pub struct VolumeNodeResources { #[prost(int32, optional, tag="1")] pub count: ::core::option::Option, } +// TODO genericsfor api.storage.v1 diff --git a/out/api.storage.v1alpha1.rs b/out/api.storage.v1alpha1.rs index 93de6a0..ecdf4a1 100644 --- a/out/api.storage.v1alpha1.rs +++ b/out/api.storage.v1alpha1.rs @@ -201,3 +201,4 @@ pub struct VolumeError { #[prost(string, optional, tag="2")] pub message: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor api.storage.v1alpha1 diff --git a/out/api.storage.v1beta1.rs b/out/api.storage.v1beta1.rs index 54a447e..c746510 100644 --- a/out/api.storage.v1beta1.rs +++ b/out/api.storage.v1beta1.rs @@ -540,3 +540,4 @@ pub struct VolumeNodeResources { #[prost(int32, optional, tag="1")] pub count: ::core::option::Option, } +// TODO genericsfor api.storage.v1beta1 diff --git a/out/apiextensions_apiserver.pkg.apis.apiextensions.v1.rs b/out/apiextensions_apiserver.pkg.apis.apiextensions.v1.rs index a225912..3a4bb92 100644 --- a/out/apiextensions_apiserver.pkg.apis.apiextensions.v1.rs +++ b/out/apiextensions_apiserver.pkg.apis.apiextensions.v1.rs @@ -649,3 +649,4 @@ pub struct WebhookConversion { #[prost(string, repeated, tag="3")] pub conversion_review_versions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +// TODO genericsfor apiextensions_apiserver.pkg.apis.apiextensions.v1 diff --git a/out/apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.rs b/out/apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.rs index 3896478..52dcb6a 100644 --- a/out/apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.rs +++ b/out/apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.rs @@ -685,3 +685,4 @@ pub struct WebhookClientConfig { #[prost(bytes="vec", optional, tag="2")] pub ca_bundle: ::core::option::Option<::prost::alloc::vec::Vec>, } +// TODO genericsfor apiextensions_apiserver.pkg.apis.apiextensions.v1beta1 diff --git a/out/apimachinery.pkg.api.resource.rs b/out/apimachinery.pkg.api.resource.rs index f0d8dfa..0ef59eb 100644 --- a/out/apimachinery.pkg.api.resource.rs +++ b/out/apimachinery.pkg.api.resource.rs @@ -61,3 +61,4 @@ pub struct Quantity { #[prost(string, optional, tag="1")] pub string: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor apimachinery.pkg.api.resource diff --git a/out/apimachinery.pkg.apis.meta.v1.rs b/out/apimachinery.pkg.apis.meta.v1.rs index 5424afe..c474e5b 100644 --- a/out/apimachinery.pkg.apis.meta.v1.rs +++ b/out/apimachinery.pkg.apis.meta.v1.rs @@ -1137,3 +1137,4 @@ pub struct WatchEvent { #[prost(message, optional, tag="2")] pub object: ::core::option::Option, } +// TODO genericsfor apimachinery.pkg.apis.meta.v1 diff --git a/out/apimachinery.pkg.apis.meta.v1beta1.rs b/out/apimachinery.pkg.apis.meta.v1beta1.rs index 42ecbe1..605e899 100644 --- a/out/apimachinery.pkg.apis.meta.v1beta1.rs +++ b/out/apimachinery.pkg.apis.meta.v1beta1.rs @@ -11,3 +11,4 @@ pub struct PartialObjectMetadataList { #[prost(message, repeated, tag="1")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor apimachinery.pkg.apis.meta.v1beta1 diff --git a/out/apimachinery.pkg.apis.testapigroup.v1.rs b/out/apimachinery.pkg.apis.testapigroup.v1.rs index ac3bdf1..12ed2e4 100644 --- a/out/apimachinery.pkg.apis.testapigroup.v1.rs +++ b/out/apimachinery.pkg.apis.testapigroup.v1.rs @@ -184,3 +184,4 @@ pub struct CarpStatus { #[prost(message, optional, tag="7")] pub start_time: ::core::option::Option, } +// TODO genericsfor apimachinery.pkg.apis.testapigroup.v1 diff --git a/out/apimachinery.pkg.runtime.rs b/out/apimachinery.pkg.runtime.rs index cb14af2..45182bf 100644 --- a/out/apimachinery.pkg.runtime.rs +++ b/out/apimachinery.pkg.runtime.rs @@ -102,3 +102,4 @@ pub struct Unknown { #[prost(string, optional, tag="4")] pub content_type: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor apimachinery.pkg.runtime diff --git a/out/apimachinery.pkg.runtime.schema.rs b/out/apimachinery.pkg.runtime.schema.rs index e69de29..ef6bec2 100644 --- a/out/apimachinery.pkg.runtime.schema.rs +++ b/out/apimachinery.pkg.runtime.schema.rs @@ -0,0 +1 @@ +// TODO genericsfor apimachinery.pkg.runtime.schema diff --git a/out/apimachinery.pkg.util.intstr.rs b/out/apimachinery.pkg.util.intstr.rs index 2cc8441..7362608 100644 --- a/out/apimachinery.pkg.util.intstr.rs +++ b/out/apimachinery.pkg.util.intstr.rs @@ -16,3 +16,4 @@ pub struct IntOrString { #[prost(string, optional, tag="3")] pub str_val: ::core::option::Option<::prost::alloc::string::String>, } +// TODO genericsfor apimachinery.pkg.util.intstr diff --git a/out/kube_aggregator.pkg.apis.apiregistration.v1.rs b/out/kube_aggregator.pkg.apis.apiregistration.v1.rs index 19901a0..c8f209a 100644 --- a/out/kube_aggregator.pkg.apis.apiregistration.v1.rs +++ b/out/kube_aggregator.pkg.apis.apiregistration.v1.rs @@ -125,3 +125,4 @@ pub struct ServiceReference { #[prost(int32, optional, tag="3")] pub port: ::core::option::Option, } +// TODO genericsfor kube_aggregator.pkg.apis.apiregistration.v1 diff --git a/out/kube_aggregator.pkg.apis.apiregistration.v1beta1.rs b/out/kube_aggregator.pkg.apis.apiregistration.v1beta1.rs index 19901a0..23434a5 100644 --- a/out/kube_aggregator.pkg.apis.apiregistration.v1beta1.rs +++ b/out/kube_aggregator.pkg.apis.apiregistration.v1beta1.rs @@ -125,3 +125,4 @@ pub struct ServiceReference { #[prost(int32, optional, tag="3")] pub port: ::core::option::Option, } +// TODO genericsfor kube_aggregator.pkg.apis.apiregistration.v1beta1 diff --git a/out/metrics.pkg.apis.custom_metrics.v1beta1.rs b/out/metrics.pkg.apis.custom_metrics.v1beta1.rs index b18cfc0..986cb64 100644 --- a/out/metrics.pkg.apis.custom_metrics.v1beta1.rs +++ b/out/metrics.pkg.apis.custom_metrics.v1beta1.rs @@ -49,3 +49,4 @@ pub struct MetricValueList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor metrics.pkg.apis.custom_metrics.v1beta1 diff --git a/out/metrics.pkg.apis.custom_metrics.v1beta2.rs b/out/metrics.pkg.apis.custom_metrics.v1beta2.rs index 3f5ef86..e8231ae 100644 --- a/out/metrics.pkg.apis.custom_metrics.v1beta2.rs +++ b/out/metrics.pkg.apis.custom_metrics.v1beta2.rs @@ -55,3 +55,4 @@ pub struct MetricValueList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor metrics.pkg.apis.custom_metrics.v1beta2 diff --git a/out/metrics.pkg.apis.external_metrics.v1beta1.rs b/out/metrics.pkg.apis.external_metrics.v1beta1.rs index af50f86..7958817 100644 --- a/out/metrics.pkg.apis.external_metrics.v1beta1.rs +++ b/out/metrics.pkg.apis.external_metrics.v1beta1.rs @@ -31,3 +31,4 @@ pub struct ExternalMetricValueList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor metrics.pkg.apis.external_metrics.v1beta1 diff --git a/out/metrics.pkg.apis.metrics.v1alpha1.rs b/out/metrics.pkg.apis.metrics.v1alpha1.rs index eb026fc..5a158d9 100644 --- a/out/metrics.pkg.apis.metrics.v1alpha1.rs +++ b/out/metrics.pkg.apis.metrics.v1alpha1.rs @@ -60,3 +60,4 @@ pub struct PodMetricsList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor metrics.pkg.apis.metrics.v1alpha1 diff --git a/out/metrics.pkg.apis.metrics.v1beta1.rs b/out/metrics.pkg.apis.metrics.v1beta1.rs index eb026fc..98422aa 100644 --- a/out/metrics.pkg.apis.metrics.v1beta1.rs +++ b/out/metrics.pkg.apis.metrics.v1beta1.rs @@ -60,3 +60,4 @@ pub struct PodMetricsList { #[prost(message, repeated, tag="2")] pub items: ::prost::alloc::vec::Vec, } +// TODO genericsfor metrics.pkg.apis.metrics.v1beta1