You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficcontrol.apache.org by GitBox <gi...@apache.org> on 2018/03/27 19:01:45 UTC

[GitHub] mitchell852 closed pull request #2031: Created the swaggerdocs dir to document the /cdns API

mitchell852 closed pull request #2031: Created the swaggerdocs dir to document the /cdns API
URL: https://github.com/apache/incubator-trafficcontrol/pull/2031
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/lib/go-tc/v13/cdns.go b/lib/go-tc/v13/cdns.go
index e0c1aa8b8..3037af978 100644
--- a/lib/go-tc/v13/cdns.go
+++ b/lib/go-tc/v13/cdns.go
@@ -1,5 +1,7 @@
 package v13
 
+import tc "github.com/apache/incubator-trafficcontrol/lib/go-tc"
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,26 +20,81 @@ package v13
  * specific language governing permissions and limitations
  * under the License.
  */
-import "github.com/apache/incubator-trafficcontrol/lib/go-tc"
 
+// A List of CDNs Response
+// swagger:response CDNsResponse
+// in: body
 type CDNsResponse struct {
+	// in: body
 	Response []CDN `json:"response"`
 }
 
+// A Single CDN Response for Update and Create to depict what changed
+// swagger:response CDNResponse
+// in: body
+type CDNResponse struct {
+	// in: body
+	Response CDN `json:"response"`
+}
+
+// CDN ...
 type CDN struct {
-	DNSSECEnabled bool         `json:"dnssecEnabled" db:"dnssec_enabled"`
-	DomainName    string       `json:"domainName" db:"domain_name"`
-	ID            int          `json:"id" db:"id"`
-	LastUpdated   tc.TimeNoMod `json:"lastUpdated" db:"last_updated"`
-	Name          string       `json:"name" db:"name"`
+
+	// The CDN to retrieve
+	//
+	// enables Domain Name Security Extensions on the specified CDN
+	//
+	// required: true
+	DNSSECEnabled bool `json:"dnssecEnabled" db:"dnssec_enabled"`
+
+	// DomainName of the CDN
+	//
+	// required: true
+	DomainName string `json:"domainName" db:"domain_name"`
+
+	// ID of the CDN
+	//
+	// required: true
+	ID int `json:"id" db:"id"`
+
+	// LastUpdated
+	//
+	LastUpdated tc.TimeNoMod `json:"lastUpdated" db:"last_updated"`
+
+	// Name of the CDN
+	//
+	// required: true
+	Name string `json:"name" db:"name"`
 }
 
