diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index bf54f7b731e..a16b456eb55 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -170,8 +170,8 @@ }, { "ImportPath": "github.com/emicklei/go-restful", - "Comment": "v1.1.3-10-g62dc65d", - "Rev": "62dc65d6e51525418cad2bb6f292d3cf7c5e9d0a" + "Comment": "v1.1.3-26-g977ac8f", + "Rev": "977ac8fcbcd2ee33319246f7c91d4b426402dc70" }, { "ImportPath": "github.com/evanphx/json-patch", diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/CHANGES.md b/Godeps/_workspace/src/github.com/emicklei/go-restful/CHANGES.md index 9c6de61a0fc..b34d43b1ca6 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/CHANGES.md +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/CHANGES.md @@ -1,5 +1,19 @@ Change history of go-restful = +2015-03-20 +- add configurable logging + +2015-03-18 +- if not specified, the Operation is derived from the Route function + +2015-03-17 +- expose Parameter creation functions +- make trace logger an interface +- fix OPTIONSFilter +- customize rendering of ServiceError +- JSR311 router now handles wildcards +- add Notes to Route + 2014-11-27 - (api add) PrettyPrint per response. (as proposed in #167) diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/README.md b/Godeps/_workspace/src/github.com/emicklei/go-restful/README.md index 9b4be5f62ac..6e4dedf512b 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/README.md +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/README.md @@ -53,6 +53,7 @@ func (u UserResource) findUser(request *restful.Request, response *restful.Respo - API declaration for Swagger UI (see swagger package) - Panic recovery to produce HTTP 500, customizable using RecoverHandler(...) - Route errors produce HTTP 404/405/406/415 errors, customizable using ServiceErrorHandler(...) +- Configurable (trace) logging ### Resources @@ -64,8 +65,8 @@ func (u UserResource) findUser(request *restful.Request, response *restful.Respo - [gopkg.in](https://gopkg.in/emicklei/go-restful.v1) - [showcase: Mora - MongoDB REST Api server](https://github.com/emicklei/mora) -[![Build Status](https://drone.io/github.com/emicklei/go-restful/status.png)](https://drone.io/github.com/emicklei/go-restful/latest)[![library users](https://sourcegraph.com/api/repos/github.com/emicklei/go-restful/badges/library-users.png)](https://sourcegraph.com/github.com/emicklei/go-restful) [![authors](https://sourcegraph.com/api/repos/github.com/emicklei/go-restful/badges/authors.png)](https://sourcegraph.com/github.com/emicklei/go-restful) [![xrefs](https://sourcegraph.com/api/repos/github.com/emicklei/go-restful/badges/xrefs.png)](https://sourcegraph.com/github.com/emicklei/go-restful) +[![Build Status](https://drone.io/github.com/emicklei/go-restful/status.png)](https://drone.io/github.com/emicklei/go-restful/latest) -(c) 2012 - 2014, http://ernestmicklei.com. MIT License +(c) 2012 - 2015, http://ernestmicklei.com. MIT License Type ```git shortlog -s``` for a full list of contributors. \ No newline at end of file diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/constants.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/constants.go index 5e564d021ca..203439c5e5f 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/constants.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/constants.go @@ -5,8 +5,9 @@ package restful // that can be found in the LICENSE file. const ( - MIME_XML = "application/xml" // Accept or Content-Type used in Consumes() and/or Produces() - MIME_JSON = "application/json" // Accept or Content-Type used in Consumes() and/or Produces() + MIME_XML = "application/xml" // Accept or Content-Type used in Consumes() and/or Produces() + MIME_JSON = "application/json" // Accept or Content-Type used in Consumes() and/or Produces() + MIME_OCTET = "application/octet-stream" // If Content-Type is not present in request, use the default HEADER_Allow = "Allow" HEADER_Accept = "Accept" diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/container.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/container.go index e16743202cc..7867957f0d7 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/container.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/container.go @@ -7,10 +7,12 @@ package restful import ( "bytes" "fmt" - "log" "net/http" + "os" "runtime" "strings" + + "github.com/emicklei/go-restful/log" ) // Container holds a collection of WebServices and a http.ServeMux to dispatch http requests. @@ -107,7 +109,8 @@ func (c *Container) Add(service *WebService) *Container { // cannot have duplicate root paths for _, each := range c.webServices { if each.RootPath() == service.RootPath() { - log.Fatalf("[restful] WebService with duplicate root path detected:['%v']", each) + log.Printf("[restful] WebService with duplicate root path detected:['%v']", each) + os.Exit(1) } } // if rootPath was not set then lazy initialize it @@ -132,7 +135,7 @@ func logStackOnRecover(panicReason interface{}, httpWriter http.ResponseWriter) } buffer.WriteString(fmt.Sprintf(" %s:%d\r\n", file, line)) } - log.Println(buffer.String()) + log.Print(buffer.String()) httpWriter.WriteHeader(http.StatusInternalServerError) httpWriter.Write(buffer.Bytes()) } @@ -171,7 +174,7 @@ func (c *Container) dispatch(httpWriter http.ResponseWriter, httpRequest *http.R var err error writer, err = NewCompressingResponseWriter(httpWriter, encoding) if err != nil { - log.Println("[restful] unable to install compressor:", err) + log.Print("[restful] unable to install compressor: ", err) httpWriter.WriteHeader(http.StatusInternalServerError) return } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/cors_filter.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/cors_filter.go index 4769063287b..cd9e7fd291f 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/cors_filter.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/cors_filter.go @@ -32,7 +32,7 @@ func (c CrossOriginResourceSharing) Filter(req *Request, resp *Response, chain * origin := req.Request.Header.Get(HEADER_Origin) if len(origin) == 0 { if trace { - traceLogger.Println("no Http header Origin set") + traceLogger.Print("no Http header Origin set") } chain.ProcessFilter(req, resp) return diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/doc.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/doc.go index c0955664a15..aff2f508a3d 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/doc.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/doc.go @@ -165,10 +165,17 @@ If you expect to read large amounts of payload data, and you do not use this fea Trouble shooting This package has the means to produce detail logging of the complete Http request matching process and filter invocation. -Enabling this feature requires you to set a log.Logger instance such as: +Enabling this feature requires you to set an implementation of restful.StdLogger (e.g. log.Logger) instance such as: restful.TraceLogger(log.New(os.Stdout, "[restful] ", log.LstdFlags|log.Lshortfile)) +Logging + +The restful.SetLogger() method allows you to override the logger used by the package. By default restful +uses the standard library `log` package and logs to stdout. Different logging packages are supported as +long as they conform to `StdLogger` interface defined in the `log` sub-package, writing an adapter for your +preferred package is simple. + Resources [project]: https://github.com/emicklei/go-restful @@ -179,6 +186,6 @@ Resources [showcases]: https://github.com/emicklei/mora, https://github.com/emicklei/landskape -(c) 2012-2014, http://ernestmicklei.com. MIT License +(c) 2012-2015, http://ernestmicklei.com. MIT License */ package restful diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/jsr311.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/jsr311.go index 3d9d7d8aa04..b4fa9bbae69 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/jsr311.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/jsr311.go @@ -55,22 +55,22 @@ func (r RouterJSR311) detectRoute(routes []Route, httpRequest *http.Request) (*R return nil, NewError(http.StatusMethodNotAllowed, "405: Method Not Allowed") } inputMediaOk := methodOk + // content-type contentType := httpRequest.Header.Get(HEADER_ContentType) - if httpRequest.ContentLength > 0 { - inputMediaOk = []Route{} - for _, each := range methodOk { - if each.matchesContentType(contentType) { - inputMediaOk = append(inputMediaOk, each) - } - } - if len(inputMediaOk) == 0 { - if trace { - traceLogger.Printf("no Route found (from %d) that matches HTTP Content-Type: %s\n", len(methodOk), contentType) - } - return nil, NewError(http.StatusUnsupportedMediaType, "415: Unsupported Media Type") + inputMediaOk = []Route{} + for _, each := range methodOk { + if each.matchesContentType(contentType) { + inputMediaOk = append(inputMediaOk, each) } } + if len(inputMediaOk) == 0 { + if trace { + traceLogger.Printf("no Route found (from %d) that matches HTTP Content-Type: %s\n", len(methodOk), contentType) + } + return nil, NewError(http.StatusUnsupportedMediaType, "415: Unsupported Media Type") + } + // accept outputMediaOk := []Route{} accept := httpRequest.Header.Get(HEADER_Accept) diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/log/log.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/log/log.go new file mode 100644 index 00000000000..7fd7ac184ef --- /dev/null +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/log/log.go @@ -0,0 +1,31 @@ +package log + +import ( + stdlog "log" + "os" +) + +// Logger corresponds to a minimal subset of the interface satisfied by stdlib log.Logger +type StdLogger interface { + Print(v ...interface{}) + Printf(format string, v ...interface{}) +} + +var Logger StdLogger + +func init() { + // default Logger + SetLogger(stdlog.New(os.Stdout, "[restful] ", stdlog.LstdFlags|stdlog.Lshortfile)) +} + +func SetLogger(customLogger StdLogger) { + Logger = customLogger +} + +func Print(v ...interface{}) { + Logger.Print(v...) +} + +func Printf(format string, v ...interface{}) { + Logger.Printf(format, v...) +} diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/logger.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/logger.go index 25d6a8e0a5a..3f1c4db86bc 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/logger.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/logger.go @@ -1,16 +1,32 @@ package restful -import "log" - // Copyright 2014 Ernest Micklei. All rights reserved. // Use of this source code is governed by a license // that can be found in the LICENSE file. +import ( + "github.com/emicklei/go-restful/log" +) var trace bool = false -var traceLogger *log.Logger +var traceLogger log.StdLogger + +func init() { + traceLogger = log.Logger // use the package logger by default +} // TraceLogger enables detailed logging of Http request matching and filter invocation. Default no logger is set. -func TraceLogger(logger *log.Logger) { +// You may call EnableTracing() directly to enable trace logging to the package-wide logger. +func TraceLogger(logger log.StdLogger) { traceLogger = logger - trace = logger != nil + EnableTracing(logger != nil) +} + +// expose the setter for the global logger on the top-level package +func SetLogger(customLogger log.StdLogger) { + log.SetLogger(customLogger) +} + +// EnableTracing can be used to Trace logging on and off. +func EnableTracing(enabled bool) { + trace = enabled } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/route.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/route.go index 777b8861dc6..3b1e13ab9dc 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/route.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/route.go @@ -88,8 +88,24 @@ func (r Route) matchesAccept(mimeTypesWithQuality string) bool { return false } -// Return whether the mimeType matches to what this Route can consume. +// Return whether this Route can consume content with a type specified by mimeTypes (can be empty). func (r Route) matchesContentType(mimeTypes string) bool { + + if len(r.Consumes) == 0 { + // did not specify what it can consume ; any media type (“*/*”) is assumed + return true + } + + if len(mimeTypes) == 0 { + // idempotent methods with (most-likely or garanteed) empty content match missing Content-Type + m := r.Method + if m == "GET" || m == "HEAD" || m == "OPTIONS" || m == "DELETE" || m == "TRACE" { + return true + } + // proceed with default + mimeTypes = MIME_OCTET + } + parts := strings.Split(mimeTypes, ",") for _, each := range parts { var contentType string @@ -100,8 +116,8 @@ func (r Route) matchesContentType(mimeTypes string) bool { } // trim before compare contentType = strings.Trim(contentType, " ") - for _, other := range r.Consumes { - if other == "*/*" || other == contentType { + for _, consumeableType := range r.Consumes { + if consumeableType == "*/*" || consumeableType == contentType { return true } } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder.go index 9b06a406f94..b49b7c74d35 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder.go @@ -5,9 +5,12 @@ package restful // that can be found in the LICENSE file. import ( - "log" + "os" "reflect" + "runtime" "strings" + + "github.com/emicklei/go-restful/log" ) // RouteBuilder is a helper to construct Routes. @@ -126,6 +129,7 @@ func (b *RouteBuilder) Param(parameter *Parameter) *RouteBuilder { } // Operation allows you to document what the acutal method/function call is of the Route. +// Unless called, the operation name is derived from the RouteFunction set using To(..). func (b *RouteBuilder) Operation(name string) *RouteBuilder { b.operation = name return b @@ -133,7 +137,7 @@ func (b *RouteBuilder) Operation(name string) *RouteBuilder { // ReturnsError is deprecated, use Returns instead. func (b *RouteBuilder) ReturnsError(code int, message string, model interface{}) *RouteBuilder { - log.Println("ReturnsError is deprecated, use Returns instead.") + log.Print("ReturnsError is deprecated, use Returns instead.") return b.Returns(code, message, model) } @@ -186,10 +190,17 @@ func (b *RouteBuilder) copyDefaults(rootProduces, rootConsumes []string) { func (b *RouteBuilder) Build() Route { pathExpr, err := newPathExpression(b.currentPath) if err != nil { - log.Fatalf("[restful] Invalid path:%s because:%v", b.currentPath, err) + log.Printf("[restful] Invalid path:%s because:%v", b.currentPath, err) + os.Exit(1) } if b.function == nil { - log.Fatalf("[restful] No function specified for route:" + b.currentPath) + log.Printf("[restful] No function specified for route:" + b.currentPath) + os.Exit(1) + } + operationName := b.operation + if len(operationName) == 0 && b.function != nil { + // extract from definition + operationName = nameOfFunction(b.function) } route := Route{ Method: b.httpMethod, @@ -202,7 +213,7 @@ func (b *RouteBuilder) Build() Route { pathExpr: pathExpr, Doc: b.doc, Notes: b.notes, - Operation: b.operation, + Operation: operationName, ParameterDocs: b.parameters, ResponseErrors: b.errorMap, ReadSample: b.readSample, @@ -214,3 +225,16 @@ func (b *RouteBuilder) Build() Route { func concatPath(path1, path2 string) string { return strings.TrimRight(path1, "/") + "/" + strings.TrimLeft(path2, "/") } + +// nameOfFunction returns the short name of the function f for documentation. +// It uses a runtime feature for debugging ; its value may change for later Go versions. +func nameOfFunction(f interface{}) string { + fun := runtime.FuncForPC(reflect.ValueOf(f).Pointer()) + tokenized := strings.Split(fun.Name(), ".") + last := tokenized[len(tokenized)-1] + last = strings.TrimSuffix(last, ")·fm") // < Go 1.5 + last = strings.TrimSuffix(last, ")-fm") // Go 1.5 + last = strings.TrimSuffix(last, "·fm") // < Go 1.5 + last = strings.TrimSuffix(last, "-fm") // Go 1.5 + return last +} diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder_test.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder_test.go index 42ec6897ad8..56dbe02e476 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder_test.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/route_builder_test.go @@ -52,4 +52,7 @@ func TestRouteBuilder(t *testing.T) { if r.Consumes[0] != json { t.Error("consumes invalid") } + if r.Operation != "dummy" { + t.Error("Operation not set") + } } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/CHANGES.md b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/CHANGES.md index 9980f2f1dff..77bf3a663ec 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/CHANGES.md +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/CHANGES.md @@ -1,5 +1,9 @@ Change history of swagger = +2015-03-17 +- preserve order of Routes per WebService in Swagger listing +- fix use of $ref and type in Swagger models +- add api version to listing 2014-11-14 - operation parameters are now sorted using ordering path,query,form,header,body diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/config.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/config.go index 90f3cd7e0e8..c08586bb5ce 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/config.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/config.go @@ -6,6 +6,9 @@ import ( "github.com/emicklei/go-restful" ) +// PostBuildDeclarationMapFunc can be used to modify the api declaration map. +type PostBuildDeclarationMapFunc func(apiDeclarationMap map[string]ApiDeclaration) + type Config struct { // url where the services are available, e.g. http://localhost:8080 // if left empty then the basePath of Swagger is taken from the actual request @@ -24,4 +27,6 @@ type Config struct { DisableCORS bool // Top-level API version. Is reflected in the resource listing. ApiVersion string + // If set then call this handler after building the complete ApiDeclaration Map + PostBuildHandler PostBuildDeclarationMapFunc } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder.go index dfa341cfe0f..5794df0f862 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder.go @@ -78,45 +78,48 @@ func (b modelBuilder) buildProperty(field reflect.StructField, model *Model, mod return "", prop } fieldType := field.Type - fieldKind := fieldType.Kind() - - if jsonTag := field.Tag.Get("json"); jsonTag != "" { - s := strings.Split(jsonTag, ",") - if len(s) > 1 && s[1] == "string" { - fieldType = reflect.TypeOf("") - } - } - - var pType = b.jsonSchemaType(fieldType.String()) // may include pkg path - prop.Type = &pType - if b.isPrimitiveType(fieldType.String()) { - prop.Format = b.jsonSchemaFormat(fieldType.String()) - return jsonName, prop - } + // check if type is doing its own marshalling marshalerType := reflect.TypeOf((*json.Marshaler)(nil)).Elem() if fieldType.Implements(marshalerType) { var pType = "string" prop.Type = &pType + prop.Format = b.jsonSchemaFormat(fieldType.String()) return jsonName, prop } - if fieldKind == reflect.Struct { + // check if annotation says it is a string + if jsonTag := field.Tag.Get("json"); jsonTag != "" { + s := strings.Split(jsonTag, ",") + if len(s) > 1 && s[1] == "string" { + stringt := "string" + prop.Type = &stringt + return jsonName, prop + } + } + + fieldKind := fieldType.Kind() + switch { + case fieldKind == reflect.Struct: return b.buildStructTypeProperty(field, jsonName, model) - } - - if fieldKind == reflect.Slice || fieldKind == reflect.Array { + case fieldKind == reflect.Slice || fieldKind == reflect.Array: return b.buildArrayTypeProperty(field, jsonName, modelName) - } - - if fieldKind == reflect.Ptr { + case fieldKind == reflect.Ptr: return b.buildPointerTypeProperty(field, jsonName, modelName) } + if b.isPrimitiveType(fieldType.String()) { + mapped := b.jsonSchemaType(fieldType.String()) + prop.Type = &mapped + prop.Format = b.jsonSchemaFormat(fieldType.String()) + return jsonName, prop + } + modelType := fieldType.String() + prop.Ref = &modelType + if fieldType.Name() == "" { // override type of anonymous structs nestedTypeName := modelName + "." + jsonName - var pType = nestedTypeName - prop.Type = &pType + prop.Ref = &nestedTypeName b.addModel(fieldType, nestedTypeName) } return jsonName, prop @@ -129,7 +132,7 @@ func (b modelBuilder) buildStructTypeProperty(field reflect.StructField, jsonNam // anonymous anonType := model.Id + "." + jsonName b.addModel(fieldType, anonType) - prop.Type = &anonType + prop.Ref = &anonType return jsonName, prop } if field.Name == fieldType.Name() && field.Anonymous { @@ -159,7 +162,7 @@ func (b modelBuilder) buildStructTypeProperty(field reflect.StructField, jsonNam // simple struct b.addModel(fieldType, "") var pType = fieldType.String() - prop.Type = &pType + prop.Ref = &pType return jsonName, prop } @@ -167,13 +170,19 @@ func (b modelBuilder) buildArrayTypeProperty(field reflect.StructField, jsonName fieldType := field.Type var pType = "array" prop.Type = &pType - elemName := b.getElementTypeName(modelName, jsonName, fieldType.Elem()) - prop.Items = &Item{Ref: &elemName} + elemTypeName := b.getElementTypeName(modelName, jsonName, fieldType.Elem()) + prop.Items = new(Item) + if b.isPrimitiveType(elemTypeName) { + mapped := b.jsonSchemaType(elemTypeName) + prop.Items.Type = &mapped + } else { + prop.Items.Ref = &elemTypeName + } // add|overwrite model for element type if fieldType.Elem().Kind() == reflect.Ptr { fieldType = fieldType.Elem() } - b.addModel(fieldType.Elem(), elemName) + b.addModel(fieldType.Elem(), elemTypeName) return jsonName, prop } @@ -191,11 +200,11 @@ func (b modelBuilder) buildPointerTypeProperty(field reflect.StructField, jsonNa } else { // non-array, pointer type var pType = fieldType.String()[1:] // no star, include pkg path - prop.Type = &pType + prop.Ref = &pType elemName := "" if fieldType.Elem().Name() == "" { elemName = modelName + "." + jsonName - prop.Type = &elemName + prop.Ref = &elemName } b.addModel(fieldType.Elem(), elemName) } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder_test.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder_test.go index 35b8447763b..0f0ad3beace 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder_test.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/model_builder_test.go @@ -14,6 +14,29 @@ func (y YesNo) MarshalJSON() ([]byte, error) { return []byte("no"), nil } +// clear && go test -v -test.run TestRef_Issue190 ...swagger +func TestRef_Issue190(t *testing.T) { + type User struct { + items []string + } + testJsonFromStruct(t, User{}, `{ + "swagger.User": { + "id": "swagger.User", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }`) +} + // clear && go test -v -test.run TestCustomMarshaller_Issue96 ...swagger func TestCustomMarshaller_Issue96(t *testing.T) { type Vote struct { @@ -96,7 +119,7 @@ func TestS2(t *testing.T) { "Ids": { "type": "array", "items": { - "$ref": "string" + "type": "string" } } } @@ -131,7 +154,7 @@ func TestS3(t *testing.T) { ], "properties": { "Nested": { - "type": "swagger.NestedS3" + "$ref": "swagger.NestedS3" } } } @@ -180,7 +203,7 @@ func TestSampleToModelAsJson(t *testing.T) { } }, "root": { - "type": "swagger.item", + "$ref": "swagger.item", "description": "root desc" } } @@ -284,7 +307,7 @@ func TestAnonymousStruct(t *testing.T) { ], "properties": { "A": { - "type": "swagger.X.A" + "$ref": "swagger.X.A" } } }, @@ -320,7 +343,7 @@ func TestAnonymousPtrStruct(t *testing.T) { ], "properties": { "A": { - "type": "swagger.X.A" + "$ref": "swagger.X.A" } } }, @@ -474,7 +497,7 @@ func TestIssue85(t *testing.T) { "Names": { "type": "array", "items": { - "$ref": "string" + "type": "string" } } } @@ -531,7 +554,7 @@ func TestEmbeddedStructA1(t *testing.T) { ], "properties": { "B": { - "type": "swagger.A1.B" + "$ref": "swagger.A1.B" } } }, @@ -605,7 +628,7 @@ func TestStructA3(t *testing.T) { ], "properties": { "B": { - "type": "swagger.D" + "$ref": "swagger.D" } } }, @@ -695,7 +718,7 @@ func TestIssue158(t *testing.T) { ], "properties": { "address": { - "type": "swagger.Address" + "$ref": "swagger.Address" }, "name": { "type": "string" diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_test.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_test.go index eae4780159f..e810f2f35ef 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_test.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_test.go @@ -23,9 +23,11 @@ func TestServiceToApi(t *testing.T) { ws.Route(ws.DELETE("/a").To(dummy).Writes(sample{})) ws.ApiVersion("1.2.3") cfg := Config{ - WebServicesUrl: "http://here.com", - ApiPath: "/apipath", - WebServices: []*restful.WebService{ws}} + WebServicesUrl: "http://here.com", + ApiPath: "/apipath", + WebServices: []*restful.WebService{ws}, + PostBuildHandler: func(in map[string]ApiDeclaration) {}, + } sws := newSwaggerService(cfg) decl := sws.composeDeclaration(ws, "/tests") // checks diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_webservice.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_webservice.go index 8935061ac2f..7f004ecdf98 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_webservice.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/swagger_webservice.go @@ -5,11 +5,12 @@ import ( "github.com/emicklei/go-restful" // "github.com/emicklei/hopwatch" - "log" "net/http" "reflect" "sort" "strings" + + "github.com/emicklei/go-restful/log" ) type SwaggerService struct { @@ -24,7 +25,10 @@ func newSwaggerService(config Config) *SwaggerService { } // LogInfo is the function that is called when this package needs to log. It defaults to log.Printf -var LogInfo = log.Printf +var LogInfo = func(format string, v ...interface{}) { + // use the restful package-wide logger + log.Printf(format, v...) +} // InstallSwaggerService add the WebService that provides the API documentation of all services // conform the Swagger documentation specifcation. (https://github.com/wordnik/swagger-core/wiki). @@ -73,6 +77,11 @@ func RegisterSwaggerService(config Config, wsContainer *restful.Container) { } } + // if specified then call the PostBuilderHandler + if config.PostBuildHandler != nil { + config.PostBuildHandler(sws.apiDeclarationMap) + } + // Check paths for UI serving if config.StaticHandler == nil && config.SwaggerFilePath != "" && config.SwaggerPath != "" { swaggerPathSlash := config.SwaggerPath diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/utils_test.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/utils_test.go index 7f5a2ae0da5..75631f239bb 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/utils_test.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/swagger/utils_test.go @@ -32,6 +32,8 @@ func compareJson(t *testing.T, actualJsonAsString string, expectedJsonAsString s fmt.Println(withLineNumbers(expectedJsonAsString)) fmt.Println("---- actual -----") fmt.Println(withLineNumbers(actualJsonAsString)) + fmt.Println("---- raw -----") + fmt.Println(actualJsonAsString) t.Error("there are differences") return false } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service.go index 52ba06f5295..31af2576d9a 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service.go @@ -1,11 +1,15 @@ package restful +import ( + "os" + + "github.com/emicklei/go-restful/log" +) + // Copyright 2013 Ernest Micklei. All rights reserved. // Use of this source code is governed by a license // that can be found in the LICENSE file. -import "log" - // WebService holds a collection of Route values that bind a Http Method + URL Path to a function. type WebService struct { rootPath string @@ -26,7 +30,8 @@ func (w *WebService) compilePathExpression() { } compiled, err := newPathExpression(w.rootPath) if err != nil { - log.Fatalf("[restful] invalid path:%s because:%v", w.rootPath, err) + log.Printf("[restful] invalid path:%s because:%v", w.rootPath, err) + os.Exit(1) } w.pathExpr = compiled } diff --git a/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service_test.go b/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service_test.go index e200979f156..7d060279c95 100644 --- a/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service_test.go +++ b/Godeps/_workspace/src/github.com/emicklei/go-restful/web_service_test.go @@ -85,6 +85,50 @@ func TestSelectedRoutePath_Issue100(t *testing.T) { } } +func TestContentType415_Issue170(t *testing.T) { + tearDown() + Add(newGetOnlyJsonOnlyService()) + httpRequest, _ := http.NewRequest("GET", "http://here.com/get", nil) + httpWriter := httptest.NewRecorder() + DefaultContainer.dispatch(httpWriter, httpRequest) + if 200 != httpWriter.Code { + t.Errorf("Expected 200, got %d", httpWriter.Code) + } +} + +func TestContentType415_POST_Issue170(t *testing.T) { + tearDown() + Add(newPostOnlyJsonOnlyService()) + httpRequest, _ := http.NewRequest("POST", "http://here.com/post", nil) + httpRequest.Header.Set("Content-Type", "application/json") + httpWriter := httptest.NewRecorder() + DefaultContainer.dispatch(httpWriter, httpRequest) + if 200 != httpWriter.Code { + t.Errorf("Expected 200, got %d", httpWriter.Code) + } +} + +// go test -v -test.run TestContentTypeOctet_Issue170 ...restful +func TestContentTypeOctet_Issue170(t *testing.T) { + tearDown() + Add(newGetConsumingOctetStreamService()) + // with content-type + httpRequest, _ := http.NewRequest("GET", "http://here.com/get", nil) + httpRequest.Header.Set("Content-Type", MIME_OCTET) + httpWriter := httptest.NewRecorder() + DefaultContainer.dispatch(httpWriter, httpRequest) + if 200 != httpWriter.Code { + t.Errorf("Expected 200, got %d", httpWriter.Code) + } + // without content-type + httpRequest, _ = http.NewRequest("GET", "http://here.com/get", nil) + httpWriter = httptest.NewRecorder() + DefaultContainer.dispatch(httpWriter, httpRequest) + if 200 != httpWriter.Code { + t.Errorf("Expected 200, got %d", httpWriter.Code) + } +} + func newPanicingService() *WebService { ws := new(WebService).Path("") ws.Route(ws.GET("/fire").To(doPanic)) @@ -97,6 +141,27 @@ func newGetOnlyService() *WebService { return ws } +func newPostOnlyJsonOnlyService() *WebService { + ws := new(WebService).Path("") + ws.Consumes("application/json") + ws.Route(ws.POST("/post").To(doNothing)) + return ws +} + +func newGetOnlyJsonOnlyService() *WebService { + ws := new(WebService).Path("") + ws.Consumes("application/json") + ws.Route(ws.GET("/get").To(doNothing)) + return ws +} + +func newGetConsumingOctetStreamService() *WebService { + ws := new(WebService).Path("") + ws.Consumes("application/octet-stream") + ws.Route(ws.GET("/get").To(doNothing)) + return ws +} + func newSelectedRouteTestingService() *WebService { ws := new(WebService).Path("") ws.Route(ws.GET(pathGetFriends).To(selectedRouteChecker)) @@ -113,3 +178,6 @@ func doPanic(req *Request, resp *Response) { println("lightning...") panic("fire") } + +func doNothing(req *Request, resp *Response) { +} diff --git a/api/swagger-spec/v1beta1.json b/api/swagger-spec/v1beta1.json index 3d2b701bade..b3aaf167abf 100644 --- a/api/swagger-spec/v1beta1.json +++ b/api/swagger-spec/v1beta1.json @@ -235,6 +235,44 @@ "consumes": [ "*/*" ] + }, + { + "type": "void", + "method": "DELETE", + "summary": "delete a Endpoints", + "nickname": "deleteEndpoints", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Endpoints", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": false, + "allowMultiple": false + }, + { + "type": "*v1beta1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] } ] }, @@ -961,6 +999,14 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -1375,6 +1421,14 @@ "description": "name of the Namespace", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -1414,6 +1468,78 @@ } ] }, + { + "path": "/api/v1beta1/namespaces/{name}/finalize", + "description": "API at /api/v1beta1 version v1beta1", + "operations": [ + { + "type": "void", + "method": "PUT", + "summary": "replace the specified Namespace", + "nickname": "replaceNamespace", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false + }, + { + "type": "v1beta1.Namespace", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/api/v1beta1/namespaces/{name}/status", + "description": "API at /api/v1beta1 version v1beta1", + "operations": [ + { + "type": "void", + "method": "PUT", + "summary": "replace the specified Namespace", + "nickname": "replaceNamespace", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false + }, + { + "type": "v1beta1.Namespace", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] + } + ] + }, { "path": "/api/v1beta1/nodes", "description": "API at /api/v1beta1 version v1beta1", @@ -1573,6 +1699,14 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2045,6 +2179,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "*v1beta1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2677,6 +2819,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "*v1beta1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2941,6 +3091,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "*v1beta1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -3850,6 +4008,10 @@ } ], "models": { + "*v1beta1.DeleteOptions": { + "id": "*v1beta1.DeleteOptions", + "properties": {} + }, "v1beta1.Binding": { "id": "v1beta1.Binding", "required": [ @@ -3858,7 +4020,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -3869,6 +4031,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -3894,7 +4060,7 @@ "description": "name of the pod to bind" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -3902,7 +4068,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -3939,13 +4105,13 @@ ], "properties": { "capabilities": { - "type": "v1beta1.Capabilities", + "$ref": "v1beta1.Capabilities", "description": "capabilities for container; cannot be updated" }, "command": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "command argv array; not executed within a shell; defaults to entrypoint or command in the image; cannot be updated" }, @@ -3966,15 +4132,15 @@ "description": "Docker image name" }, "imagePullPolicy": { - "type": "v1beta1.PullPolicy", + "$ref": "v1beta1.PullPolicy", "description": "image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated" }, "lifecycle": { - "type": "v1beta1.Lifecycle", + "$ref": "v1beta1.Lifecycle", "description": "actions that the management system should take in response to container lifecycle events; cannot be updated" }, "livenessProbe": { - "type": "v1beta1.LivenessProbe", + "$ref": "v1beta1.LivenessProbe", "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated" }, "memory": { @@ -3998,11 +4164,11 @@ "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated" }, "readinessProbe": { - "type": "v1beta1.LivenessProbe", + "$ref": "v1beta1.LivenessProbe", "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated" }, "resources": { - "type": "v1beta1.ResourceRequirements", + "$ref": "v1beta1.ResourceRequirements", "description": "Compute Resources required by this container; cannot be updated" }, "terminationMessagePath": { @@ -4039,19 +4205,23 @@ "description": "list of containers belonging to the pod; containers cannot currently be added or removed" }, "dnsPolicy": { - "type": "v1beta1.DNSPolicy", + "$ref": "v1beta1.DNSPolicy", "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'" }, + "hostNetwork": { + "type": "boolean", + "description": "host networking requested for this pod" + }, "id": { "type": "string", "description": "manifest name; must be a DNS_SUBDOMAIN; cannot be updated" }, "restartPolicy": { - "type": "v1beta1.RestartPolicy", + "$ref": "v1beta1.RestartPolicy", "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever" }, "uuid": { - "type": "types.UID", + "$ref": "types.UID", "description": "manifest UUID, populated by the system, read-only" }, "version": { @@ -4092,7 +4262,7 @@ "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod" }, "protocol": { - "type": "v1beta1.Protocol", + "$ref": "v1beta1.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" } } @@ -4104,7 +4274,7 @@ ], "properties": { "medium": { - "type": "v1beta1.StorageType", + "$ref": "v1beta1.StorageType", "description": "type of storage used to back the volume; must be an empty string (default) or Memory" } } @@ -4144,7 +4314,7 @@ "description": "specific resourceVersion to which this reference is made, if any: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "uid of the referent" } } @@ -4156,7 +4326,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4167,10 +4337,14 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "endpoints": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "list of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" }, @@ -4191,11 +4365,11 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "protocol": { - "type": "v1beta1.Protocol", + "$ref": "v1beta1.Protocol", "description": "IP protocol for endpoint ports; must be UDP or TCP; TCP if unspecified" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4210,7 +4384,7 @@ "description": "list of references to objects providing the endpoints" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -4222,7 +4396,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4233,6 +4407,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4257,7 +4435,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4265,7 +4443,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -4294,7 +4472,7 @@ "id": "v1beta1.Event", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4310,6 +4488,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "firstTimestamp": { "type": "string", "description": "the time at which the event was first recorded" @@ -4327,7 +4509,7 @@ "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" }, "involvedObject": { - "type": "v1beta1.ObjectReference", + "$ref": "v1beta1.ObjectReference", "description": "object that this event is about" }, "kind": { @@ -4351,7 +4533,7 @@ "description": "short, machine understandable string that gives the reason for the transition into the object's current status" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4371,7 +4553,7 @@ "description": "time at which the client recorded the event" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -4383,7 +4565,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4394,6 +4576,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4418,7 +4604,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4426,7 +4612,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -4437,12 +4623,16 @@ "command": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy" } } }, + "v1beta1.FinalizerName": { + "id": "v1beta1.FinalizerName", + "properties": {} + }, "v1beta1.GCEPersistentDiskVolumeSource": { "id": "v1beta1.GCEPersistentDiskVolumeSource", "required": [ @@ -4506,15 +4696,15 @@ "id": "v1beta1.Handler", "properties": { "exec": { - "type": "v1beta1.ExecAction", + "$ref": "v1beta1.ExecAction", "description": "exec-based handler" }, "httpGet": { - "type": "v1beta1.HTTPGetAction", + "$ref": "v1beta1.HTTPGetAction", "description": "HTTP-based handler" }, "tcpSocket": { - "type": "v1beta1.TCPSocketAction", + "$ref": "v1beta1.TCPSocketAction", "description": "TCP-based handler; TCP hooks not yet supported" } } @@ -4535,11 +4725,11 @@ "id": "v1beta1.Lifecycle", "properties": { "postStart": { - "type": "v1beta1.Handler", + "$ref": "v1beta1.Handler", "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes" }, "preStop": { - "type": "v1beta1.Handler", + "$ref": "v1beta1.Handler", "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes" } } @@ -4548,7 +4738,7 @@ "id": "v1beta1.LimitRange", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4559,6 +4749,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4576,7 +4770,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4584,11 +4778,11 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta1.LimitRangeSpec", + "$ref": "v1beta1.LimitRangeSpec", "description": "spec defines the limits enforced" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -4597,15 +4791,15 @@ "id": "v1beta1.LimitRangeItem", "properties": { "max": { - "type": "v1beta1.ResourceList", + "$ref": "v1beta1.ResourceList", "description": "max usage constraints on this kind by resource name" }, "min": { - "type": "v1beta1.ResourceList", + "$ref": "v1beta1.ResourceList", "description": "min usage constraints on this kind by resource name" }, "type": { - "type": "v1beta1.LimitType", + "$ref": "v1beta1.LimitType", "description": "type of resource that this limit applies to" } } @@ -4617,7 +4811,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4628,6 +4822,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4652,7 +4850,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4660,7 +4858,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -4684,11 +4882,11 @@ "id": "v1beta1.LivenessProbe", "properties": { "exec": { - "type": "v1beta1.ExecAction", + "$ref": "v1beta1.ExecAction", "description": "parameters for exec-based liveness probe" }, "httpGet": { - "type": "v1beta1.HTTPGetAction", + "$ref": "v1beta1.HTTPGetAction", "description": "parameters for HTTP-based liveness probe" }, "initialDelaySeconds": { @@ -4697,7 +4895,7 @@ "description": "number of seconds after the container has started before liveness probes are initiated" }, "tcpSocket": { - "type": "v1beta1.TCPSocketAction", + "$ref": "v1beta1.TCPSocketAction", "description": "parameters for TCP-based liveness probe" }, "timeoutSeconds": { @@ -4711,7 +4909,7 @@ "id": "v1beta1.Minion", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4722,6 +4920,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "externalID": { "type": "string", "description": "external id of the node assigned by some machine database (e.g. a cloud provider)" @@ -4743,7 +4945,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta1.Minion.labels", + "$ref": "v1beta1.Minion.labels", "description": "map of string keys and values that can be used to organize and categorize minions; labels of a minion assigned by the scheduler must match the scheduled pod's nodeSelector" }, "namespace": { @@ -4755,11 +4957,11 @@ "description": "IP range assigned to the node" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "resources": { - "type": "v1beta1.NodeResources", + "$ref": "v1beta1.NodeResources", "description": "characterization of node resources" }, "selfLink": { @@ -4767,11 +4969,11 @@ "description": "URL for the object; populated by the system, read-only" }, "status": { - "type": "v1beta1.NodeStatus", + "$ref": "v1beta1.NodeStatus", "description": "current status of node" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" }, "unschedulable": { @@ -4791,7 +4993,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4802,6 +5004,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4833,7 +5039,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4841,16 +5047,37 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } }, + "v1beta1.NFSVolumeSource": { + "id": "v1beta1.NFSVolumeSource", + "required": [ + "server", + "path" + ], + "properties": { + "path": { + "type": "string", + "description": "the path that is exported by the NFS server" + }, + "readOnly": { + "type": "boolean", + "description": "forces the NFS export to be mounted with read-only permissions" + }, + "server": { + "type": "string", + "description": "the hostname or IP address of the NFS server" + } + } + }, "v1beta1.Namespace": { "id": "v1beta1.Namespace", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4861,6 +5088,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4874,7 +5105,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta1.Namespace.labels", + "$ref": "v1beta1.Namespace.labels", "description": "map of string keys and values that can be used to organize and categorize namespaces" }, "namespace": { @@ -4882,7 +5113,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4890,15 +5121,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta1.NamespaceSpec", + "$ref": "v1beta1.NamespaceSpec", "description": "spec defines the behavior of the Namespace" }, "status": { - "type": "v1beta1.NamespaceStatus", + "$ref": "v1beta1.NamespaceStatus", "description": "status describes the current status of a Namespace; read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -4914,7 +5145,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4925,6 +5156,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4949,7 +5184,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4957,20 +5192,28 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } }, "v1beta1.NamespaceSpec": { "id": "v1beta1.NamespaceSpec", - "properties": {} + "properties": { + "finalizers": { + "type": "array", + "items": { + "$ref": "v1beta1.FinalizerName" + }, + "description": "an opaque list of values that must be empty to permanently remove object from storage" + } + } }, "v1beta1.NamespaceStatus": { "id": "v1beta1.NamespaceStatus", "properties": { "phase": { - "type": "v1beta1.NamespacePhase", + "$ref": "v1beta1.NamespacePhase", "description": "phase is the current lifecycle phase of the namespace" } } @@ -4987,7 +5230,7 @@ "description": "string representation of the address" }, "type": { - "type": "v1beta1.NodeAddressType", + "$ref": "v1beta1.NodeAddressType", "description": "type of the node address, e.g. external ip, internal ip, hostname, etc" } } @@ -5000,7 +5243,7 @@ ], "properties": { "kind": { - "type": "v1beta1.NodeConditionKind", + "$ref": "v1beta1.NodeConditionKind", "description": "kind of the condition, one of Reachable, Ready" }, "lastProbeTime": { @@ -5020,7 +5263,7 @@ "description": "(brief) reason for the condition's last transition" }, "status": { - "type": "v1beta1.ConditionStatus", + "$ref": "v1beta1.ConditionStatus", "description": "status of the condition, one of Full, None, Unknown" } } @@ -5029,7 +5272,7 @@ "id": "v1beta1.NodeResources", "properties": { "capacity": { - "type": "v1beta1.ResourceList", + "$ref": "v1beta1.ResourceList", "description": "resource capacity of a node represented as a map of resource name to quantity of resource" } } @@ -5052,11 +5295,11 @@ "description": "conditions is an array of current node conditions" }, "nodeInfo": { - "type": "v1beta1.NodeSystemInfo", + "$ref": "v1beta1.NodeSystemInfo", "description": "node identity is a set of ids/uuids to uniquely identify the node" }, "phase": { - "type": "v1beta1.NodePhase", + "$ref": "v1beta1.NodePhase", "description": "node phase is the current lifecycle phase of the node" } } @@ -5106,7 +5349,7 @@ "description": "specific resourceVersion to which this reference is made, if any: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "uid of the referent" } } @@ -5115,7 +5358,7 @@ "id": "v1beta1.Pod", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5127,11 +5370,15 @@ "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, "currentState": { - "type": "v1beta1.PodState", + "$ref": "v1beta1.PodState", "description": "current state of the pod; populated by the system, read-only" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "desiredState": { - "type": "v1beta1.PodState", + "$ref": "v1beta1.PodState", "description": "specification of the desired state of the pod" }, "generateName": { @@ -5147,7 +5394,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta1.Pod.labels", + "$ref": "v1beta1.Pod.labels", "description": "map of string keys and values that can be used to organize and categorize pods; may match selectors of replication controllers and services" }, "namespace": { @@ -5155,11 +5402,11 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "nodeSelector": { - "type": "v1beta1.Pod.nodeSelector", + "$ref": "v1beta1.Pod.nodeSelector", "description": "selector which must match a node's labels for the pod to be scheduled on that node" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5167,7 +5414,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5188,11 +5435,11 @@ ], "properties": { "kind": { - "type": "v1beta1.PodConditionKind", + "$ref": "v1beta1.PodConditionKind", "description": "kind of the condition, currently only Ready" }, "status": { - "type": "v1beta1.ConditionStatus", + "$ref": "v1beta1.ConditionStatus", "description": "status of the condition, one of Full, None, Unknown" } } @@ -5204,7 +5451,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5215,6 +5462,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5239,7 +5490,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5247,7 +5498,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5271,11 +5522,11 @@ "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" }, "info": { - "type": "v1beta1.PodInfo", + "$ref": "v1beta1.PodInfo", "description": "map of container name to container status" }, "manifest": { - "type": "v1beta1.ContainerManifest", + "$ref": "v1beta1.ContainerManifest", "description": "manifest of containers and volumes comprising the pod" }, "message": { @@ -5287,7 +5538,7 @@ "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated" }, "status": { - "type": "v1beta1.PodStatus", + "$ref": "v1beta1.PodStatus", "description": "current condition of the pod, Waiting, Running, or Terminated" } } @@ -5296,19 +5547,19 @@ "id": "v1beta1.PodTemplate", "properties": { "annotations": { - "type": "v1beta1.PodTemplate.annotations", + "$ref": "v1beta1.PodTemplate.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about pods created from the template" }, "desiredState": { - "type": "v1beta1.PodState", + "$ref": "v1beta1.PodState", "description": "specification of the desired state of pods created from this template" }, "labels": { - "type": "v1beta1.PodTemplate.labels", + "$ref": "v1beta1.PodTemplate.labels", "description": "map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services" }, "nodeSelector": { - "type": "v1beta1.PodTemplate.nodeSelector", + "$ref": "v1beta1.PodTemplate.nodeSelector", "description": "a selector which must be true for the pod to fit on a node" } } @@ -5329,7 +5580,7 @@ "id": "v1beta1.ReplicationController", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5341,11 +5592,15 @@ "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, "currentState": { - "type": "v1beta1.ReplicationControllerState", + "$ref": "v1beta1.ReplicationControllerState", "description": "current state of the replication controller; populated by the system, read-only" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "desiredState": { - "type": "v1beta1.ReplicationControllerState", + "$ref": "v1beta1.ReplicationControllerState", "description": "specification of the desired state of the replication controller" }, "generateName": { @@ -5361,7 +5616,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta1.ReplicationController.labels", + "$ref": "v1beta1.ReplicationController.labels", "description": "map of string keys and values that can be used to organize and categorize replication controllers" }, "namespace": { @@ -5369,7 +5624,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5377,7 +5632,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5393,7 +5648,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5404,6 +5659,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5428,7 +5687,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5436,7 +5695,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5448,11 +5707,11 @@ ], "properties": { "podTemplate": { - "type": "v1beta1.PodTemplate", + "$ref": "v1beta1.PodTemplate", "description": "template for pods to be created by this replication controller when the observed number of replicas is less than the desired number of replicas" }, "replicaSelector": { - "type": "v1beta1.ReplicationControllerState.replicaSelector", + "$ref": "v1beta1.ReplicationControllerState.replicaSelector", "description": "label keys and values that must match in order to be controlled by this replication controller" }, "replicas": { @@ -5470,7 +5729,7 @@ "id": "v1beta1.ResourceQuota", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5481,6 +5740,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5494,7 +5757,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta1.ResourceQuota.labels", + "$ref": "v1beta1.ResourceQuota.labels", "description": "map of string keys and values that can be used to organize and categorize resource quotas" }, "namespace": { @@ -5502,7 +5765,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5510,15 +5773,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta1.ResourceQuotaSpec", + "$ref": "v1beta1.ResourceQuotaSpec", "description": "spec defines the desired quota" }, "status": { - "type": "v1beta1.ResourceQuotaStatus", + "$ref": "v1beta1.ResourceQuotaStatus", "description": "status defines the actual enforced quota and current usage" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5534,7 +5797,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5545,6 +5808,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5569,7 +5836,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5577,7 +5844,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5586,7 +5853,7 @@ "id": "v1beta1.ResourceQuotaSpec", "properties": { "hard": { - "type": "v1beta1.ResourceList", + "$ref": "v1beta1.ResourceList", "description": "hard is the set of desired hard limits for each named resource" } } @@ -5595,11 +5862,11 @@ "id": "v1beta1.ResourceQuotaStatus", "properties": { "hard": { - "type": "v1beta1.ResourceList", + "$ref": "v1beta1.ResourceList", "description": "hard is the set of enforced hard limits for each named resource" }, "used": { - "type": "v1beta1.ResourceList", + "$ref": "v1beta1.ResourceList", "description": "used is the current observed total usage of the resource in the namespace" } } @@ -5608,8 +5875,12 @@ "id": "v1beta1.ResourceRequirements", "properties": { "limits": { - "type": "v1beta1.ResourceList", + "$ref": "v1beta1.ResourceList", "description": "Maximum amount of compute resources allowed" + }, + "requests": { + "$ref": "v1beta1.ResourceList", + "description": "Minimum amount of resources requested" } } }, @@ -5617,15 +5888,15 @@ "id": "v1beta1.RestartPolicy", "properties": { "always": { - "type": "v1beta1.RestartPolicyAlways", + "$ref": "v1beta1.RestartPolicyAlways", "description": "always restart the container after termination" }, "never": { - "type": "v1beta1.RestartPolicyNever", + "$ref": "v1beta1.RestartPolicyNever", "description": "never restart the container" }, "onFailure": { - "type": "v1beta1.RestartPolicyOnFailure", + "$ref": "v1beta1.RestartPolicyOnFailure", "description": "restart the container if it fails for any reason, but not if it succeeds (exit 0)" } } @@ -5646,7 +5917,7 @@ "id": "v1beta1.Secret", "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5658,9 +5929,13 @@ "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, "data": { - "type": "v1beta1.Secret.data", + "$ref": "v1beta1.Secret.data", "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN. Each value must be a base64 encoded string" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5678,7 +5953,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5686,11 +5961,11 @@ "description": "URL for the object; populated by the system, read-only" }, "type": { - "type": "v1beta1.SecretType", + "$ref": "v1beta1.SecretType", "description": "type facilitates programmatic handling of secret data" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5706,7 +5981,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5717,6 +5992,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5741,7 +6020,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5749,7 +6028,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5761,7 +6040,7 @@ ], "properties": { "target": { - "type": "v1beta1.ObjectReference", + "$ref": "v1beta1.ObjectReference", "description": "target is a reference to a secret" } } @@ -5774,7 +6053,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5793,6 +6072,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5806,7 +6089,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta1.Service.labels", + "$ref": "v1beta1.Service.labels", "description": "map of string keys and values that can be used to organize and categorize services" }, "namespace": { @@ -5820,10 +6103,10 @@ }, "portalIP": { "type": "string", - "description": "IP address of the service; usually assigned by the system; if specified, it will be allocated to the service if unused, and creation of the service will fail otherwise; cannot be updated" + "description": "IP address of the service; usually assigned by the system; if specified, it will be allocated to the service if unused, and creation of the service will fail otherwise; cannot be updated; 'None' can be specified for a headless service when proxying is not required" }, "protocol": { - "type": "v1beta1.Protocol", + "$ref": "v1beta1.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" }, "proxyPort": { @@ -5834,16 +6117,16 @@ "publicIPs": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "externally visible IPs (e.g. load balancers) that should be proxied to this service" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selector": { - "type": "v1beta1.Service.selector", + "$ref": "v1beta1.Service.selector", "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified" }, "selfLink": { @@ -5851,11 +6134,11 @@ "description": "URL for the object; populated by the system, read-only" }, "sessionAffinity": { - "type": "v1beta1.AffinityType", + "$ref": "v1beta1.AffinityType", "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5875,7 +6158,7 @@ ], "properties": { "annotations": { - "type": "v1beta1.TypeMeta.annotations", + "$ref": "v1beta1.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5886,6 +6169,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5910,7 +6197,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5918,7 +6205,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only; cannot be updated" } } @@ -5943,7 +6230,7 @@ "description": "volume name; must be a DNS_LABEL and unique within the pod" }, "source": { - "type": "v1beta1.VolumeSource", + "$ref": "v1beta1.VolumeSource", "description": "location and type of volume to mount; at most one of HostDir, EmptyDir, GCEPersistentDisk, or GitRepo; default is EmptyDir" } } @@ -5984,27 +6271,32 @@ "emptyDir", "persistentDisk", "gitRepo", - "secret" + "secret", + "nfs" ], "properties": { "emptyDir": { - "type": "v1beta1.EmptyDirVolumeSource", + "$ref": "v1beta1.EmptyDirVolumeSource", "description": "temporary directory that shares a pod's lifetime" }, "gitRepo": { - "type": "v1beta1.GitRepoVolumeSource", + "$ref": "v1beta1.GitRepoVolumeSource", "description": "git repository at a particular revision" }, "hostDir": { - "type": "v1beta1.HostPathVolumeSource", + "$ref": "v1beta1.HostPathVolumeSource", "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host" }, + "nfs": { + "$ref": "v1beta1.NFSVolumeSource", + "description": "NFS volume that will be mounted in the host machine " + }, "persistentDisk": { - "type": "v1beta1.GCEPersistentDiskVolumeSource", + "$ref": "v1beta1.GCEPersistentDiskVolumeSource", "description": "GCE disk resource attached to the host machine on demand" }, "secret": { - "type": "v1beta1.SecretVolumeSource", + "$ref": "v1beta1.SecretVolumeSource", "description": "secret to populate volume with" } } diff --git a/api/swagger-spec/v1beta2.json b/api/swagger-spec/v1beta2.json index fd47dad4313..441d9769485 100644 --- a/api/swagger-spec/v1beta2.json +++ b/api/swagger-spec/v1beta2.json @@ -235,6 +235,44 @@ "consumes": [ "*/*" ] + }, + { + "type": "void", + "method": "DELETE", + "summary": "delete a Endpoints", + "nickname": "deleteEndpoints", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Endpoints", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": false, + "allowMultiple": false + }, + { + "type": "*v1beta2.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] } ] }, @@ -961,6 +999,14 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta2.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -1375,6 +1421,14 @@ "description": "name of the Namespace", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta2.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -1414,6 +1468,78 @@ } ] }, + { + "path": "/api/v1beta2/namespaces/{name}/finalize", + "description": "API at /api/v1beta2 version v1beta2", + "operations": [ + { + "type": "void", + "method": "PUT", + "summary": "replace the specified Namespace", + "nickname": "replaceNamespace", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false + }, + { + "type": "v1beta2.Namespace", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/api/v1beta2/namespaces/{name}/status", + "description": "API at /api/v1beta2 version v1beta2", + "operations": [ + { + "type": "void", + "method": "PUT", + "summary": "replace the specified Namespace", + "nickname": "replaceNamespace", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false + }, + { + "type": "v1beta2.Namespace", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] + } + ] + }, { "path": "/api/v1beta2/nodes", "description": "API at /api/v1beta2 version v1beta2", @@ -1573,6 +1699,14 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta2.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2045,6 +2179,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "*v1beta2.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2677,6 +2819,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "*v1beta2.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2941,6 +3091,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": false, "allowMultiple": false + }, + { + "type": "*v1beta2.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -3850,6 +4008,10 @@ } ], "models": { + "*v1beta2.DeleteOptions": { + "id": "*v1beta2.DeleteOptions", + "properties": {} + }, "v1beta2.Binding": { "id": "v1beta2.Binding", "required": [ @@ -3858,7 +4020,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -3869,6 +4031,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -3894,7 +4060,7 @@ "description": "name of the pod to bind" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -3902,7 +4068,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -3939,13 +4105,13 @@ ], "properties": { "capabilities": { - "type": "v1beta2.Capabilities", + "$ref": "v1beta2.Capabilities", "description": "capabilities for container; cannot be updated" }, "command": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "command argv array; not executed within a shell; defaults to entrypoint or command in the image; cannot be updated" }, @@ -3966,15 +4132,15 @@ "description": "Docker image name" }, "imagePullPolicy": { - "type": "v1beta2.PullPolicy", + "$ref": "v1beta2.PullPolicy", "description": "image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated" }, "lifecycle": { - "type": "v1beta2.Lifecycle", + "$ref": "v1beta2.Lifecycle", "description": "actions that the management system should take in response to container lifecycle events; cannot be updated" }, "livenessProbe": { - "type": "v1beta2.LivenessProbe", + "$ref": "v1beta2.LivenessProbe", "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated" }, "memory": { @@ -3998,11 +4164,11 @@ "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated" }, "readinessProbe": { - "type": "v1beta2.LivenessProbe", + "$ref": "v1beta2.LivenessProbe", "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated" }, "resources": { - "type": "v1beta2.ResourceRequirements", + "$ref": "v1beta2.ResourceRequirements", "description": "Compute Resources required by this container; cannot be updated" }, "terminationMessagePath": { @@ -4039,19 +4205,23 @@ "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed" }, "dnsPolicy": { - "type": "v1beta2.DNSPolicy", + "$ref": "v1beta2.DNSPolicy", "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'" }, + "hostNetwork": { + "type": "boolean", + "description": "host networking requested for this pod" + }, "id": { "type": "string", "description": "manifest name; must be a DNS_SUBDOMAIN; cannot be updated" }, "restartPolicy": { - "type": "v1beta2.RestartPolicy", + "$ref": "v1beta2.RestartPolicy", "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever" }, "uuid": { - "type": "types.UID", + "$ref": "types.UID", "description": "manifest UUID; cannot be updated" }, "version": { @@ -4092,7 +4262,7 @@ "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod" }, "protocol": { - "type": "v1beta2.Protocol", + "$ref": "v1beta2.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" } } @@ -4104,7 +4274,7 @@ ], "properties": { "medium": { - "type": "v1beta2.StorageType", + "$ref": "v1beta2.StorageType", "description": "type of storage used to back the volume; must be an empty string (default) or Memory" } } @@ -4144,7 +4314,7 @@ "description": "specific resourceVersion to which this reference is made, if any: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "uid of the referent" } } @@ -4156,7 +4326,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4167,10 +4337,14 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "endpoints": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "list of endpoints corresponding to a service, of the form address:port, such as 10.10.1.1:1909" }, @@ -4191,11 +4365,11 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "protocol": { - "type": "v1beta2.Protocol", + "$ref": "v1beta2.Protocol", "description": "IP protocol for endpoint ports; must be UDP or TCP; TCP if unspecified" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4210,7 +4384,7 @@ "description": "list of references to objects providing the endpoints" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -4222,7 +4396,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4233,6 +4407,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4257,7 +4435,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4265,7 +4443,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -4290,7 +4468,7 @@ "id": "v1beta2.Event", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4306,6 +4484,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "firstTimestamp": { "type": "string", "description": "the time at which the event was first recorded" @@ -4323,7 +4505,7 @@ "description": "name of the object; must be a DNS_SUBDOMAIN and unique among all objects of the same kind within the same namespace; used in resource URLs; cannot be updated" }, "involvedObject": { - "type": "v1beta2.ObjectReference", + "$ref": "v1beta2.ObjectReference", "description": "object that this event is about" }, "kind": { @@ -4347,7 +4529,7 @@ "description": "short, machine understandable string that gives the reason for the transition into the object's current status" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4367,7 +4549,7 @@ "description": "time at which the client recorded the event" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -4379,7 +4561,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4390,6 +4572,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4414,7 +4600,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4422,7 +4608,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -4433,12 +4619,16 @@ "command": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy" } } }, + "v1beta2.FinalizerName": { + "id": "v1beta2.FinalizerName", + "properties": {} + }, "v1beta2.GCEPersistentDiskVolumeSource": { "id": "v1beta2.GCEPersistentDiskVolumeSource", "required": [ @@ -4502,15 +4692,15 @@ "id": "v1beta2.Handler", "properties": { "exec": { - "type": "v1beta2.ExecAction", + "$ref": "v1beta2.ExecAction", "description": "exec-based handler" }, "httpGet": { - "type": "v1beta2.HTTPGetAction", + "$ref": "v1beta2.HTTPGetAction", "description": "HTTP-based handler" }, "tcpSocket": { - "type": "v1beta2.TCPSocketAction", + "$ref": "v1beta2.TCPSocketAction", "description": "TCP-based handler; TCP hooks not yet supported" } } @@ -4531,11 +4721,11 @@ "id": "v1beta2.Lifecycle", "properties": { "postStart": { - "type": "v1beta2.Handler", + "$ref": "v1beta2.Handler", "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes" }, "preStop": { - "type": "v1beta2.Handler", + "$ref": "v1beta2.Handler", "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes" } } @@ -4544,7 +4734,7 @@ "id": "v1beta2.LimitRange", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4555,6 +4745,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4572,7 +4766,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4580,11 +4774,11 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta2.LimitRangeSpec", + "$ref": "v1beta2.LimitRangeSpec", "description": "spec defines the limits enforced" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -4593,15 +4787,15 @@ "id": "v1beta2.LimitRangeItem", "properties": { "max": { - "type": "v1beta2.ResourceList", + "$ref": "v1beta2.ResourceList", "description": "max usage constraints on this kind by resource name" }, "min": { - "type": "v1beta2.ResourceList", + "$ref": "v1beta2.ResourceList", "description": "min usage constraints on this kind by resource name" }, "type": { - "type": "v1beta2.LimitType", + "$ref": "v1beta2.LimitType", "description": "type of resource that this limit applies to" } } @@ -4613,7 +4807,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4624,6 +4818,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4648,7 +4846,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4656,7 +4854,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -4680,11 +4878,11 @@ "id": "v1beta2.LivenessProbe", "properties": { "exec": { - "type": "v1beta2.ExecAction", + "$ref": "v1beta2.ExecAction", "description": "parameters for exec-based liveness probe" }, "httpGet": { - "type": "v1beta2.HTTPGetAction", + "$ref": "v1beta2.HTTPGetAction", "description": "parameters for HTTP-based liveness probe" }, "initialDelaySeconds": { @@ -4693,7 +4891,7 @@ "description": "number of seconds after the container has started before liveness probes are initiated" }, "tcpSocket": { - "type": "v1beta2.TCPSocketAction", + "$ref": "v1beta2.TCPSocketAction", "description": "parameters for TCP-based liveness probe" }, "timeoutSeconds": { @@ -4707,7 +4905,7 @@ "id": "v1beta2.Minion", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4718,6 +4916,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "externalID": { "type": "string", "description": "external id of the node assigned by some machine database (e.g. a cloud provider)" @@ -4739,7 +4941,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta2.Minion.labels", + "$ref": "v1beta2.Minion.labels", "description": "map of string keys and values that can be used to organize and categorize minions; labels of a minion assigned by the scheduler must match the scheduled pod's nodeSelector" }, "namespace": { @@ -4751,11 +4953,11 @@ "description": "IP range assigned to the node" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "resources": { - "type": "v1beta2.NodeResources", + "$ref": "v1beta2.NodeResources", "description": "characterization of node resources" }, "selfLink": { @@ -4763,11 +4965,11 @@ "description": "URL for the object; populated by the system, read-only" }, "status": { - "type": "v1beta2.NodeStatus", + "$ref": "v1beta2.NodeStatus", "description": "current status of node" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" }, "unschedulable": { @@ -4787,7 +4989,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4798,6 +5000,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4822,7 +5028,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4830,16 +5036,37 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } }, + "v1beta2.NFSVolumeSource": { + "id": "v1beta2.NFSVolumeSource", + "required": [ + "server", + "path" + ], + "properties": { + "path": { + "type": "string", + "description": "the path that is exported by the NFS server" + }, + "readOnly": { + "type": "boolean", + "description": "forces the NFS export to be mounted with read-only permissions" + }, + "server": { + "type": "string", + "description": "the hostname or IP address of the NFS server" + } + } + }, "v1beta2.Namespace": { "id": "v1beta2.Namespace", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4850,6 +5077,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4863,7 +5094,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta2.Namespace.labels", + "$ref": "v1beta2.Namespace.labels", "description": "map of string keys and values that can be used to organize and categorize namespaces" }, "namespace": { @@ -4871,7 +5102,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4879,15 +5110,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta2.NamespaceSpec", + "$ref": "v1beta2.NamespaceSpec", "description": "spec defines the behavior of the Namespace" }, "status": { - "type": "v1beta2.NamespaceStatus", + "$ref": "v1beta2.NamespaceStatus", "description": "status describes the current status of a Namespace; read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -4903,7 +5134,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -4914,6 +5145,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4938,7 +5173,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -4946,20 +5181,28 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } }, "v1beta2.NamespaceSpec": { "id": "v1beta2.NamespaceSpec", - "properties": {} + "properties": { + "finalizers": { + "type": "array", + "items": { + "$ref": "v1beta2.FinalizerName" + }, + "description": "an opaque list of values that must be empty to permanently remove object from storage" + } + } }, "v1beta2.NamespaceStatus": { "id": "v1beta2.NamespaceStatus", "properties": { "phase": { - "type": "v1beta2.NamespacePhase", + "$ref": "v1beta2.NamespacePhase", "description": "phase is the current lifecycle phase of the namespace" } } @@ -4976,7 +5219,7 @@ "description": "string representation of the address" }, "type": { - "type": "v1beta2.NodeAddressType", + "$ref": "v1beta2.NodeAddressType", "description": "type of the node address, e.g. external ip, internal ip, hostname, etc" } } @@ -4989,7 +5232,7 @@ ], "properties": { "kind": { - "type": "v1beta2.NodeConditionKind", + "$ref": "v1beta2.NodeConditionKind", "description": "kind of the condition, one of Reachable, Ready" }, "lastProbeTime": { @@ -5009,7 +5252,7 @@ "description": "(brief) reason for the condition's last transition" }, "status": { - "type": "v1beta2.ConditionStatus", + "$ref": "v1beta2.ConditionStatus", "description": "status of the condition, one of Full, None, Unknown" } } @@ -5018,7 +5261,7 @@ "id": "v1beta2.NodeResources", "properties": { "capacity": { - "type": "v1beta2.ResourceList", + "$ref": "v1beta2.ResourceList", "description": "resource capacity of a node represented as a map of resource name to quantity of resource" } } @@ -5041,11 +5284,11 @@ "description": "conditions is an array of current node conditions" }, "nodeInfo": { - "type": "v1beta2.NodeSystemInfo", + "$ref": "v1beta2.NodeSystemInfo", "description": "node identity is a set of ids/uuids to uniquely identify the node" }, "phase": { - "type": "v1beta2.NodePhase", + "$ref": "v1beta2.NodePhase", "description": "node phase is the current lifecycle phase of the node" } } @@ -5095,7 +5338,7 @@ "description": "specific resourceVersion to which this reference is made, if any: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "uid of the referent" } } @@ -5104,7 +5347,7 @@ "id": "v1beta2.Pod", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5116,11 +5359,15 @@ "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, "currentState": { - "type": "v1beta2.PodState", + "$ref": "v1beta2.PodState", "description": "current state of the pod; populated by the system, read-only" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "desiredState": { - "type": "v1beta2.PodState", + "$ref": "v1beta2.PodState", "description": "specification of the desired state of the pod" }, "generateName": { @@ -5136,7 +5383,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta2.Pod.labels", + "$ref": "v1beta2.Pod.labels", "description": "map of string keys and values that can be used to organize and categorize pods; may match selectors of replication controllers and services" }, "namespace": { @@ -5144,11 +5391,11 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "nodeSelector": { - "type": "v1beta2.Pod.nodeSelector", + "$ref": "v1beta2.Pod.nodeSelector", "description": "selector which must match a node's labels for the pod to be scheduled on that node" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5156,7 +5403,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5177,11 +5424,11 @@ ], "properties": { "kind": { - "type": "v1beta2.PodConditionKind", + "$ref": "v1beta2.PodConditionKind", "description": "kind of the condition, currently only Ready" }, "status": { - "type": "v1beta2.ConditionStatus", + "$ref": "v1beta2.ConditionStatus", "description": "status of the condition, one of Full, None, Unknown" } } @@ -5193,7 +5440,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5204,6 +5451,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5228,7 +5479,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5236,7 +5487,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5260,11 +5511,11 @@ "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" }, "info": { - "type": "v1beta2.PodInfo", + "$ref": "v1beta2.PodInfo", "description": "map of container name to container status" }, "manifest": { - "type": "v1beta2.ContainerManifest", + "$ref": "v1beta2.ContainerManifest", "description": "manifest of containers and volumes comprising the pod" }, "message": { @@ -5276,7 +5527,7 @@ "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated" }, "status": { - "type": "v1beta2.PodStatus", + "$ref": "v1beta2.PodStatus", "description": "current condition of the pod, Waiting, Running, or Terminated" } } @@ -5285,19 +5536,19 @@ "id": "v1beta2.PodTemplate", "properties": { "annotations": { - "type": "v1beta2.PodTemplate.annotations", + "$ref": "v1beta2.PodTemplate.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about pods created from the template" }, "desiredState": { - "type": "v1beta2.PodState", + "$ref": "v1beta2.PodState", "description": "specification of the desired state of pods created from this template" }, "labels": { - "type": "v1beta2.PodTemplate.labels", + "$ref": "v1beta2.PodTemplate.labels", "description": "map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services" }, "nodeSelector": { - "type": "v1beta2.PodTemplate.nodeSelector", + "$ref": "v1beta2.PodTemplate.nodeSelector", "description": "a selector which must be true for the pod to fit on a node" } } @@ -5318,7 +5569,7 @@ "id": "v1beta2.ReplicationController", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5330,11 +5581,15 @@ "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, "currentState": { - "type": "v1beta2.ReplicationControllerState", + "$ref": "v1beta2.ReplicationControllerState", "description": "current state of the replication controller; populated by the system, read-only" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "desiredState": { - "type": "v1beta2.ReplicationControllerState", + "$ref": "v1beta2.ReplicationControllerState", "description": "specification of the desired state of the replication controller" }, "generateName": { @@ -5350,7 +5605,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta2.ReplicationController.labels", + "$ref": "v1beta2.ReplicationController.labels", "description": "map of string keys and values that can be used to organize and categorize replication controllers" }, "namespace": { @@ -5358,7 +5613,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5366,7 +5621,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5382,7 +5637,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5393,6 +5648,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5417,7 +5676,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5425,7 +5684,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5437,11 +5696,11 @@ ], "properties": { "podTemplate": { - "type": "v1beta2.PodTemplate", + "$ref": "v1beta2.PodTemplate", "description": "template for pods to be created by this replication controller when the observed number of replicas is less than the desired number of replicas" }, "replicaSelector": { - "type": "v1beta2.ReplicationControllerState.replicaSelector", + "$ref": "v1beta2.ReplicationControllerState.replicaSelector", "description": "label keys and values that must match in order to be controlled by this replication controller" }, "replicas": { @@ -5459,7 +5718,7 @@ "id": "v1beta2.ResourceQuota", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5470,6 +5729,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5483,7 +5746,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta2.ResourceQuota.labels", + "$ref": "v1beta2.ResourceQuota.labels", "description": "map of string keys and values that can be used to organize and categorize resource quotas" }, "namespace": { @@ -5491,7 +5754,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5499,15 +5762,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta2.ResourceQuotaSpec", + "$ref": "v1beta2.ResourceQuotaSpec", "description": "spec defines the desired quota" }, "status": { - "type": "v1beta2.ResourceQuotaStatus", + "$ref": "v1beta2.ResourceQuotaStatus", "description": "status defines the actual enforced quota and current usage" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5523,7 +5786,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5534,6 +5797,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5558,7 +5825,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5566,7 +5833,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5575,7 +5842,7 @@ "id": "v1beta2.ResourceQuotaSpec", "properties": { "hard": { - "type": "v1beta2.ResourceList", + "$ref": "v1beta2.ResourceList", "description": "hard is the set of desired hard limits for each named resource" } } @@ -5584,11 +5851,11 @@ "id": "v1beta2.ResourceQuotaStatus", "properties": { "hard": { - "type": "v1beta2.ResourceList", + "$ref": "v1beta2.ResourceList", "description": "hard is the set of enforced hard limits for each named resource" }, "used": { - "type": "v1beta2.ResourceList", + "$ref": "v1beta2.ResourceList", "description": "used is the current observed total usage of the resource in the namespace" } } @@ -5597,8 +5864,12 @@ "id": "v1beta2.ResourceRequirements", "properties": { "limits": { - "type": "v1beta2.ResourceList", + "$ref": "v1beta2.ResourceList", "description": "Maximum amount of compute resources allowed" + }, + "requests": { + "$ref": "v1beta2.ResourceList", + "description": "Minimum amount of resources requested" } } }, @@ -5606,15 +5877,15 @@ "id": "v1beta2.RestartPolicy", "properties": { "always": { - "type": "v1beta2.RestartPolicyAlways", + "$ref": "v1beta2.RestartPolicyAlways", "description": "always restart the container after termination" }, "never": { - "type": "v1beta2.RestartPolicyNever", + "$ref": "v1beta2.RestartPolicyNever", "description": "never restart the container" }, "onFailure": { - "type": "v1beta2.RestartPolicyOnFailure", + "$ref": "v1beta2.RestartPolicyOnFailure", "description": "restart the container if it fails for any reason, but not if it succeeds (exit 0)" } } @@ -5635,7 +5906,7 @@ "id": "v1beta2.Secret", "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5647,9 +5918,13 @@ "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, "data": { - "type": "v1beta2.Secret.data", + "$ref": "v1beta2.Secret.data", "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN. Each value must be a base64 encoded string" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5667,7 +5942,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5675,11 +5950,11 @@ "description": "URL for the object; populated by the system, read-only" }, "type": { - "type": "v1beta2.SecretType", + "$ref": "v1beta2.SecretType", "description": "type facilitates programmatic handling of secret data" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5695,7 +5970,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5706,6 +5981,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5730,7 +6009,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5738,7 +6017,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5750,7 +6029,7 @@ ], "properties": { "target": { - "type": "v1beta2.ObjectReference", + "$ref": "v1beta2.ObjectReference", "description": "target is a reference to a secret" } } @@ -5763,7 +6042,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5782,6 +6061,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5795,7 +6078,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta2.Service.labels", + "$ref": "v1beta2.Service.labels", "description": "map of string keys and values that can be used to organize and categorize services" }, "namespace": { @@ -5809,10 +6092,10 @@ }, "portalIP": { "type": "string", - "description": "IP address of the service; usually assigned by the system; if specified, it will be allocated to the service if unused, and creation of the service will fail otherwise; cannot be updated" + "description": "IP address of the service; usually assigned by the system; if specified, it will be allocated to the service if unused, and creation of the service will fail otherwise; cannot be updated; 'None' can be specified for a headless service when proxying is not required" }, "protocol": { - "type": "v1beta2.Protocol", + "$ref": "v1beta2.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" }, "proxyPort": { @@ -5823,16 +6106,16 @@ "publicIPs": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "externally visible IPs (e.g. load balancers) that should be proxied to this service" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selector": { - "type": "v1beta2.Service.selector", + "$ref": "v1beta2.Service.selector", "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified" }, "selfLink": { @@ -5840,11 +6123,11 @@ "description": "URL for the object; populated by the system, read-only" }, "sessionAffinity": { - "type": "v1beta2.AffinityType", + "$ref": "v1beta2.AffinityType", "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5864,7 +6147,7 @@ ], "properties": { "annotations": { - "type": "v1beta2.TypeMeta.annotations", + "$ref": "v1beta2.TypeMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about the object" }, "apiVersion": { @@ -5875,6 +6158,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5899,7 +6186,7 @@ "description": "namespace to which the object belongs; must be a DNS_SUBDOMAIN; 'default' by default; cannot be updated" }, "resourceVersion": { - "type": "uint64", + "$ref": "uint64", "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "selfLink": { @@ -5907,7 +6194,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system, read-only" } } @@ -5932,7 +6219,7 @@ "description": "volume name; must be a DNS_LABEL and unique within the pod" }, "source": { - "type": "v1beta2.VolumeSource", + "$ref": "v1beta2.VolumeSource", "description": "location and type of volume to mount; at most one of HostDir, EmptyDir, GCEPersistentDisk, or GitRepo; default is EmptyDir" } } @@ -5965,27 +6252,32 @@ "emptyDir", "persistentDisk", "gitRepo", - "secret" + "secret", + "nfs" ], "properties": { "emptyDir": { - "type": "v1beta2.EmptyDirVolumeSource", + "$ref": "v1beta2.EmptyDirVolumeSource", "description": "temporary directory that shares a pod's lifetime" }, "gitRepo": { - "type": "v1beta2.GitRepoVolumeSource", + "$ref": "v1beta2.GitRepoVolumeSource", "description": "git repository at a particular revision" }, "hostDir": { - "type": "v1beta2.HostPathVolumeSource", + "$ref": "v1beta2.HostPathVolumeSource", "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host" }, + "nfs": { + "$ref": "v1beta2.NFSVolumeSource", + "description": "NFS volume that will be mounted in the host machine" + }, "persistentDisk": { - "type": "v1beta2.GCEPersistentDiskVolumeSource", + "$ref": "v1beta2.GCEPersistentDiskVolumeSource", "description": "GCE disk resource attached to the host machine on demand" }, "secret": { - "type": "v1beta2.SecretVolumeSource", + "$ref": "v1beta2.SecretVolumeSource", "description": "secret to populate volume" } } diff --git a/api/swagger-spec/v1beta3.json b/api/swagger-spec/v1beta3.json index ae690f4ce2b..78c5281d78a 100644 --- a/api/swagger-spec/v1beta3.json +++ b/api/swagger-spec/v1beta3.json @@ -235,6 +235,44 @@ "consumes": [ "*/*" ] + }, + { + "type": "void", + "method": "DELETE", + "summary": "delete a Endpoints", + "nickname": "deleteEndpoints", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Endpoints", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespaces", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "*v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] } ] }, @@ -1075,6 +1113,14 @@ "description": "name of the Namespace", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -1114,6 +1160,78 @@ } ] }, + { + "path": "/api/v1beta3/namespaces/{name}/finalize", + "description": "API at /api/v1beta3 version v1beta3", + "operations": [ + { + "type": "void", + "method": "PUT", + "summary": "replace the specified Namespace", + "nickname": "replaceNamespace", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false + }, + { + "type": "v1beta3.Namespace", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/api/v1beta3/namespaces/{name}/status", + "description": "API at /api/v1beta3 version v1beta3", + "operations": [ + { + "type": "void", + "method": "PUT", + "summary": "replace the specified Namespace", + "nickname": "replaceNamespace", + "parameters": [ + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Namespace", + "required": true, + "allowMultiple": false + }, + { + "type": "v1beta3.Namespace", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "produces": [ + "application/json" + ], + "consumes": [ + "*/*" + ] + } + ] + }, { "path": "/api/v1beta3/nodes", "description": "API at /api/v1beta3 version v1beta3", @@ -1273,6 +1391,14 @@ "description": "name of the Node", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -1745,6 +1871,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2415,6 +2549,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -2717,6 +2859,14 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false + }, + { + "type": "*v1beta3.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false } ], "produces": [ @@ -3740,6 +3890,10 @@ } ], "models": { + "*v1beta3.DeleteOptions": { + "id": "*v1beta3.DeleteOptions", + "properties": {} + }, "v1beta3.Binding": { "id": "v1beta3.Binding", "required": [ @@ -3747,7 +3901,7 @@ ], "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -3758,6 +3912,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -3767,7 +3925,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -3787,11 +3945,11 @@ "description": "URL for the object; populated by the system, read-only" }, "target": { - "type": "v1beta3.ObjectReference", + "$ref": "v1beta3.ObjectReference", "description": "an object to bind to" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -3828,13 +3986,13 @@ ], "properties": { "capabilities": { - "type": "v1beta3.Capabilities", + "$ref": "v1beta3.Capabilities", "description": "capabilities for container; cannot be updated" }, "command": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "command argv array; not executed within a shell; defaults to entrypoint or command in the image; cannot be updated" }, @@ -3850,15 +4008,15 @@ "description": "Docker image name" }, "imagePullPolicy": { - "type": "v1beta3.PullPolicy", + "$ref": "v1beta3.PullPolicy", "description": "image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated" }, "lifecycle": { - "type": "v1beta3.Lifecycle", + "$ref": "v1beta3.Lifecycle", "description": "actions that the management system should take in response to container lifecycle events; cannot be updated" }, "livenessProbe": { - "type": "v1beta3.Probe", + "$ref": "v1beta3.Probe", "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated" }, "name": { @@ -3877,11 +4035,11 @@ "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated" }, "readinessProbe": { - "type": "v1beta3.Probe", + "$ref": "v1beta3.Probe", "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated" }, "resources": { - "type": "v1beta3.ResourceRequirements", + "$ref": "v1beta3.ResourceRequirements", "description": "Compute Resources required by this container; cannot be updated" }, "terminationMessagePath": { @@ -3926,7 +4084,7 @@ "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod" }, "protocol": { - "type": "v1beta3.Protocol", + "$ref": "v1beta3.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" } } @@ -3948,7 +4106,7 @@ "description": "destination port of this endpoint" }, "targetRef": { - "type": "v1beta3.ObjectReference", + "$ref": "v1beta3.ObjectReference", "description": "reference to object providing the endpoint" } } @@ -3957,7 +4115,7 @@ "id": "v1beta3.Endpoints", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -3968,6 +4126,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "endpoints": { "type": "array", "items": { @@ -3984,7 +4146,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -3996,7 +4158,7 @@ "description": "namespace of the object; cannot be updated" }, "protocol": { - "type": "v1beta3.Protocol", + "$ref": "v1beta3.Protocol", "description": "IP protocol for endpoint ports; must be UDP or TCP; TCP if unspecified" }, "resourceVersion": { @@ -4008,7 +4170,7 @@ "description": "URL for the object; populated by the system, read-only" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -4064,7 +4226,7 @@ "id": "v1beta3.Event", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -4080,6 +4242,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "firstTimestamp": { "type": "string", "description": "the time at which the event was first recorded" @@ -4089,7 +4255,7 @@ "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" }, "involvedObject": { - "type": "v1beta3.ObjectReference", + "$ref": "v1beta3.ObjectReference", "description": "object this event is about" }, "kind": { @@ -4097,7 +4263,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "lastTimestamp": { @@ -4129,11 +4295,11 @@ "description": "URL for the object; populated by the system, read-only" }, "source": { - "type": "v1beta3.EventSource", + "$ref": "v1beta3.EventSource", "description": "component reporting this event" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -4188,12 +4354,16 @@ "command": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy" } } }, + "v1beta3.FinalizerName": { + "id": "v1beta3.FinalizerName", + "properties": {} + }, "v1beta3.HTTPGetAction": { "id": "v1beta3.HTTPGetAction", "properties": { @@ -4215,15 +4385,15 @@ "id": "v1beta3.Handler", "properties": { "exec": { - "type": "v1beta3.ExecAction", + "$ref": "v1beta3.ExecAction", "description": "exec-based handler" }, "httpGet": { - "type": "v1beta3.HTTPGetAction", + "$ref": "v1beta3.HTTPGetAction", "description": "HTTP-based handler" }, "tcpSocket": { - "type": "v1beta3.TCPSocketAction", + "$ref": "v1beta3.TCPSocketAction", "description": "TCP-based handler; TCP hooks not yet supported" } } @@ -4232,11 +4402,11 @@ "id": "v1beta3.Lifecycle", "properties": { "postStart": { - "type": "v1beta3.Handler", + "$ref": "v1beta3.Handler", "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes" }, "preStop": { - "type": "v1beta3.Handler", + "$ref": "v1beta3.Handler", "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes" } } @@ -4245,7 +4415,7 @@ "id": "v1beta3.LimitRange", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -4256,6 +4426,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4265,7 +4439,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -4285,11 +4459,11 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.LimitRangeSpec", + "$ref": "v1beta3.LimitRangeSpec", "description": "spec defines the limits enforced; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -4298,15 +4472,15 @@ "id": "v1beta3.LimitRangeItem", "properties": { "max": { - "type": "v1beta3.ResourceList", + "$ref": "v1beta3.ResourceList", "description": "max usage constraints on this kind by resource name" }, "min": { - "type": "v1beta3.ResourceList", + "$ref": "v1beta3.ResourceList", "description": "min usage constraints on this kind by resource name" }, "type": { - "type": "v1beta3.LimitType", + "$ref": "v1beta3.LimitType", "description": "type of resource that this limit applies to" } } @@ -4361,7 +4535,7 @@ "id": "v1beta3.Namespace", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -4372,6 +4546,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4381,7 +4559,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -4401,15 +4579,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.NamespaceSpec", + "$ref": "v1beta3.NamespaceSpec", "description": "spec defines the behavior of the Namespace; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "status": { - "type": "v1beta3.NamespaceStatus", + "$ref": "v1beta3.NamespaceStatus", "description": "status describes the current status of a Namespace; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -4447,13 +4625,21 @@ }, "v1beta3.NamespaceSpec": { "id": "v1beta3.NamespaceSpec", - "properties": {} + "properties": { + "finalizers": { + "type": "array", + "items": { + "$ref": "v1beta3.FinalizerName" + }, + "description": "an opaque list of values that must be empty to permanently remove object from storage" + } + } }, "v1beta3.NamespaceStatus": { "id": "v1beta3.NamespaceStatus", "properties": { "phase": { - "type": "v1beta3.NamespacePhase", + "$ref": "v1beta3.NamespacePhase", "description": "phase is the current lifecycle phase of the namespace" } } @@ -4462,7 +4648,7 @@ "id": "v1beta3.Node", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -4473,6 +4659,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4482,7 +4672,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -4502,15 +4692,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.NodeSpec", + "$ref": "v1beta3.NodeSpec", "description": "specification of a node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "status": { - "type": "v1beta3.NodeStatus", + "$ref": "v1beta3.NodeStatus", "description": "most recently observed status of the node; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -4526,7 +4716,7 @@ "type": "string" }, "type": { - "type": "v1beta3.NodeAddressType" + "$ref": "v1beta3.NodeAddressType" } } }, @@ -4554,11 +4744,11 @@ "description": "(brief) reason for the condition's last transition" }, "status": { - "type": "v1beta3.ConditionStatus", + "$ref": "v1beta3.ConditionStatus", "description": "status of the condition, one of Full, None, Unknown" }, "type": { - "type": "v1beta3.NodeConditionType", + "$ref": "v1beta3.NodeConditionType", "description": "type of node condition, one of Reachable, Ready" } } @@ -4598,7 +4788,7 @@ "id": "v1beta3.NodeSpec", "properties": { "capacity": { - "type": "v1beta3.ResourceList", + "$ref": "v1beta3.ResourceList", "description": "compute resource capacity of the node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/resources.md" }, "externalID": { @@ -4633,10 +4823,10 @@ "description": "list of node conditions observed" }, "nodeInfo": { - "type": "v1beta3.NodeSystemInfo" + "$ref": "v1beta3.NodeSystemInfo" }, "phase": { - "type": "v1beta3.NodePhase", + "$ref": "v1beta3.NodePhase", "description": "most recently observed lifecycle phase of the node" } } @@ -4684,7 +4874,7 @@ "description": "specific resourceVersion to which this reference is made, if any: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "uid of the referent" } } @@ -4693,7 +4883,7 @@ "id": "v1beta3.Pod", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -4704,6 +4894,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4713,7 +4907,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -4733,15 +4927,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.PodSpec", + "$ref": "v1beta3.PodSpec", "description": "specification of the desired behavior of the pod; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "status": { - "type": "v1beta3.PodStatus", + "$ref": "v1beta3.PodStatus", "description": "most recently observed status of the pod; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -4754,11 +4948,11 @@ ], "properties": { "status": { - "type": "v1beta3.ConditionStatus", + "$ref": "v1beta3.ConditionStatus", "description": "status of the condition, one of Full, None, Unknown" }, "type": { - "type": "v1beta3.PodConditionType", + "$ref": "v1beta3.PodConditionType", "description": "kind of the condition" } } @@ -4806,22 +5000,26 @@ "items": { "$ref": "v1beta3.Container" }, - "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed" + "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod" }, "dnsPolicy": { - "type": "v1beta3.DNSPolicy", + "$ref": "v1beta3.DNSPolicy", "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'" }, "host": { "type": "string", "description": "host requested for this pod" }, + "hostNetwork": { + "type": "boolean", + "description": "host networking requested for this pod" + }, "nodeSelector": { - "type": "v1beta3.PodSpec.nodeSelector", + "$ref": "v1beta3.PodSpec.nodeSelector", "description": "selector which must match a node's labels for the pod to be scheduled on that node" }, "restartPolicy": { - "type": "v1beta3.RestartPolicy", + "$ref": "v1beta3.RestartPolicy", "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever" }, "volumes": { @@ -4856,7 +5054,7 @@ "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled" }, "info": { - "type": "v1beta3.PodInfo", + "$ref": "v1beta3.PodInfo", "description": "map of container name to container status" }, "message": { @@ -4864,7 +5062,7 @@ "description": "human readable message indicating details about why the pod is in this condition" }, "phase": { - "type": "v1beta3.PodPhase", + "$ref": "v1beta3.PodPhase", "description": "current condition of the pod." }, "podIP": { @@ -4877,19 +5075,23 @@ "id": "v1beta3.PodTemplateSpec", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "creationTimestamp": { "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -4909,11 +5111,11 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.PodSpec", + "$ref": "v1beta3.PodSpec", "description": "specification of the desired behavior of the pod; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -4922,11 +5124,11 @@ "id": "v1beta3.Probe", "properties": { "exec": { - "type": "v1beta3.ExecAction", + "$ref": "v1beta3.ExecAction", "description": "exec-based handler" }, "httpGet": { - "type": "v1beta3.HTTPGetAction", + "$ref": "v1beta3.HTTPGetAction", "description": "HTTP-based handler" }, "initialDelaySeconds": { @@ -4935,7 +5137,7 @@ "description": "number of seconds after the container has started before liveness probes are initiated" }, "tcpSocket": { - "type": "v1beta3.TCPSocketAction", + "$ref": "v1beta3.TCPSocketAction", "description": "TCP-based handler; TCP hooks not yet supported" }, "timeoutSeconds": { @@ -4949,7 +5151,7 @@ "id": "v1beta3.ReplicationController", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -4960,6 +5162,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -4969,7 +5175,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -4989,15 +5195,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.ReplicationControllerSpec", + "$ref": "v1beta3.ReplicationControllerSpec", "description": "specification of the desired behavior of the replication controller; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "status": { - "type": "v1beta3.ReplicationControllerStatus", + "$ref": "v1beta3.ReplicationControllerStatus", "description": "most recently observed status of the replication controller; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -5045,15 +5251,15 @@ "description": "number of replicas desired" }, "selector": { - "type": "v1beta3.ReplicationControllerSpec.selector", + "$ref": "v1beta3.ReplicationControllerSpec.selector", "description": "label keys and values that must match in order to be controlled by this replication controller" }, "template": { - "type": "v1beta3.PodTemplateSpec", + "$ref": "v1beta3.PodTemplateSpec", "description": "object that describes the pod that will be created if insufficient replicas are detected; takes precendence over templateRef" }, "templateRef": { - "type": "v1beta3.ObjectReference", + "$ref": "v1beta3.ObjectReference", "description": "reference to an object that describes the pod that will be created if insufficient replicas are detected" } } @@ -5079,7 +5285,7 @@ "id": "v1beta3.ResourceQuota", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -5090,6 +5296,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5099,7 +5309,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -5119,15 +5329,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.ResourceQuotaSpec", + "$ref": "v1beta3.ResourceQuotaSpec", "description": "spec defines the desired quota; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "status": { - "type": "v1beta3.ResourceQuotaStatus", + "$ref": "v1beta3.ResourceQuotaStatus", "description": "status defines the actual enforced quota and current usage; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -5167,7 +5377,7 @@ "id": "v1beta3.ResourceQuotaSpec", "properties": { "hard": { - "type": "v1beta3.ResourceList", + "$ref": "v1beta3.ResourceList", "description": "hard is the set of desired hard limits for each named resource" } } @@ -5176,11 +5386,11 @@ "id": "v1beta3.ResourceQuotaStatus", "properties": { "hard": { - "type": "v1beta3.ResourceList", + "$ref": "v1beta3.ResourceList", "description": "hard is the set of enforced hard limits for each named resource" }, "used": { - "type": "v1beta3.ResourceList", + "$ref": "v1beta3.ResourceList", "description": "used is the current observed total usage of the resource in the namespace" } } @@ -5189,8 +5399,12 @@ "id": "v1beta3.ResourceRequirements", "properties": { "limits": { - "type": "v1beta3.ResourceList", + "$ref": "v1beta3.ResourceList", "description": "Maximum amount of compute resources allowed" + }, + "requests": { + "$ref": "v1beta3.ResourceList", + "description": "Minimum amount of resources requested" } } }, @@ -5198,7 +5412,7 @@ "id": "v1beta3.Secret", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -5210,9 +5424,13 @@ "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, "data": { - "type": "v1beta3.Secret.data", + "$ref": "v1beta3.Secret.data", "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN. Each value must be a base64 encoded string" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5222,7 +5440,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -5242,11 +5460,11 @@ "description": "URL for the object; populated by the system, read-only" }, "type": { - "type": "v1beta3.SecretType", + "$ref": "v1beta3.SecretType", "description": "type facilitates programmatic handling of secret data" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -5290,7 +5508,7 @@ "id": "v1beta3.Service", "properties": { "annotations": { - "type": "v1beta3.ObjectMeta.annotations", + "$ref": "v1beta3.ObjectMeta.annotations", "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects" }, "apiVersion": { @@ -5301,6 +5519,10 @@ "type": "string", "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists" }, + "deletionTimestamp": { + "type": "string", + "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested" + }, "generateName": { "type": "string", "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified" @@ -5310,7 +5532,7 @@ "description": "kind of object, in CamelCase; cannot be updated" }, "labels": { - "type": "v1beta3.ObjectMeta.labels", + "$ref": "v1beta3.ObjectMeta.labels", "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services" }, "name": { @@ -5330,15 +5552,15 @@ "description": "URL for the object; populated by the system, read-only" }, "spec": { - "type": "v1beta3.ServiceSpec", + "$ref": "v1beta3.ServiceSpec", "description": "specification of the desired behavior of the service; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "status": { - "type": "v1beta3.ServiceStatus", + "$ref": "v1beta3.ServiceStatus", "description": "most recently observed status of the service; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status" }, "uid": { - "type": "types.UID", + "$ref": "types.UID", "description": "unique UUID across space and time; populated by the system; read-only" } } @@ -5382,10 +5604,6 @@ "portalIP" ], "properties": { - "containerPort": { - "type": "string", - "description": "number or name of the port to access on the containers belonging to pods targeted by the service; defaults to the container's first open port" - }, "createExternalLoadBalancer": { "type": "boolean", "description": "set up a cloud-provider-specific load balancer on an external IP" @@ -5399,23 +5617,27 @@ "type": "string" }, "protocol": { - "type": "v1beta3.Protocol", + "$ref": "v1beta3.Protocol", "description": "protocol for port; must be UDP or TCP; TCP if unspecified" }, "publicIPs": { "type": "array", "items": { - "$ref": "string" + "type": "string" }, "description": "externally visible IPs (e.g. load balancers) that should be proxied to this service" }, "selector": { - "type": "v1beta3.ServiceSpec.selector", + "$ref": "v1beta3.ServiceSpec.selector", "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified" }, "sessionAffinity": { - "type": "v1beta3.AffinityType", + "$ref": "v1beta3.AffinityType", "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None" + }, + "targetPort": { + "type": "string", + "description": "number or name of the port to access on the containers belonging to pods targeted by the service; defaults to the container's first open port" } } }, @@ -5444,31 +5666,36 @@ "emptyDir", "gcePersistentDisk", "gitRepo", - "secret" + "secret", + "nfs" ], "properties": { "emptyDir": { - "type": "v1beta3.EmptyDirVolumeSource", + "$ref": "v1beta3.EmptyDirVolumeSource", "description": "temporary directory that shares a pod's lifetime" }, "gcePersistentDisk": { - "type": "v1beta3.GCEPersistentDiskVolumeSource", + "$ref": "v1beta3.GCEPersistentDiskVolumeSource", "description": "GCE disk resource attached to the host machine on demand" }, "gitRepo": { - "type": "v1beta3.GitRepoVolumeSource", + "$ref": "v1beta3.GitRepoVolumeSource", "description": "git repository at a particular revision" }, "hostPath": { - "type": "v1beta3.HostPathVolumeSource", + "$ref": "v1beta3.HostPathVolumeSource", "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host" }, "name": { "type": "string", "description": "volume name; must be a DNS_LABEL and unique within the pod" }, + "nfs": { + "$ref": "v1beta3.NFSVolumeSource", + "description": "NFS volume that will be mounted in the host machine" + }, "secret": { - "type": "v1beta3.SecretVolumeSource", + "$ref": "v1beta3.SecretVolumeSource", "description": "secret to populate volume" } }