/// <summary>
 /// Initializes a new instance of the V1CustomResourceDefinitionStatus
 /// class.
 /// </summary>
 /// <param name="acceptedNames">acceptedNames are the names that are
 /// actually being used to serve discovery. They may be different than
 /// the names in spec.</param>
 /// <param name="storedVersions">storedVersions lists all versions of
 /// CustomResources that were ever persisted. Tracking these versions
 /// allows a migration path for stored versions in etcd. The field is
 /// mutable so a migration controller can finish a migration to another
 /// version (ensuring no old objects are left in storage), and then
 /// remove the rest of the versions from this list. Versions may not be
 /// removed from `spec.versions` while they exist in this list.</param>
 /// <param name="conditions">conditions indicate state for particular
 /// aspects of a CustomResourceDefinition</param>
 public V1CustomResourceDefinitionStatus(V1CustomResourceDefinitionNames acceptedNames, IList <string> storedVersions, IList <V1CustomResourceDefinitionCondition> conditions = default(IList <V1CustomResourceDefinitionCondition>))
 {
     AcceptedNames  = acceptedNames;
     Conditions     = conditions;
     StoredVersions = storedVersions;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the V1CustomResourceDefinitionSpec
 /// class.
 /// </summary>
 /// <param name="group">group is the API group of the defined custom
 /// resource. The custom resources are served under
 /// `/apis/&lt;group&gt;/...`. Must match the name of the
 /// CustomResourceDefinition (in the form
 /// `&lt;names.plural&gt;.&lt;group&gt;`).</param>
 /// <param name="names">names specify the resource and kind names for
 /// the custom resource.</param>
 /// <param name="scope">scope indicates whether the defined custom
 /// resource is cluster- or namespace-scoped. Allowed values are
 /// `Cluster` and `Namespaced`.</param>
 /// <param name="versions">versions is the list of all API versions of
 /// the defined custom resource. Version names are used to compute the
 /// order in which served versions are listed in API discovery. If the
 /// version string is "kube-like", it will sort above non "kube-like"
 /// version strings, which are ordered lexicographically. "Kube-like"
 /// versions start with a "v", then are followed by a number (the major
 /// version), then optionally the string "alpha" or "beta" and another
 /// number (the minor version). These are sorted first by GA &gt; beta
 /// &gt; alpha (where GA is a version with no suffix such as beta or
 /// alpha), and then by comparing major version, then minor version. An
 /// example sorted list of versions: v10, v2, v1, v11beta2, v10beta3,
 /// v3beta1, v12alpha1, v11alpha2, foo1, foo10.</param>
 /// <param name="conversion">conversion defines conversion settings for
 /// the CRD.</param>
 /// <param name="preserveUnknownFields">preserveUnknownFields indicates
 /// that object fields which are not specified in the OpenAPI schema
 /// should be preserved when persisting to storage. apiVersion, kind,
 /// metadata and known fields inside metadata are always preserved.
 /// This field is deprecated in favor of setting
 /// `x-preserve-unknown-fields` to true in
 /// `spec.versions[*].schema.openAPIV3Schema`. See
 /// https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields
 /// for details.</param>
 public V1CustomResourceDefinitionSpec(string group, V1CustomResourceDefinitionNames names, string scope, IList <V1CustomResourceDefinitionVersion> versions, V1CustomResourceConversion conversion = default(V1CustomResourceConversion), bool?preserveUnknownFields = default(bool?))
 {
     Conversion            = conversion;
     Group                 = group;
     Names                 = names;
     PreserveUnknownFields = preserveUnknownFields;
     Scope                 = scope;
     Versions              = versions;
     CustomInit();
 }