{"action":"closed","number":431,"pull_request":{"url":"https://api.github.com/repos/mbryzek/apidoc/pulls/431","id":66532013,"html_url":"https://github.com/mbryzek/apidoc/pull/431","diff_url":"https://github.com/mbryzek/apidoc/pull/431.diff","patch_url":"https://github.com/mbryzek/apidoc/pull/431.patch","issue_url":"https://api.github.com/repos/mbryzek/apidoc/issues/431","number":431,"state":"closed","locked":false,"title":"validate optional attributes","user":{"login":"mikeclimbrock","id":4163067,"avatar_url":"https://avatars.githubusercontent.com/u/4163067?v=3","gravatar_id":"","url":"https://api.github.com/users/mikeclimbrock","html_url":"https://github.com/mikeclimbrock","followers_url":"https://api.github.com/users/mikeclimbrock/followers","following_url":"https://api.github.com/users/mikeclimbrock/following{/other_user}","gists_url":"https://api.github.com/users/mikeclimbrock/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeclimbrock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeclimbrock/subscriptions","organizations_url":"https://api.github.com/users/mikeclimbrock/orgs","repos_url":"https://api.github.com/users/mikeclimbrock/repos","events_url":"https://api.github.com/users/mikeclimbrock/events{/privacy}","received_events_url":"https://api.github.com/users/mikeclimbrock/received_events","type":"User","site_admin":false},"body":"Apidoc models (i.e. Operation - https://github.com/mbryzek/apidoc/blob/master/generated%2Fapp%2FBryzekApidocSpecV0Client.scala#L145) allow for an optional \"attributes\" field, but uploading a spec with this field results in the following error:\r\n\r\n```sh\r\n - Resource[view] GET /<sample_path> Unrecognized element[attributes]\r\n```\r\n\r\nA few models are currently validating \"attributes\" (i.e. https://github.com/mbryzek/apidoc/blob/master/core%2Fsrc%2Fmain%2Fscala%2Fcore%2Fbuilder%2Fapi_json%2FInternalServiceForm.scala#L451)\r\n\r\nSimilar validation has been added to the remaining models that include an optional \"attributes\" field.","created_at":"2016-04-14T18:32:14Z","updated_at":"2016-04-16T11:55:15Z","closed_at":"2016-04-16T11:55:15Z","merged_at":"2016-04-16T11:55:15Z","merge_commit_sha":"d432c2959c6e2c5cebc9d495faddb3de46a107bd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mbryzek/apidoc/pulls/431/commits","review_comments_url":"https://api.github.com/repos/mbryzek/apidoc/pulls/431/comments","review_comment_url":"https://api.github.com/repos/mbryzek/apidoc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mbryzek/apidoc/issues/431/comments","statuses_url":"https://api.github.com/repos/mbryzek/apidoc/statuses/8e4e7c5d0ad72fcad82611a3a7f8655a0603ddf0","head":{"label":"mikeclimbrock:mikeclimbrock-validate-attributes","ref":"mikeclimbrock-validate-attributes","sha":"8e4e7c5d0ad72fcad82611a3a7f8655a0603ddf0","user":{"login":"mikeclimbrock","id":4163067,"avatar_url":"https://avatars.githubusercontent.com/u/4163067?v=3","gravatar_id":"","url":"https://api.github.com/users/mikeclimbrock","html_url":"https://github.com/mikeclimbrock","followers_url":"https://api.github.com/users/mikeclimbrock/followers","following_url":"https://api.github.com/users/mikeclimbrock/following{/other_user}","gists_url":"https://api.github.com/users/mikeclimbrock/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeclimbrock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeclimbrock/subscriptions","organizations_url":"https://api.github.com/users/mikeclimbrock/orgs","repos_url":"https://api.github.com/users/mikeclimbrock/repos","events_url":"https://api.github.com/users/mikeclimbrock/events{/privacy}","received_events_url":"https://api.github.com/users/mikeclimbrock/received_events","type":"User","site_admin":false},"repo":{"id":56259822,"name":"apidoc","full_name":"mikeclimbrock/apidoc","owner":{"login":"mikeclimbrock","id":4163067,"avatar_url":"https://avatars.githubusercontent.com/u/4163067?v=3","gravatar_id":"","url":"https://api.github.com/users/mikeclimbrock","html_url":"https://github.com/mikeclimbrock","followers_url":"https://api.github.com/users/mikeclimbrock/followers","following_url":"https://api.github.com/users/mikeclimbrock/following{/other_user}","gists_url":"https://api.github.com/users/mikeclimbrock/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeclimbrock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeclimbrock/subscriptions","organizations_url":"https://api.github.com/users/mikeclimbrock/orgs","repos_url":"https://api.github.com/users/mikeclimbrock/repos","events_url":"https://api.github.com/users/mikeclimbrock/events{/privacy}","received_events_url":"https://api.github.com/users/mikeclimbrock/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikeclimbrock/apidoc","description":"Beautiful documentation for REST services. Simple native client libraries with no dependencies. ","fork":true,"url":"https://api.github.com/repos/mikeclimbrock/apidoc","forks_url":"https://api.github.com/repos/mikeclimbrock/apidoc/forks","keys_url":"https://api.github.com/repos/mikeclimbrock/apidoc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikeclimbrock/apidoc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikeclimbrock/apidoc/teams","hooks_url":"https://api.github.com/repos/mikeclimbrock/apidoc/hooks","issue_events_url":"https://api.github.com/repos/mikeclimbrock/apidoc/issues/events{/number}","events_url":"https://api.github.com/repos/mikeclimbrock/apidoc/events","assignees_url":"https://api.github.com/repos/mikeclimbrock/apidoc/assignees{/user}","branches_url":"https://api.github.com/repos/mikeclimbrock/apidoc/branches{/branch}","tags_url":"https://api.github.com/repos/mikeclimbrock/apidoc/tags","blobs_url":"https://api.github.com/repos/mikeclimbrock/apidoc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikeclimbrock/apidoc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikeclimbrock/apidoc/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikeclimbrock/apidoc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikeclimbrock/apidoc/statuses/{sha}","languages_url":"https://api.github.com/repos/mikeclimbrock/apidoc/languages","stargazers_url":"https://api.github.com/repos/mikeclimbrock/apidoc/stargazers","contributors_url":"https://api.github.com/repos/mikeclimbrock/apidoc/contributors","subscribers_url":"https://api.github.com/repos/mikeclimbrock/apidoc/subscribers","subscription_url":"https://api.github.com/repos/mikeclimbrock/apidoc/subscription","commits_url":"https://api.github.com/repos/mikeclimbrock/apidoc/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikeclimbrock/apidoc/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikeclimbrock/apidoc/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikeclimbrock/apidoc/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikeclimbrock/apidoc/contents/{+path}","compare_url":"https://api.github.com/repos/mikeclimbrock/apidoc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikeclimbrock/apidoc/merges","archive_url":"https://api.github.com/repos/mikeclimbrock/apidoc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikeclimbrock/apidoc/downloads","issues_url":"https://api.github.com/repos/mikeclimbrock/apidoc/issues{/number}","pulls_url":"https://api.github.com/repos/mikeclimbrock/apidoc/pulls{/number}","milestones_url":"https://api.github.com/repos/mikeclimbrock/apidoc/milestones{/number}","notifications_url":"https://api.github.com/repos/mikeclimbrock/apidoc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikeclimbrock/apidoc/labels{/name}","releases_url":"https://api.github.com/repos/mikeclimbrock/apidoc/releases{/id}","deployments_url":"https://api.github.com/repos/mikeclimbrock/apidoc/deployments","created_at":"2016-04-14T18:13:00Z","updated_at":"2016-04-14T18:13:01Z","pushed_at":"2016-04-14T18:22:08Z","git_url":"git://github.com/mikeclimbrock/apidoc.git","ssh_url":"git@github.com:mikeclimbrock/apidoc.git","clone_url":"https://github.com/mikeclimbrock/apidoc.git","svn_url":"https://github.com/mikeclimbrock/apidoc","homepage":"http://www.apidoc.me/doc/","size":9184,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mbryzek:master","ref":"master","sha":"0c2155c50f9156e83835f73769f2e15254035d43","user":{"login":"mbryzek","id":49875,"avatar_url":"https://avatars.githubusercontent.com/u/49875?v=3","gravatar_id":"","url":"https://api.github.com/users/mbryzek","html_url":"https://github.com/mbryzek","followers_url":"https://api.github.com/users/mbryzek/followers","following_url":"https://api.github.com/users/mbryzek/following{/other_user}","gists_url":"https://api.github.com/users/mbryzek/gists{/gist_id}","starred_url":"https://api.github.com/users/mbryzek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbryzek/subscriptions","organizations_url":"https://api.github.com/users/mbryzek/orgs","repos_url":"https://api.github.com/users/mbryzek/repos","events_url":"https://api.github.com/users/mbryzek/events{/privacy}","received_events_url":"https://api.github.com/users/mbryzek/received_events","type":"User","site_admin":false},"repo":{"id":18494160,"name":"apidoc","full_name":"mbryzek/apidoc","owner":{"login":"mbryzek","id":49875,"avatar_url":"https://avatars.githubusercontent.com/u/49875?v=3","gravatar_id":"","url":"https://api.github.com/users/mbryzek","html_url":"https://github.com/mbryzek","followers_url":"https://api.github.com/users/mbryzek/followers","following_url":"https://api.github.com/users/mbryzek/following{/other_user}","gists_url":"https://api.github.com/users/mbryzek/gists{/gist_id}","starred_url":"https://api.github.com/users/mbryzek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbryzek/subscriptions","organizations_url":"https://api.github.com/users/mbryzek/orgs","repos_url":"https://api.github.com/users/mbryzek/repos","events_url":"https://api.github.com/users/mbryzek/events{/privacy}","received_events_url":"https://api.github.com/users/mbryzek/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mbryzek/apidoc","description":"Beautiful documentation for REST services. Simple native client libraries with no dependencies. ","fork":false,"url":"https://api.github.com/repos/mbryzek/apidoc","forks_url":"https://api.github.com/repos/mbryzek/apidoc/forks","keys_url":"https://api.github.com/repos/mbryzek/apidoc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mbryzek/apidoc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mbryzek/apidoc/teams","hooks_url":"https://api.github.com/repos/mbryzek/apidoc/hooks","issue_events_url":"https://api.github.com/repos/mbryzek/apidoc/issues/events{/number}","events_url":"https://api.github.com/repos/mbryzek/apidoc/events","assignees_url":"https://api.github.com/repos/mbryzek/apidoc/assignees{/user}","branches_url":"https://api.github.com/repos/mbryzek/apidoc/branches{/branch}","tags_url":"https://api.github.com/repos/mbryzek/apidoc/tags","blobs_url":"https://api.github.com/repos/mbryzek/apidoc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mbryzek/apidoc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mbryzek/apidoc/git/refs{/sha}","trees_url":"https://api.github.com/repos/mbryzek/apidoc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mbryzek/apidoc/statuses/{sha}","languages_url":"https://api.github.com/repos/mbryzek/apidoc/languages","stargazers_url":"https://api.github.com/repos/mbryzek/apidoc/stargazers","contributors_url":"https://api.github.com/repos/mbryzek/apidoc/contributors","subscribers_url":"https://api.github.com/repos/mbryzek/apidoc/subscribers","subscription_url":"https://api.github.com/repos/mbryzek/apidoc/subscription","commits_url":"https://api.github.com/repos/mbryzek/apidoc/commits{/sha}","git_commits_url":"https://api.github.com/repos/mbryzek/apidoc/git/commits{/sha}","comments_url":"https://api.github.com/repos/mbryzek/apidoc/comments{/number}","issue_comment_url":"https://api.github.com/repos/mbryzek/apidoc/issues/comments{/number}","contents_url":"https://api.github.com/repos/mbryzek/apidoc/contents/{+path}","compare_url":"https://api.github.com/repos/mbryzek/apidoc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mbryzek/apidoc/merges","archive_url":"https://api.github.com/repos/mbryzek/apidoc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mbryzek/apidoc/downloads","issues_url":"https://api.github.com/repos/mbryzek/apidoc/issues{/number}","pulls_url":"https://api.github.com/repos/mbryzek/apidoc/pulls{/number}","milestones_url":"https://api.github.com/repos/mbryzek/apidoc/milestones{/number}","notifications_url":"https://api.github.com/repos/mbryzek/apidoc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mbryzek/apidoc/labels{/name}","releases_url":"https://api.github.com/repos/mbryzek/apidoc/releases{/id}","deployments_url":"https://api.github.com/repos/mbryzek/apidoc/deployments","created_at":"2014-04-06T16:51:26Z","updated_at":"2016-04-10T18:58:14Z","pushed_at":"2016-04-16T11:55:15Z","git_url":"git://github.com/mbryzek/apidoc.git","ssh_url":"git@github.com:mbryzek/apidoc.git","clone_url":"https://github.com/mbryzek/apidoc.git","svn_url":"https://github.com/mbryzek/apidoc","homepage":"http://www.apidoc.me/doc/","size":9323,"stargazers_count":128,"watchers_count":128,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"open_issues_count":40,"forks":34,"open_issues":40,"watchers":128,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mbryzek/apidoc/pulls/431"},"html":{"href":"https://github.com/mbryzek/apidoc/pull/431"},"issue":{"href":"https://api.github.com/repos/mbryzek/apidoc/issues/431"},"comments":{"href":"https://api.github.com/repos/mbryzek/apidoc/issues/431/comments"},"review_comments":{"href":"https://api.github.com/repos/mbryzek/apidoc/pulls/431/comments"},"review_comment":{"href":"https://api.github.com/repos/mbryzek/apidoc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mbryzek/apidoc/pulls/431/commits"},"statuses":{"href":"https://api.github.com/repos/mbryzek/apidoc/statuses/8e4e7c5d0ad72fcad82611a3a7f8655a0603ddf0"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"mbryzek","id":49875,"avatar_url":"https://avatars.githubusercontent.com/u/49875?v=3","gravatar_id":"","url":"https://api.github.com/users/mbryzek","html_url":"https://github.com/mbryzek","followers_url":"https://api.github.com/users/mbryzek/followers","following_url":"https://api.github.com/users/mbryzek/following{/other_user}","gists_url":"https://api.github.com/users/mbryzek/gists{/gist_id}","starred_url":"https://api.github.com/users/mbryzek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbryzek/subscriptions","organizations_url":"https://api.github.com/users/mbryzek/orgs","repos_url":"https://api.github.com/users/mbryzek/repos","events_url":"https://api.github.com/users/mbryzek/events{/privacy}","received_events_url":"https://api.github.com/users/mbryzek/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"commits":1,"additions":43,"deletions":3,"changed_files":2}}