a.Name("Apache License Version 2.0") a.URL("http://www.apache.org/licenses/LICENSE-2.0") }) a.Origin("/[.*almighty.io|localhost]/", func() { a.Methods("GET", "POST", "PUT", "PATCH", "DELETE") a.Headers("X-Request-Id", "Content-Type", "Authorization") a.MaxAge(600) a.Credentials() }) a.Trait("jsonapi-media-type", func() { a.ContentType("application/vnd.api+json") }) a.JWTSecurity("jwt", func() { a.Description("JWT Token Auth") a.TokenURL("/api/login/authorize") a.Header("Authorization") }) a.ResponseTemplate(d.Created, func(pattern string) { a.Description("Resource created") a.Status(201) a.Headers(func() { a.Header("Location", d.String, "href to created resource", func() { a.Pattern(pattern) }) }) }) })
package design import ( d "github.com/goadesign/goa/design" a "github.com/goadesign/goa/design/apidsl" ) // CreateWorkItemPayload defines the structure of work item payload var CreateWorkItemPayload = a.Type("CreateWorkItemPayload", func() { a.Attribute("type", d.String, "The type of the newly created work item", func() { a.Example("userstory") a.MinLength(1) a.Pattern("^[\\p{L}.]+$") }) a.Attribute("fields", a.HashOf(d.String, d.Any), "The field values, must conform to the type", func() { a.Example(map[string]interface{}{"system.creator": "user-ref", "system.state": "new", "system.title": "Example story"}) a.MinLength(1) }) a.Required("type", "fields") }) // UpdateWorkItemPayload has been added because the design.WorkItem could // not be used since it mandated the presence of the ID in the payload // which ideally should be optional. The ID should be passed on to REST URL. var UpdateWorkItemPayload = a.Type("UpdateWorkItemPayload", func() { a.Attribute("type", d.String, "The type of the newly created work item", func() { a.Example("userstory") a.MinLength(1) a.Pattern("^[\\p{L}.]+$") }) a.Attribute("fields", a.HashOf(d.String, d.Any), "The field values, must conform to the type", func() {