{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/issues/320","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/issues/320/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/issues/320/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/issues/320/events","html_url":"https://github.com/GoogleCloudPlatform/gcloud-ruby/issues/320","id":107769176,"number":320,"title":"Update SOA serial with each change","user":{"login":"quartzmo","id":205445,"avatar_url":"https://avatars.githubusercontent.com/u/205445?v=3","gravatar_id":"","url":"https://api.github.com/users/quartzmo","html_url":"https://github.com/quartzmo","followers_url":"https://api.github.com/users/quartzmo/followers","following_url":"https://api.github.com/users/quartzmo/following{/other_user}","gists_url":"https://api.github.com/users/quartzmo/gists{/gist_id}","starred_url":"https://api.github.com/users/quartzmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quartzmo/subscriptions","organizations_url":"https://api.github.com/users/quartzmo/orgs","repos_url":"https://api.github.com/users/quartzmo/repos","events_url":"https://api.github.com/users/quartzmo/events{/privacy}","received_events_url":"https://api.github.com/users/quartzmo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/labels/dns","name":"dns","color":"f7c6c7"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"quartzmo","id":205445,"avatar_url":"https://avatars.githubusercontent.com/u/205445?v=3","gravatar_id":"","url":"https://api.github.com/users/quartzmo","html_url":"https://github.com/quartzmo","followers_url":"https://api.github.com/users/quartzmo/followers","following_url":"https://api.github.com/users/quartzmo/following{/other_user}","gists_url":"https://api.github.com/users/quartzmo/gists{/gist_id}","starred_url":"https://api.github.com/users/quartzmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quartzmo/subscriptions","organizations_url":"https://api.github.com/users/quartzmo/orgs","repos_url":"https://api.github.com/users/quartzmo/repos","events_url":"https://api.github.com/users/quartzmo/events{/privacy}","received_events_url":"https://api.github.com/users/quartzmo/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/milestones/14","html_url":"https://github.com/GoogleCloudPlatform/gcloud-ruby/milestones/0.4.0%20-%20DNS","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/milestones/14/labels","id":1270204,"number":14,"title":"0.4.0 - DNS","description":"","creator":{"login":"blowmage","id":730,"avatar_url":"https://avatars.githubusercontent.com/u/730?v=3","gravatar_id":"","url":"https://api.github.com/users/blowmage","html_url":"https://github.com/blowmage","followers_url":"https://api.github.com/users/blowmage/followers","following_url":"https://api.github.com/users/blowmage/following{/other_user}","gists_url":"https://api.github.com/users/blowmage/gists{/gist_id}","starred_url":"https://api.github.com/users/blowmage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blowmage/subscriptions","organizations_url":"https://api.github.com/users/blowmage/orgs","repos_url":"https://api.github.com/users/blowmage/repos","events_url":"https://api.github.com/users/blowmage/events{/privacy}","received_events_url":"https://api.github.com/users/blowmage/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":27,"state":"open","created_at":"2015-08-24T19:43:16Z","updated_at":"2015-09-23T00:00:56Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2015-09-22T18:10:35Z","updated_at":"2015-09-23T15:18:16Z","closed_at":null,"body":"The SOA record serial number must be incremented for every recordset change. The gcloud command-line tool automates this as shown in the generated transaction below, in which `0` is incremented to `1`.\r\n\r\n```sh\r\n$ gcloud dns record-sets transaction start --zone example-zone\r\nTransaction started [transaction.yaml].\r\n$ cat transaction.yaml \r\n---\r\nadditions:\r\n- kind: dns#resourceRecordSet\r\n  name: example.net.\r\n  rrdatas:\r\n  - ns-cloud-b1.googledomains.com. dns-admin.google.com. 1 21600 3600 1209600 300\r\n  ttl: 21600\r\n  type: SOA\r\ndeletions:\r\n- kind: dns#resourceRecordSet\r\n  name: example.net.\r\n  rrdatas:\r\n  - ns-cloud-b1.googledomains.com. dns-admin.google.com. 0 21600 3600 1209600 300\r\n  ttl: 21600\r\n  type: SOA\r\n```\r\n\r\nCloud DNS uses a simple integer serial number, but it is possible to use a date format, as described in [this article](http://www.zytrax.com/books/dns/ch8/soa.html). The complete story of serial numbers is in [RFC 1982](https://tools.ietf.org/html/rfc1982). I propose only supporting the simple integer values that are the default in Cloud DNS.\r\n\r\nIf the record set change already contains SOA records, I think we should assume the user has taken responsibility for incrementing the serial number, and not attempt it."},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/issues/comments/142636875","html_url":"https://github.com/GoogleCloudPlatform/gcloud-ruby/issues/320#issuecomment-142636875","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-ruby/issues/320","id":142636875,"user":{"login":"quartzmo","id":205445,"avatar_url":"https://avatars.githubusercontent.com/u/205445?v=3","gravatar_id":"","url":"https://api.github.com/users/quartzmo","html_url":"https://github.com/quartzmo","followers_url":"https://api.github.com/users/quartzmo/followers","following_url":"https://api.github.com/users/quartzmo/following{/other_user}","gists_url":"https://api.github.com/users/quartzmo/gists{/gist_id}","starred_url":"https://api.github.com/users/quartzmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quartzmo/subscriptions","organizations_url":"https://api.github.com/users/quartzmo/orgs","repos_url":"https://api.github.com/users/quartzmo/repos","events_url":"https://api.github.com/users/quartzmo/events{/privacy}","received_events_url":"https://api.github.com/users/quartzmo/received_events","type":"User","site_admin":false},"created_at":"2015-09-23T15:18:16Z","updated_at":"2015-09-23T15:18:16Z","body":"I'm going to go ahead and add this feature today. Its inclusion in the command-line tool is strong evidence of its value."}}