+// CDNNullable ...
 type CDNNullable struct {
-	DNSSECEnabled *bool         `json:"dnssecEnabled" db:"dnssec_enabled"`
-	DomainName    *string       `json:"domainName" db:"domain_name"`
-	ID            *int          `json:"id" db:"id"`
-	LastUpdated   *tc.TimeNoMod `json:"lastUpdated" db:"last_updated"`
-	Name          *string       `json:"name" db:"name"`
+
+	// The CDN to retrieve
+	//
+	// enables Domain Name Security Extensions on the specified CDN
+	//
+	// required: true
+	DNSSECEnabled *bool `json:"dnssecEnabled" db:"dnssec_enabled"`
+
+	// DomainName of the CDN
+	//
+	// required: true
+	DomainName *string `json:"domainName" db:"domain_name"`
+
+	// ID of the CDN
+	//
+	// required: true
+	ID *int `json:"id" db:"id"`
+
+	// LastUpdated
+	//
+	LastUpdated *tc.TimeNoMod `json:"lastUpdated" db:"last_updated"`
+
+	// Name of the CDN
+	//
+	// required: true
+	Name *string `json:"name" db:"name"`
 }
 
 // CDNSSLKeysResponse ...
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/.gitignore b/traffic_ops/traffic_ops_golang/swaggerdocs/.gitignore
new file mode 100644
index 000000000..168aa9434
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/.gitignore
@@ -0,0 +1 @@
+swagger.json
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/README.md b/traffic_ops/traffic_ops_golang/swaggerdocs/README.md
new file mode 100644
index 000000000..19fff3da1
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/README.md
@@ -0,0 +1,54 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+#### `./swaggerdocs` 
+This directory contains the Go structs that glue together the Swagger 2.0 metadata that will generate the Traffic Ops API documentation using [go-swagger](https://github.com/go-swagger/go-swagger) meta tags.  The Traffic Ops API documentation is maintained by modifying the Go files in this directory that point to the **incubator-trafficcontrol/lib/go-tc/*.go** structs that render the Traffic Ops Go Proxy API's.
+
+
+### Setup
+
+See the install documentation for [https://github.com/go-swagger/go-swagger](go-swagger)
+
+
+### Generate your Documentation
+
+The **gen_docs.sh** script will scan all the Go files in the swaggerdocs directory and extract out all of the swagger meta tags that are embedded as comments.  The output of the **gen_docs.sh** script will be the **swagger.json** spec file.
+
+### Verifying your Documentation
+
+Once the **swagger.json** spec file has been generated it needs to to be served over http so that you can validate it using the Swagger Editor.  
+
+See the following steps:
+
+*    Execute the **cors-http-server.py** (this will start a server on **http://localhost:8000**
+  so that you can point to it using the [https://editor.swagger.io](Swagger Editor).  
+  
+  `$ ./cors-http-server.py`
+
+*    Navigate to [https://editor.swagger.io](Swagger Editor)
+    
+*    Use File->Import URL then plugin **http://localhost:8000**
+	* At this point the Swagger Editor will convert the **swagger.json** to yaml format and show the resulting documentation rendered as html.
+
+	OR
+	
+*	 Install the [https://swagger.io/swagger-ui/](Swagger UI) yourself and run locally.
+	
+  
+
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/alerts.go b/traffic_ops/traffic_ops_golang/swaggerdocs/alerts.go
new file mode 100644
index 000000000..dac0823ec
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/alerts.go
@@ -0,0 +1,31 @@
+package swaggerdocs
+
+import tc "github.com/apache/incubator-trafficcontrol/lib/go-tc"
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+// Alerts - informs the client of server side messages
+// swagger:response Alerts
+type Alerts struct {
+	// Alerts Response Body
+	//
+	// in: body
+	Alerts []tc.Alert `json:"alerts"`
+}
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/cdns.go b/traffic_ops/traffic_ops_golang/swaggerdocs/cdns.go
new file mode 100644
index 000000000..85a7124fd
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/cdns.go
@@ -0,0 +1,161 @@
+package swaggerdocs
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import v13 "github.com/apache/incubator-trafficcontrol/lib/go-tc/v13"
+
+// CDNs -  CDNsResponse to get the "response" top level key
+// swagger:response CDNs
+// in: body
+type CDNs struct {
+	// CDN Response Body
+	// in: body
+	CDNsResponse v13.CDNsResponse `json:"response"`
+}
+
+// CDN -  CDNResponse to get the "response" top level key
+// swagger:response CDN
+// in: body
+type CDN struct {
+	// CDN Response Body
+	// in: body
+	CDNResponse v13.CDNResponse
+}
+
+// CDNQueryParams
+//
+// swagger:parameters GetCDNs
+type CDNQueryParams struct {
+
+	// CDNsQueryParams
+
+	// Enables Domain Name System Security Extensions (DNSSEC) for the CDN
+	//
+	DNSSecEnabled string `json:"dnssecEnabled"`
+
+	// The domain name for the CDN
+	//
+	DomainName string `json:"domainName"`
+
+	// Unique identifier for the CDN
+	//
+	ID string `json:"id"`
+
+	// The CDN name for the CDN
+	//
+	Name string `json:"name"`
+
+	//
+	//
+	Orderby string `json:"orderby"`
+}
+
+// swagger:parameters PostCDN
+type CDNPostParam struct {
+	// CDN Request Body
+	//
+	// in: body
+	// required: true
+	CDN v13.CDN
+}
+
+// swagger:parameters GetCDNById DeleteCDN
+type CDNPathParams struct {
+
+	// Id associated to the CDN
+	// in: path
+	ID int `json:"id"`
+}
+
+// PostCDN swagger:route POST /cdns CDN PostCDN
+//
+// Create a CDN
+//
+// A CDN is a collection of Delivery Services
+//
+// Responses:
+//          200: Alerts
+func PostCDN(entity CDNPostParam) (CDN, Alerts) {
+	return CDN{}, Alerts{}
+}
+
+// GetCDNs swagger:route GET /cdns CDN GetCDNs
+//
+// Retrieve a list of CDNs
+//
+// List of CDNs
+//
+// Responses:
+//          200: CDNs
+//          400: Alerts
+func GetCDNs() (CDNs, Alerts) {
+	return CDNs{}, Alerts{}
+}
+
+// swagger:parameters PutCDN
+type CDNPutParam struct {
+
+	// ID
+	// in: path
+	ID int `json:"id"`
+
+	// CDN Request Body
+	//
+	// in: body
+	// required: true
+	CDN v13.CDN
+}
+
+// PutCDN swagger:route PUT /cdns/{id} CDN PutCDN
+//
+// Update a CDN by Id
+//
+// Update a CDN
+//
+// Responses:
+//          200: CDN
+func PutCDN(entity CDNPutParam) (CDN, Alerts) {
+	return CDN{}, Alerts{}
+}
+
+// GetCDNById swagger:route GET /cdns/{id} CDN GetCDNById
+//
+// Retrieve a specific CDN by Id
+//
+// Retrieve a specific CDN
+//
+// Responses:
+//          200: CDNs
+//          400: Alerts
+func GetCDNById() (CDNs, Alerts) {
+	return CDNs{}, Alerts{}
+}
+
+// DeleteCDN swagger:route DELETE /cdns/{id} CDN DeleteCDN
+//
+// Delete a CDN by Id
+//
+// Delete a CDN
+//
+// Responses:
+//          200: Alerts
+func DeleteCDN(entityId int) Alerts {
+	return Alerts{}
+}
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/cors-http-server.py b/traffic_ops/traffic_ops_golang/swaggerdocs/cors-http-server.py
new file mode 100755
index 000000000..3c1687f87
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/cors-http-server.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+
+ # Licensed to the Apache Software Foundation (ASF) under one
+ # or more contributor license agreements.  See the NOTICE file
+ # distributed with this work for additional information
+ # regarding copyright ownership.  The ASF licenses this file
+ # to you under the Apache License, Version 2.0 (the
+ # "License"); you may not use this file except in compliance
+ # with the License.  You may obtain a copy of the License at
+ #
+ #   http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing,
+ # software distributed under the License is distributed on an
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ # KIND, either express or implied.  See the License for the
+ # specific language governing permissions and limitations
+ # under the License.
+
+from SimpleHTTPServer import SimpleHTTPRequestHandler
+import BaseHTTPServer
+
+#
+# Simple HTTP server that serves up port 8000 with the CORS header enabled
+#
+class CORSRequestHandler (SimpleHTTPRequestHandler):
+    def end_headers (self):
+        self.send_header('Access-Control-Allow-Origin', '*')
+        SimpleHTTPRequestHandler.end_headers(self)
+
+if __name__ == '__main__':
+    BaseHTTPServer.test(CORSRequestHandler, BaseHTTPServer.HTTPServer)
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/docs.go b/traffic_ops/traffic_ops_golang/swaggerdocs/docs.go
new file mode 100644
index 000000000..e9b426186
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/docs.go
@@ -0,0 +1,52 @@
+/*
+ Package docs Traffic Ops API v1.3
+
+ The following REST APIs are used by the Traffic Portal UI along with several Traffic Control backend component and services.
+
+ This documentation is fully compliant with the Swagger 2.0 specification
+
+     Schemes: http, https
+	 Host: localhost:8443
+     BasePath: /api/1.3
+     Version: 1.3
+     License: Apache 2 https://github.com/apache/incubator-trafficcontrol/blob/master/LICENSE
+     Contact: Traffic Control Dev List<de...@trafficcontrol.incubator.apache.org> http://traffic-control-cdn.readthedocs.io/en/latest/index.html
+
+     Consumes:
+     - application/json
+
+     Produces:
+     - application/json
+
+     Security:
+     - Cookie:
+
+     SecurityDefinitions:
+     Cookie:
+          type: apiKey
+          name: cookie
+          in: header
+
+
+ swagger:meta
+*/
+package swaggerdocs
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/gen_docs.sh b/traffic_ops/traffic_ops_golang/swaggerdocs/gen_docs.sh
new file mode 100755
index 000000000..a7c715428
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/gen_docs.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+#    Licensed to the Apache Software Foundation (ASF) under one
+#    or more contributor license agreements.  See the NOTICE file
+#    distributed with this work for additional information
+#    regarding copyright ownership.  The ASF licenses this file
+#    to you under the Apache License, Version 2.0 (the
+#    "License"); you may not use this file except in compliance
+#    with the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing,
+#    software distributed under the License is distributed on an
+#    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#    KIND, either express or implied.  See the License for the
+#    specific language governing permissions and limitations
+#    under the License.
+
+unset DEBUG
+#export DEBUG=true
+swagger generate spec -o ./swagger.json
+echo "successfully generated the swagger.json file"
diff --git a/traffic_ops/traffic_ops_golang/swaggerdocs/swagger.json b/traffic_ops/traffic_ops_golang/swaggerdocs/swagger.json
new file mode 100644
index 000000000..0136c96ab
--- /dev/null
+++ b/traffic_ops/traffic_ops_golang/swaggerdocs/swagger.json
@@ -0,0 +1,332 @@
+{
+  "consumes": [
+    "application/json"
+  ],
+  "produces": [
+    "application/json"
+  ],
+  "schemes": [
+    "http",
+    "https"
+  ],
+  "swagger": "2.0",
+  "info": {
+    "description": "The following REST APIs are used by the Traffic Portal UI along with several Traffic Control backend component and services.\n\nThis documentation is fully compliant with the Swagger 2.0 specification",
+    "title": "TrafficOps API",
+    "contact": {
+      "name": "Traffic Control Dev List",
+      "url": "http://traffic-control-cdn.readthedocs.io/en/latest/index.html",
+      "email": "dev@trafficcontrol.incubator.apache.org"
+    },
+    "license": {
+      "name": "Apache 2",
+      "url": "https://github.com/apache/incubator-trafficcontrol/blob/master/LICENSE"
+    },
+    "version": "1.3"
+  },
+  "host": "localhost:8443",
+  "basePath": "/api/1.3",
+  "paths": {
+    "/cdns": {
+      "get": {
+        "description": "Retrieve a list of CDNs",
+        "tags": [
+          "CDN"
+        ],
+        "operationId": "GetCDNs",
+        "parameters": [
+          {
+            "type": "string",
+            "x-go-name": "DNSSecEnabled",
+            "description": "Enables Domain Name System Security Extensions (DNSSEC) for the CDN",
+            "name": "dnssecEnabled",
+            "in": "query"
+          },
+          {
+            "type": "string",
+            "x-go-name": "DomainName",
+            "description": "The domain name for the CDN",
+            "name": "domainName",
+            "in": "query"
+          },
+          {
+            "type": "string",
+            "x-go-name": "ID",
+            "description": "Unique identifier for the CDN",
+            "name": "id",
+            "in": "query"
+          },
+          {
+            "type": "string",
+            "x-go-name": "Name",
+            "description": "The CDN name for the CDN",
+            "name": "name",
+            "in": "query"
+          },
+          {
+            "type": "string",
+            "x-go-name": "Orderby",
+            "name": "orderby",
+            "in": "query"
+          }
+        ],
+        "responses": {
+          "200": {
+            "$ref": "#/responses/CDNs"
+          },
+          "400": {
+            "$ref": "#/responses/Alerts"
+          }
+        }
+      },
+      "post": {
+        "description": "Create a CDN",
+        "tags": [
+          "CDN"
+        ],
+        "operationId": "PostCDN",
+        "parameters": [
+          {
+            "description": "CDN Request Body",
+            "name": "CDN",
+            "in": "body",
+            "required": true,
+            "schema": {
+              "$ref": "#/definitions/CDN"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "$ref": "#/responses/Alerts"
+          }
+        }
+      }
+    },
+    "/cdns/{id}": {
+      "get": {
+        "description": "Retrieve a specific CDN",
+        "tags": [
+          "CDN"
+        ],
+        "operationId": "GetCDNById",
+        "parameters": [
+          {
+            "type": "integer",
+            "format": "int64",
+            "x-go-name": "ID",
+            "description": "Id associated to the CDN",
+            "name": "id",
+            "in": "path",
+            "required": true
+          }
+        ],
+        "responses": {
+          "200": {
+            "$ref": "#/responses/CDNs"
+          },
+          "400": {
+            "$ref": "#/responses/Alerts"
+          }
+        }
+      },
+      "put": {
+        "description": "Update a CDN",
+        "tags": [
+          "CDN"
+        ],
+        "operationId": "PutCDN",
+        "parameters": [
+          {
+            "type": "integer",
+            "format": "int64",
+            "x-go-name": "ID",
+            "description": "ID",
+            "name": "id",
+            "in": "path",
+            "required": true
+          },
+          {
+            "description": "CDN Request Body",
+            "name": "CDN",
+            "in": "body",
+            "required": true,
+            "schema": {
+              "$ref": "#/definitions/CDN"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "$ref": "#/responses/CDN"
+          }
+        }
+      },
+      "delete": {
+        "description": "Delete a CDN",
+        "tags": [
+          "CDN"
+        ],
+        "operationId": "DeleteCDN",
+        "parameters": [
+          {
+            "type": "integer",
+            "format": "int64",
+            "x-go-name": "ID",
+            "description": "Id associated to the CDN",
+            "name": "id",
+            "in": "path",
+            "required": true
+          }
+        ],
+        "responses": {
+          "200": {
+            "$ref": "#/responses/Alerts"
+          }
+        }
+      }
+    }
+  },
+  "definitions": {
+    "Alert": {
+      "type": "object",
+      "properties": {
+        "level": {
+          "type": "string",
+          "x-go-name": "Level"
+        },
+        "text": {
+          "type": "string",
+          "x-go-name": "Text"
+        }
+      },
+      "x-go-package": "github.com/apache/incubator-trafficcontrol/lib/go-tc"
+    },
+    "CDN": {
+      "type": "object",
+      "title": "CDN ...",
+      "required": [
+        "dnssecEnabled",
+        "domainName",
+        "id",
+        "name"
+      ],
+      "properties": {
+        "dnssecEnabled": {
+          "description": "The CDN to retrieve\n\nenables Domain Name Security Extensions on the specified CDN",
+          "type": "boolean",
+          "x-go-name": "DNSSECEnabled"
+        },
+        "domainName": {
+          "description": "DomainName of the CDN",
+          "type": "string",
+          "x-go-name": "DomainName"
+        },
+        "id": {
+          "description": "ID of the CDN",
+          "type": "integer",
+          "format": "int64",
+          "x-go-name": "ID"
+        },
+        "lastUpdated": {
+          "$ref": "#/definitions/TimeNoMod"
+        },
+        "name": {
+          "description": "Name of the CDN",
+          "type": "string",
+          "x-go-name": "Name"
+        }
+      },
+      "x-go-package": "github.com/apache/incubator-trafficcontrol/lib/go-tc/v13"
+    },
+    "CDNResponse": {
+      "description": "A Single CDN Response for Update and Create to depict what changed",
+      "type": "object",
+      "properties": {
+        "response": {
+          "$ref": "#/definitions/CDN"
+        }
+      },
+      "x-go-package": "github.com/apache/incubator-trafficcontrol/lib/go-tc/v13"
+    },
+    "CDNsResponse": {
+      "description": "A List of CDNs Response",
+      "type": "object",
+      "properties": {
+        "response": {
+          "description": "in: body",
+          "type": "array",
+          "items": {
+            "$ref": "#/definitions/CDN"
+          },
+          "x-go-name": "Response"
+        }
+      },
+      "x-go-package": "github.com/apache/incubator-trafficcontrol/lib/go-tc/v13"
+    },
+    "Time": {
+      "description": "Time wraps standard time.Time to allow indication of invalid times",
+      "type": "object",
+      "properties": {
+        "Valid": {
+          "type": "boolean"
+        }
+      },
+      "x-go-package": "github.com/apache/incubator-trafficcontrol/lib/go-tc"
+    },
+    "TimeNoMod": {
+      "description": "TimeNoMod supported JSON marshalling, but suppresses JSON unmarshalling",
+      "$ref": "#/definitions/Time"
+    }
+  },
+  "responses": {
+    "Alerts": {
+      "description": "Alerts - informs the client of server side messages",
+      "schema": {
+        "type": "array",
+        "items": {
+          "$ref": "#/definitions/Alert"
+        }
+      }
+    },
+    "CDN": {
+      "description": "CDN -  CDNResponse to get the \"response\" top level key",
+      "schema": {
+        "$ref": "#/definitions/CDNResponse"
+      }
+    },
+    "CDNResponse": {
+      "description": "A Single CDN Response for Update and Create to depict what changed",
+      "schema": {
+        "$ref": "#/definitions/CDN"
+      }
+    },
+    "CDNs": {
+      "description": "CDNs -  CDNsResponse to get the \"response\" top level key",
+      "schema": {
+        "$ref": "#/definitions/CDNsResponse"
+      }
+    },
+    "CDNsResponse": {
+      "description": "A List of CDNs Response",
+      "schema": {
+        "type": "array",
+        "items": {
+          "$ref": "#/definitions/CDN"
+        }
+      }
+    }
+  },
+  "securityDefinitions": {
+    "Cookie": {
+      "type": "apiKey",
+      "name": "cookie",
+      "in": "header"
+    }
+  },
+  "security": [
+    {
+      "Cookie": []
+    }
+  ]
+}
\ No newline at end of file


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services