<div dir="ltr"><div>Does anyone have strong feelings or concerns about unnesting repository versions from /repositories/1/version/1/ to something like /repoversion/1/ ?</div><div><br></div><div>As a mini-group of devs talk it over this week, understanding how users/devs feel about this nesting would be helpful.</div><div><br></div><div>Also thank you @bizhang for the great prototyping and communication.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 3, 2018 at 4:05 PM, Bihan Zhang <span dir="ltr"><<a href="mailto:bizhang@redhat.com" target="_blank">bizhang@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I've opened a PR that implements a new field that will resolve and display both _href and id.<div><a href="https://github.com/pulp/pulp/pull/3575" target="_blank">https://github.com/pulp/pulp/<wbr>pull/3575</a></div><div><br></div><div>Take a look and let me know what y'all think.</div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 26, 2018 at 2:33 PM, Robin Chan <span dir="ltr"><<a href="mailto:rchan@redhat.com" target="_blank">rchan@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I really appreciate recent trend on our mailing lists that when conversations are happening on irc or in meetings, that updates are reported back to the relevant thread. I like that individuals are taking the initiative to have that real time communication and work out concerns in a timely manner, and I really like that everyone else can get caught up. This supports the timezone- diverse pulp community as well as time away for summer travel. I personally have found this update and others like it on other threads here in pulp-land to be very helpful.<br><br></div><div>Thanks,<br></div>Robin<br></div><div class="m_-8205112379502519573HOEnZb"><div class="m_-8205112379502519573h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 26, 2018 at 12:13 PM, Bihan Zhang <span dir="ltr"><<a href="mailto:bizhang@redhat.com" target="_blank">bizhang@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">bmbouter, dkliban, daviddavis, jsherril and I just chatted about this in person. Here are the minutes from that meeting:<div><br></div><div>We have tools (API, docs, bindings+3rd party applications, CLI) that needs to refer to references somehow, and we need to figure out whether these references should be the href or a combination of the href and the id.</div><div>Dkliban has opened a PR updating the schemas to only use the hrefs, but this schema isn't valid. [0]</div><div>Bmbouter has proposed some solutions to using both hrefs and ids, and option 2 is by far the most popular [1]</div><div><br></div><div>If we go the hybrid href and id route there are some concerns:</div><div>    - How do we serialize createdresource that can be either publications or repositoryversion?</div><div>        - additionalproperties field in openapi should take care of it</div><div>    - repository has to be referenced with 2 parameters (repo id and version number) instead of just an id like all other resources, this isn't consistent</div><div>        - maybe we should unnest repoversion, this also allows us to search for content across repository versoins</div><div>        - probably should leave as is, since it works, and can be described in openapiv2</div><div>    - we need to restructure our API, and this could be time consuming</div><div>        - changes needed to hyperlinked related field, created resource schema, content added api endpoint, need to validate openapi schema is compliant for all requests and responses</div><div><br></div><div>If we merge dkliban's PR, and use only hrefs there's also some concerns:</div><div>    - noncompliant schema</div><div>        - we aren't in a position to ship and support the tool chain for a noncompliant schema, unlike google</div><div>        - following spec gives some peace of mind for future support</div><div><br></div><div>We decided on the following action items:</div><div>    - bizhang will take some time to write out a hybrid href and id POC next week</div><div>    - dkliban will reach out to openapi, to see what the status is of the href work, and maybe get an estimation of when that will be accepted into the specification</div><div><br></div><div><br></div><div>[0] <a href="https://github.com/pulp/pulp/pull/3561#issuecomment-407496845" target="_blank">https://github.com/pulp/pulp/p<wbr>ull/3561#issuecomment-40749684<wbr>5</a></div><div>[1] <a href="https://github.com/pulp/pulp/pull/3561#issuecomment-407888652" target="_blank">https://github.com/pulp/pulp/p<wbr>ull/3561#issuecomment-40788865<wbr>2</a></div></div><div class="m_-8205112379502519573m_-2488336513335059726HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 25, 2018 at 4:43 PM, Brian Bouterse <span dir="ltr"><<a href="mailto:bbouters@redhat.com" target="_blank">bbouters@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'm exploring the changes required to use IDs and hrefs on the PR here:  <a href="https://github.com/pulp/pulp/pull/3561#issuecomment-407888652" target="_blank">https://github.com/pulp/pulp/p<wbr>ull/3561#issuecomment-40788865<wbr>2</a><br></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 25, 2018 at 4:24 PM, David Davis <span dir="ltr"><<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I know we don’t support things like accepting hrefs as references to resources but if I remember correctly we do return hrefs alongside ids in responses in Pulp 2. Is that not correct?<span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832HOEnZb"><font color="#888888"><br clear="all"><div><div dir="ltr" class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><br></div><div>David<br></div></div></div></div></div></div></div></div><br></font></span></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832h5"><br><div class="gmail_quote"><div dir="ltr">On Wed, Jul 25, 2018 at 4:17 PM Dennis Kliban <<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I don't think we support both hrefs and ids in Pulp 2. The Pulp 2 REST API does not accept HREFs as references to resources. In Pulp 2's REST API we do not even have resources that have relationships to other resources. The relationships between resources are established by nesting them under one another. e.g.: <code class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-docutils m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-literal m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-notranslate"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-pre">/pulp/api/v2/repositories/<rep<wbr>o_id>/</span></code> and <code class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-docutils m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-literal m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-notranslate"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119gmail-pre">/pulp/api/v2/repositories/<rep<wbr>o_id>/importers/<importer_id>/</span></code><wbr>. In Pulp 2, if a user wanted to reference content units in a request, the API requires writing a filter that uses Mongodb syntax.  <br></div><div><br></div><div>Pulp 3's REST API has a resources called Task that has a 'created_resource' attribute. This resource is a reference to either a repository version or a publication at this time. Pulp 3's REST API also supports users specifying references to content units that should be added or removed from a repository. These needs do not exist in Pulp 2's REST API. <br></div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 25, 2018 at 3:55 PM, David Davis <span dir="ltr"><<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div dir="ltr" class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Correct me if I’m wrong but Pulp 2 supported @bizhang’s model of providing both hrefs and ids. Was that a source of problems or complaints by Pulp 2 users?</div><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119HOEnZb"><font color="#888888"><div><br></div><div>David<br></div></font></span></div></div></div></div></div><br></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119h5"><br><div class="gmail_quote"><div dir="ltr">On Wed, Jul 25, 2018 at 3:08 PM Dennis Kliban <<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>For everyone following along, the conversation has moved to Github - on the PR[0] with the proposed changes.<br></div><div><br></div><div>[0] <a href="https://github.com/pulp/pulp/pull/3561" target="_blank">https://github.com/pulp/pulp/p<wbr>ull/3561</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 24, 2018 at 11:15 AM, Bihan Zhang <span dir="ltr"><<a href="mailto:bizhang@redhat.com" target="_blank">bizhang@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">@dkliban I've tried out your PR and left a question: <a href="https://github.com/pulp/pulp/pull/3561#issuecomment-407425172" target="_blank">https://github.com/p<wbr>ulp/pulp/pull/3561#issuecommen<wbr>t-407425172</a><div><span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Won't it be problematic with the openapi definitions causing us to have two schemas? Accepting the data in two forms is one thing, but using openapi to describe it both ways is something I don't understand well. Are we going to ship and test two?</div></blockquote><div><br></div></span><div> I don't think we'll be defining the data in two different ways in openapi. We need to pass a {repository identifier} to /sync/, openapi expects a string, what we do with that string is up to us. (In the following example the format is "uri" but this isn't actually used for validation at all, since it's not defined by the swagger specification [0], we can also clear out the format field, since format is only there to support documentation needs)</div></div><div><ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-obj m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapsible" style="list-style-type:none;padding:0px;margin:0px 0px 0px 2em;color:rgb(0,0,0);font-family:monospace;font-size:medium;text-align:left;text-decoration-style:initial;text-decoration-color:initial"><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-selected" style="display:inline-block;outline-width:1px;outline-style:dotted;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">RepositorySyncURL</span>:<span> </span><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapser" style="padding-right:6px;padding-left:6px"></div>{<ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-obj m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapsible" style="list-style-type:none;padding:0px;margin:0px 0px 0px 2em"><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">required</span>:<span> </span><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapser" style="padding-right:6px;padding-left:6px"></div>[<ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-array m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapsible" style="list-style-type:none;padding:0px;margin:0px 0px 0px 2em"><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-type-string" style="color:green">"repository"</span></div></li></ul>],</div></li><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">type</span>:<span> </span><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-type-string" style="color:green">"object"</span>,</div></li><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">properties</span>:<span> </span><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapser" style="padding-right:6px;padding-left:6px"></div>{<ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-obj m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapsible" style="list-style-type:none;padding:0px;margin:0px 0px 0px 2em"><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">repository</span>:<span> </span><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapser" style="padding-right:6px;padding-left:6px"></div>{<ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-obj m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-collapsible" style="list-style-type:none;padding:0px;margin:0px 0px 0px 2em"><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">title</span>:<span> </span><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-type-string" style="color:green">"Repository"</span>,</div></li><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">description</span>:<span> </span><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-type-string" style="color:green">"A URI of the repository to be synchronized."</span>,</div></li><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">type</span>:<span> </span><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-type-string" style="color:green">"string"</span>,</div></li><li><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-hoverable" style="display:inline-block;padding:1px 2px;border-radius:2px"><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-property" style="font-weight:bold">format</span>:<span> </span><span class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247gmail-type-string" style="color:green">"uri"</span></div></li></ul>}</div></li></ul>}</div></li></ul>},</div></li></ul><br></div><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">I can see why some users would want to refer to things in the api using ID not an href. I think about the case that when calling publish and referring to a RepositoryVersion with id=827561, num=3, and for repository=1234. With an ID alternately accepted, you could call publish and submit repo_version=827561 instead of repo_version='repositories/123<wbr>4/version/3/'. I can see that benefit, but it comes with downsides. Saving/storing a url I know feels a little strange, but I do see several upsides...<br></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Doing it only with hrefs, ensures those benefits (nice recap btw) will always be true. Having to submit the references using something like 'repositories/1234/version/3/' will cause any client to store them that way. I think that's a good thing because someone troubleshooting their scripts or in katello's db will instead have 'repositories/1234/versio<wbr>n/3/', which they can directly use with HTTP. I think this is valuable. Otherwise they would have repo version 827561, which now they have to do extra work to start interacting with that object via HTTP. Storing urls removes the "templating" step from the troubleshooter's responsibilities so we're making their job easier. Spacewise, I don't think the clients benefit hugely from storing 827561 instead of 'repositories/1234/version/3/'<wbr>, but humans do.<br></div></blockquote></span><div>Why don't we provide the ability to use both href and id as identifiers, and katello can choose the route that is right for them based on the points you bring up? </div><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">I don't know much about the CLI, but if we want to enable a specific user experience, I think we can find a way to make that work. Overall I think users should be able to specify things in the most intuitive way possible, and I don't see how API data formats directly influence that. For example I think referring to a repository by it's name is the most natural; it's more natural than 1234 or repositories/1234.</div></blockquote></span><div>+1 the CLI can resolve name to identifiers (either id or href), so I'm not too concerned with that. </div><div> </div><div>[0] <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types" target="_blank">https://github.com/OAI/Ope<wbr>nAPI-Specification/blob/master<wbr>/versions/2.0.md#data-types</a></div></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 23, 2018 at 9:51 PM, Dennis Kliban <span dir="ltr"><<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I've made a work in progress PR[0] that demonstrates the changes I was suggesting. <br></div><div><br></div><div>[0] <a href="https://github.com/pulp/pulp/pull/3561" target="_blank">https://github.com/pulp/pulp/p<wbr>ull/3561</a><br></div></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 23, 2018 at 3:50 PM, Brian Bouterse <span dir="ltr"><<a href="mailto:bbouters@redhat.com" target="_blank">bbouters@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>Having two ways to refer to objects in the API makes me nervous. I have some questions/concerns/ideas. I'm also interested to see what dkliban's bindings produce in terms of a resolution of the swagger issues.<br></div><div><br></div><div>Won't it be problematic with the openapi definitions causing us to have two schemas? Accepting the data in two forms is one thing, but using openapi to describe it both ways is something I don't understand well. Are we going to ship and test two?<br></div><div><br></div><div>I can see why some users would want to refer to things in the api using ID not an href. I think about the case that when calling publish and referring to a RepositoryVersion with id=827561, num=3, and for repository=1234. With an ID alternately accepted, you could call publish and submit repo_version=827561 instead of repo_version='repositories/123<wbr>4/version/3/'. I can see that benefit, but it comes with downsides. Saving/storing a url I know feels a little strange, but I do see several upsides...<br></div><div><br></div><div>Doing it only with hrefs, ensures those benefits (nice recap btw) will always be true. Having to submit the references using something like 'repositories/1234/version/3/' will cause any client to store them that way. I think that's a good thing because someone troubleshooting their scripts or in katello's db will instead have 'repositories/1234/versio<wbr>n/3/', which they can directly use with HTTP. I think this is valuable. Otherwise they would have repo version 827561, which now they have to do extra work to start interacting with that object via HTTP. Storing urls removes the "templating" step from the troubleshooter's responsibilities so we're making their job easier. Spacewise, I don't think the clients benefit hugely from storing 827561 instead of 'repositories/1234/version/3/'<wbr>, but humans do.<br></div><div><br></div><div>I don't know much about the CLI, but if we want to enable a specific user experience, I think we can find a way to make that work. Overall I think users should be able to specify things in the most intuitive way possible, and I don't see how API data formats directly influence that. For example I think referring to a repository by it's name is the most natural; it's more natural than 1234 or repositories/1234.<br></div><div><br></div></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 19, 2018 at 8:30 AM, Daniel Alley <span dir="ltr"><<a href="mailto:dalley@redhat.com" target="_blank">dalley@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Keep in mind that as of yesterday, unless we revert the change, we are using Integers IDs instead of UUIDs</div><div><br></div><div><a href="https://github.com/pulp/pulp/pull/3549" target="_blank">https://github.com/pulp/pulp/p<wbr>ull/3549</a><br></div></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 18, 2018 at 9:57 PM, Bihan Zhang <span dir="ltr"><<a href="mailto:bizhang@redhat.com" target="_blank">bizhang@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Wed, Jul 18, 2018 at 1:05 PM, Dennis Kliban <span dir="ltr"><<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I was asked on IRC to state what problems the proposed changes are trying to address. There are two problems I see with the current OpenAPI 2.0 schema Pulp's REST API provides. <br></div><div><br></div><div> - The path parameters in the schema don't reflect the parameters our users should be using for identifying the resources available via REST API. <br></div></div></blockquote><div><br></div></span><div>I'm not convinced that we should use hrefs as the sole identifiers for the resources. </div><div><br></div><div>Here are the reasons I see that we use hrefs as identifiers in a REST API context: </div><div>    1. Each href provides full context into the resource it identifies. When given a href you would know exactly which resource it is referencing and would never run into the issue of: what is this {uuid} because you know it is a 'repositories/{uuid}'</div><div>    2. discoverability, you know exactly how to access resources from hitting the root url (and in a webui can just click)</div><div>    3. You would not need to construct urls from templates </div><div><br></div><div>But things are different if we look at it from a bindings/client context. The difference is mainly due to how discoverability is done: in the REST API context the user has little prior knowledge to what resources are available, and how to access theses resoruces. But the bindings/client are generated from the schema, which defines exactly how resources are structured, and what the context of each {uuid} is.</div><div><br></div><div>    1. Given an {uuid} the client/bindings knows exactly what resource this {uuid} refers to.  With hrefs there would be redundant information pulp.repositories('repositorie<wbr>s/{uuid}') (why do I need to specify repositories twice?)</div><div>    2. Discoverability is done with the schema which contains all the information about available resources/endpoints</div><div>    3. URL construction is done by the client, so the user would also never need to do any url construction themselves (unless we continue to force href only identifiers, in which case they might have to do some url construction to pass as arguments)</div><div><br></div><div>I don't think hrefs and uuid identifiers are mutually exclusive. I propose that we extend HyperlinkedRelatedFields to accept either href or uuid, and map these HyperlinkedRelatedFields to each other in the schema with openapi definition objects [0]. </div><div><br></div><div>[0] <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#responses-definitions-object" target="_blank">https://github.com/OAI/OpenAPI<wbr>-Specification/blob/master/ver<wbr>sions/2.0.md#responses-definit<wbr>ions-object</a></div><span><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div><br></div><div> - The path parameters don't have a description in the schema.</div><div><br></div></div></blockquote></span><div>+1 to updating the schema descriptions for these parameters</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><div dir="ltr"><div></div><div>Do others agree with these problem statements? <br></div><div><br></div><div><br></div></div><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-HOEnZb"><div class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 18, 2018 at 9:31 AM, Dennis Kliban <span dir="ltr"><<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I am working on improving the OpenAPI 2.0 schema for Pulp 3. I would like to get some input on the improvements I am proposing. The schema is used to generate our REST API documentation as well as the bindings with swagger-codegen. <br></div><div><br></div><div>The docs generated from our current schema look something like this:</div><div><br></div><div><dl><dt id="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-get--repositories-repository_pk-versions-number-content-">
<code class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-descname">GET </code><code class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-descname">/repositories/{repository_pk}/<wbr>versions/{number}/content/</code><a class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-headerlink" href="https://docs.pulpproject.org/en/3.0/nightly/integration-guide/rest-api/index.html#get--repositories-repository_pk-versions-number-content-" title="Permalink to this definition" target="_blank"></a></dt>
<dd><table class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-docutils m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-list" frame="void" rules="none">
<colgroup><col class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-name">
<col class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-body">
</colgroup><tbody valign="top">
<tr class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-odd m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field"><th class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-name">Parameters:</th><td class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-body"><ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-first m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-simple">
<li><strong>number</strong> (<em>integer</em>) – </li>
<li><strong>repository_pk</strong> (<em>string</em>) – </li>
</ul>
</td>
</tr>
<tr class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-even m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field"><th class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-name">Status Codes:</th><td class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-body"><ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-first m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-last m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-simple">
<li><a class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-reference m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1" target="_blank">200 OK</a> – </li>
</ul></td></tr></tbody></table></dd></dl><br></div><div> Since Pulp identifies resources using their HREFs, I am proposing that the schema produce documentation that states:</div><div><br></div><div><dl><dt id="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-get--repositories-repository_pk-versions-number-content-">
<code class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-descname">GET </code><code class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-descname">/{repository_version_href}/con<wbr>tent/</code></dt>
<dd><table class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-docutils m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-list" frame="void" rules="none">
<colgroup><col class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-name">
<col class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-body">
</colgroup><tbody valign="top">
<tr class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-odd m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field"><th class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-name">Parameters:</th><td class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-body"><ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-first m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-simple">
<li><strong>repository_version_href</strong> (string) – HREF for the repository version<br></li>

</ul>
</td>
</tr>
<tr class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-even m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field"><th class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-name">Status Codes:</th><td class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-field-body"><ul class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-first m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-last m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-simple">
<li><a class="m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817gmail-reference m_-8205112379502519573m_-2488336513335059726m_-5219269743167415945m_3344638653365915832m_-2448736677834976157m_4052644669862029847m_8115811133046254119m_-9077854228820743420m_-5593586533777639467m_6723740308571141157m_8953153679913099247m_204630504397314461m_-2408417649516597372m_7961679905905861670m_8987155449884470230gmail-m_-6275621022228469851m_-2856099422503988817external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1" target="_blank">200 OK</a> – </li>
</ul></td></tr></tbody></table></dd></dl></div><div><br></div><div>Thoughts? Ideas? All feedback is welcome. Thank you!<br></div></div>
</blockquote></div><br></div>
</div></div><br></span>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div></div>
<br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
</blockquote></div>
</div></div></blockquote></div><br></div>
</blockquote></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>