Sorry, should have been more clear. I was thinking about a case where there was 
no explicit assignment, only a CAG assignment.

-Eric

> On May 22, 2019, at 9:06 AM, Fieck, Brennan <brennan_fi...@comcast.com> wrote:
> 
>> If someone POSTs to a DS to try and remove the name of a server that is 
>> assigned via a CAG, the call will return success but neither the explicit 
>> assignment nor the CAG assignments will be changes
> 
> Why not remove the explicit assignment? IMO, a success response tells the 
> client that the operation succeeded, so doing that when in fact it didn't is 
> a confusing lie from the client's perspective.
> ________________________________________
> From: Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus 
> (UK) Limited -OBO at Cisco) <efrie...@cisco.com.INVALID>
> Sent: Tuesday, May 21, 2019 12:36 PM
> To: dev@trafficcontrol.apache.org
> Subject: Re: [EXTERNAL] [PROPOSAL] Cache Assignment Group REST API
> 
> GET /api/$version/deliveryservices/:id/servers
>   Will return a list of explicit server assignments unioned with servers 
> assigned through CAGs. (Full server details)
> 
> POST /api/$version/deliveryservices/:xmlId/servers
>  Aside: Why does this one use xmlId when all these other endpoint use only 
> ID? Its rather inconsistent…
> 
>  Will accept a list of explicit server assignments (server names) as it does 
> today.
>  If someone POSTs to a DS with the name of a server that is assigned via a 
> CAG, it will also become explicitly assigned to that DS.
>  If someone POSTs to a DS to try and remove the name of a server that is 
> assigned via a CAG, the call will return success but neither the explicit 
> assignment nor the CAG assignments will be changes
> 
> 
> I was initially worried of someone doing a GET from :id/servers and then 
> POSTing the response to :xmlId/servers but the formats are somehow so 
> different thats not really a concern.
> 
> —Eric
> 
> 
>> On May 21, 2019, at 2:05 PM, Jeremy Mitchell <mitchell...@gmail.com> wrote:
>> 
>> Rawlin beat me to it.
>> 
>> /api/$version/deliveryservices/:id/servers <-- tenancy is already checked
>> (i hope) on this route.
>> 
>> imo if CAGs are introduced, the handler associated with that route ^^ needs
>> to be modified to take CAGs into account (in addition to explicit server
>> assignments)
>> 
>> On Tue, May 21, 2019 at 10:52 AM Rawlin Peters <rawlin.pet...@gmail.com>
>> wrote:
>> 
>>> I'm hesitant to add a server list to the delivery service object just
>>> because it's a lot of data (same with adding a delivery service list
>>> to the server object). Two of the things that are done the most in
>>> Traffic Ops are:
>>> 1. adding new servers
>>> 2. adding new delivery services
>>> Every time we do one of those things we're already increasing the size
>>> of the CRConfig at an M*N rate, so by adding a server list into the DS
>>> object and a list of DSes into the server object would gives those
>>> objects the same problem as the CRConfig. By adding an aggregation
>>> between the two of them -- the Cache Assignment Group -- it is more
>>> reasonable to include the list of CAGs in the server and DS objects.
>>> 
>>> I agree with Eric's common questions (which DSes are assigned to a
>>> server and which servers are assigned to a DS), but we do already have
>>> specific endpoints for those two questions:
>>> /api/$version/servers/:id/deliveryservices
>>> /api/$version/deliveryservices/:id/servers
>>> 
>>> Those endpoints would have to start taking into account any CAGs.
>>> 
>>> - Rawlin
>>> 
>>> 
>>> 
>>> On Tue, May 21, 2019 at 8:45 AM Fieck, Brennan
>>> <brennan_fi...@comcast.com> wrote:
>>>> 
>>>> I'd be a fan of adding a servers array to DS objects. We don't need the
>>> whole server object in each entry, just some identifying information (name,
>>> id, type should be sufficient I would think).
>>>> ________________________________________
>>>> From: Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter
>>> Domus (UK) Limited -OBO at Cisco) <efrie...@cisco.com.INVALID>
>>>> Sent: Tuesday, May 21, 2019 8:09 AM
>>>> To: dev@trafficcontrol.apache.org
>>>> Subject: Re: [EXTERNAL] [PROPOSAL] Cache Assignment Group REST API
>>>> 
>>>> I like this, but I think we still have a challenge with tenancy.
>>>> 
>>>> Two of the very common questions with these groups are
>>>> 
>>>> 1) Which servers are assigned to this Delivery Service (either
>>> individually or through a CAG).
>>>> 
>>>> Using the existing proposed API, users would first need to call
>>> /deliveryService?id= to get a list of CAGs. Then iterate of that list of
>>> CAGs calling /server?cag= for each name/id. Not very user friendly.
>>>> 
>>>> Instead, this question could be answered using
>>> /servers?deliveryService=<dsId>
>>>> But /server still needs to be tenant-aware
>>>> 
>>>> I dont see a way to put it into the more tenant-friendly
>>> /deliveryservice endpoint without adding a “servers” field to the existing
>>> DS query params/response.
>>>> 
>>>> 2) Which delivery services are assigned to this server (needed for
>>> remap.config generation but operators also like to see this info)
>>>> This could be answered with
>>>> /servers?id=<serverId>
>>>>  If we are OK adding the DS assignments into the server as well
>>>> 
>>>> Similarly to 1, it could also go into /deliveryservice with the
>>> addition of an assigned servers field in the response.
>>>> 
>>>> —Eric
>>>> 
>>>>> On May 19, 2019, at 7:33 PM, Chris Lemmons <alfic...@gmail.com> wrote:
>>>>> 
>>>>> I like where Rawlin is headed and I think you can take it even one
>>>>> step simpler. What if you moved the cacheAssignmentGroup into the
>>>>> server data instead? So it would look like this:
>>>>> 
>>>>> Server:
>>>>> {
>>>>>  "id": 1,
>>>>>  "cags": ["foo", "quux"]
>>>>>  ...
>>>>> }
>>>>> 
>>>>> Delivery Service:
>>>>> {
>>>>>  "xmlId": "bar",
>>>>>  "cags": ["foo","bar"],
>>>>>  "tenantId": 7,
>>>>>  ...
>>>>> }
>>>>> 
>>>>> If we need it for performance, we could map names to numbers under the
>>>>> hood, of course. This way tenancy works the way we want it to, and we
>>>>> can use capabilities to restrict who can adjust server assignments,
>>>>> which are, as has been observed, multi-tenant. A delivery service is
>>>>> assigned to a server if one of its cags matches one of the server's
>>>>> cags.
>>>>> 
>>>>> For some bonus utility, you could allow most mutating operations to
>>>>> operate on cags as well, for example to set a group admin-down at
>>>>> once.
>>>>> 
>>>>> In the future, if we need really fine control, we could potentially
>>>>> allow boolean logic on the cag fields, which might be useful for
>>>>> things like "cags": ["coreprod", "newprod & !canary"], which would
>>>>> match any server that had a coreprod tag, or a server with newprod but
>>>>> not canary. It could be used for managing "requirements", since not
>>>>> all caches might support the same set or versions of plugins
>>>>> (especially during a rollout of an upgrade). Imagine "cags":
>>>>> ["prod_east & urisigning16"] for ensuring that the DS is only assigned
>>>>> to servers with the correct version of urisigning. That sort of logic
>>>>> could let operators set up very powerful and flexible assignment
>>>>> systems, even in excess of what we can think up today. We'd need to
>>>>> design that feature carefully, though, since we probably want to be
>>>>> able to ask questions like "list all the DSs with the newprod cag",
>>>>> which can be tricky to answer if we get too clever on our fields.
>>>>> 
>>>>> On Sun, May 19, 2019 at 2:20 PM Jeremy Mitchell <mitchell...@gmail.com>
>>> wrote:
>>>>>> 
>>>>>> I think what Rawlin has proposed makes a lot of sense and would
>>> simplify
>>>>>> things w.r.t. tenancy. I like simplification. :)
>>>>>> 
>>>>>> jeremy
>>>>>> 
>>>>>> On Fri, May 17, 2019 at 1:59 PM Rawlin Peters <
>>> rawlin.pet...@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> I've been thinking about this a bit more, and I had a different idea
>>>>>>> about CAGs w.r.t. tenancy.
>>>>>>> 
>>>>>>> Maybe the CAGs shouldn't contain the list of delivery services
>>> they're
>>>>>>> assigned to, and instead, the delivery service is enhanced to include
>>>>>>> the list of CAGs its assigned to. Also, instead of a CAG being
>>>>>>> tenantable, maybe we just keep tenancy in the delivery service so
>>> that
>>>>>>> if a tenant has access to a delivery service they are free to change
>>>>>>> their DS's CAGs at will.
>>>>>>> 
>>>>>>> So we'd end up with something like:
>>>>>>> CAG:
>>>>>>> {
>>>>>>>  "name": "foo",
>>>>>>>  "servers": [1,2,3],
>>>>>>>  ... (no tenant ID)
>>>>>>> }
>>>>>>> Delivery Service:
>>>>>>> {
>>>>>>>  "xmlId": "bar",
>>>>>>>  "cacheAssignmentGroups": [7, 8, 9],
>>>>>>>  "tenantId": 7,
>>>>>>>  ...
>>>>>>> }
>>>>>>> 
>>>>>>> I'm thinking that "logical server groups" shouldn't really be a
>>>>>>> tenantable thing, because they are inherently multi-tenant, and we
>>>>>>> might end up creating a crazy number of overlapping CAGs for all
>>>>>>> tenants. Adding a new server into multiple overlapping CAGs per
>>> tenant
>>>>>>> might get out of hand. This would allow us to keep the total number
>>> of
>>>>>>> "logical server groups" down but still prevent a tenant from seeing
>>>>>>> another tenant's CAGs.
>>>>>>> 
>>>>>>> What do you think?
>>>>>>> 
>>>>>>> - Rawlin
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Thu, May 16, 2019 at 10:18 AM Jeremy Mitchell <
>>> mitchell...@gmail.com>
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> yeah, maybe i overcomplicated it with my example and got it wrong.
>>>>>>>> 
>>>>>>>> if the CAG belongs to tenant 2 and john is the only one that
>>> belongs to
>>>>>>>> tenant 2 (sally belongs to 2.1 and linda to 2.1.1), then john is
>>> really
>>>>>>> the
>>>>>>>> only one that can modify the CAG. and since the CAG only contains
>>> DS's
>>>>>>> from
>>>>>>>> tenant 2, 2.1 or 2.2, he can modify ALL the ds's in that CAG...
>>>>>>>> 
>>>>>>>> so disregard what i said in my example about what sally and linda
>>> can
>>>>>>>> modify because they can't if you add tenantId to CAG.
>>>>>>>> 
>>>>>>>> so i think
>>>>>>>> 
>>>>>>>> 1. add a tenantID to a CAG
>>>>>>>> 2. enforce user tenancy on CAG post/put/delete
>>>>>>>> 3. on post/put, ensure the tenancy of the assigned ds's are
>>> compatible
>>>>>>> with
>>>>>>>> the CAG tenant
>>>>>>>> 
>>>>>>>> jeremy
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Thu, May 16, 2019 at 9:08 AM Eric Friedrich -X (efriedri -
>>> TRITON UK
>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
>>>>>>>> <efrie...@cisco.com.invalid> wrote:
>>>>>>>> 
>>>>>>>>> Jeremy-
>>>>>>>>> Going back to your original example of the tree below.
>>>>>>>>> 
>>>>>>>>> If DS baz is assigned to tenantId 2, then tenantIds 2.1, 2.1.1, 2.2
>>>>>>> cannot
>>>>>>>>> modify baz, right?
>>>>>>>>> 
>>>>>>>>> If a CAG is created also with tenantId2, then I would expect the
>>> same
>>>>>>>>> behavior- only John as part of the 2 tenant can modify that CAG.
>>>>>>>>> Similarly, this CAG could only contain DS’ that belong to our are
>>>>>>> children
>>>>>>>>> of tenant 2.
>>>>>>>>> 
>>>>>>>>> This seems to match existing behavior more closely?
>>>>>>>>> 
>>>>>>>>> —Eric
>>>>>>>>> 
>>>>>>>>>> On May 16, 2019, at 10:43 AM, Jeremy Mitchell <
>>> mitchell...@gmail.com
>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> no, capabilities are very different than tenancy.
>>>>>>>>>> 
>>>>>>>>>> capabilities dictate what you "can do" - i.e. you can modify CAG's
>>>>>>> if you
>>>>>>>>>> have the cacheassignmentgroup-write capability
>>>>>>>>>> tenancy dictates what you "can do it to". in this case, if CAG's
>>>>>>> have a
>>>>>>>>>> tenantId and you have the cacheassignmentgroup-write capability,
>>>>>>> then you
>>>>>>>>>> can ONLY modify CAG's that fall in your tenancy scope.
>>>>>>>>>> 
>>>>>>>>>> although different, capabilities and tenancy work hand in hand to
>>>>>>> limit
>>>>>>>>>> what a user can do (permissions) and what they can do that to
>>>>>>> (scope).
>>>>>>>>>> 
>>>>>>>>>> because CAG's have an embedded tenantable resource (delivery
>>>>>>> services),
>>>>>>>>>> this makes it a bit trickier. not only should tenancy dictate
>>> which
>>>>>>> CAG's
>>>>>>>>>> can be modified by the user, it should also dictate how those
>>> CAG's
>>>>>>>>> should
>>>>>>>>>> be modified (i.e. which delivery services can be impacted by a
>>>>>>>>> modification)
>>>>>>>>>> 
>>>>>>>>>> jeremy
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Wed, May 15, 2019 at 3:13 PM Eric Friedrich -X (efriedri -
>>> TRITON
>>>>>>> UK
>>>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
>>>>>>>>>> <efrie...@cisco.com.invalid> wrote:
>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> On May 15, 2019, at 4:16 PM, Fieck, Brennan <
>>>>>>> brennan_fi...@comcast.com
>>>>>>>>>> 
>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> You could just set tenant permissions based on the owning tenant
>>>>>>> of the
>>>>>>>>>>> Delivery Service.
>>>>>>>>>>>> Should the child of a tenant be able to modify cache
>>> assignments of
>>>>>>>>> said
>>>>>>>>>>> tenant's Delivery Services?
>>>>>>>>>>>> I wouldn't think so.
>>>>>>>>>>> EF> Isn’t this what the capabilities are for? If a user has
>>>>>>>>>>> “cacheassignmentgroup-write” capability, then they can modify the
>>>>>>>>>>> assignments for any delivery services in that tenant
>>>>>>>>>>> 
>>>>>>>>>>>> ________________________________________
>>>>>>>>>>>> From: Jeremy Mitchell <mitchell...@gmail.com>
>>>>>>>>>>>> Sent: Wednesday, May 15, 2019 1:22 PM
>>>>>>>>>>>> To: dev@trafficcontrol.apache.org
>>>>>>>>>>>> Subject: [EXTERNAL] Re: [PROPOSAL] Cache Assignment Group REST
>>> API
>>>>>>>>>>>> 
>>>>>>>>>>>> example tenant tree:
>>>>>>>>>>>> 
>>>>>>>>>>>> root
>>>>>>>>>>>> - 1 (foo)
>>>>>>>>>>>> -- 1.1 (bar)
>>>>>>>>>>>> - 2 (baz)
>>>>>>>>>>>> -- 2.1 (bee)
>>>>>>>>>>>> --- 2.1.1 (bang)
>>>>>>>>>>>> -- 2.2 (bop)
>>>>>>>>>>>> 
>>>>>>>>>>>> the foo ds belongs to tenant 1, bar ds belongs to tenant 1.1,
>>> etc.
>>>>>>>>>>>> 
>>>>>>>>>>>> a CGA is created with tenantId=2 which means it can only have
>>> the
>>>>>>> baz,
>>>>>>>>>>> bee,
>>>>>>>>>>>> bang and bop ds's in it. John belongs to the 2 tenant and adds
>>> all
>>>>>>> 4
>>>>>>>>>>> (baz,
>>>>>>>>>>>> bee, bang, bop).
>>>>>>>>>>>> 
>>>>>>>>>>>> Sally belongs to the 2.1 tenant, and only sees [bee, bang] in
>>> the
>>>>>>> CGA
>>>>>>>>> and
>>>>>>>>>>>> does an update with [], so it blows away bee (the ds in her
>>>>>>> tenant) and
>>>>>>>>>>>> bang (plus any child tenant ds's)
>>>>>>>>>>>> 
>>>>>>>>>>>> Linda belongs to the 2.1.1 tenant, and sees [] in the CGA
>>> (because
>>>>>>>>> sally
>>>>>>>>>>>> blew them all away) and does an update with [goo]. now the CAG
>>> has
>>>>>>> baz
>>>>>>>>>>> and
>>>>>>>>>>>> goo ds's.
>>>>>>>>>>>> 
>>>>>>>>>>>> so basically, a user can only modify the ds's that they can see
>>>>>>> based
>>>>>>>>> on
>>>>>>>>>>>> their tenant (and subtenants). and a CAG can only have certain
>>>>>>> ds's in
>>>>>>>>> it
>>>>>>>>>>>> based on it's tenant...
>>>>>>>>>>>> 
>>>>>>>>>>>> I "think" that would work....sounds a bit complicated but i
>>> really
>>>>>>> feel
>>>>>>>>>>>> like tenancy probably belongs on a CAG because of its
>>> relationship
>>>>>>> with
>>>>>>>>>>>> ds's. plus, then it would be nice to create CAG's for tenants.
>>> for
>>>>>>>>>>> example,
>>>>>>>>>>>> create a trial tenant and some trial ds's and some trial users
>>> and
>>>>>>> they
>>>>>>>>>>>> have no choice but to use the trial CAG that has 2 caches in it
>>> or
>>>>>>>>>>>> something.
>>>>>>>>>>>> 
>>>>>>>>>>>> jeremy
>>>>>>>>>>>> 
>>>>>>>>>>>> On Wed, May 15, 2019 at 1:01 PM Eric Friedrich -X (efriedri -
>>>>>>> TRITON UK
>>>>>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
>>>>>>>>>>>> <efrie...@cisco.com.invalid> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> What if the tenantId on the cacheassignmentgroup does not match
>>>>>>> the
>>>>>>>>>>>>> tenantID on one of the included delivery services?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On May 15, 2019, at 2:55 PM, Jeremy Mitchell <
>>>>>>> mitchell...@gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I got an idea. If you made a cachegroupassignment a
>>> "tenantable"
>>>>>>>>>>>>> resource,
>>>>>>>>>>>>>> you could avoid the problem i mentioned above (having ds's
>>>>>>> hidden for
>>>>>>>>>>>>>> tenancy reasons). so this instead:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> {"id": 1,
>>>>>>>>>>>>>> "name": "name1",
>>>>>>>>>>>>>> "description": "description1",
>>>>>>>>>>>>>> tenantId: 2,
>>>>>>>>>>>>>> "cdnId": 1,
>>>>>>>>>>>>>> "servers": [1,2,...n],
>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30, 35]
>>>>>>>>>>>>>> "lastUpdated": "",
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> this has a nice benefit as well. i.e. certain tenants (content
>>>>>>>>>>> providers)
>>>>>>>>>>>>>> have access to certain cachegroupassignment configurations.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> jeremy
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Wed, May 15, 2019 at 12:43 PM Jeremy Mitchell <
>>>>>>>>>>> mitchell...@gmail.com>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Just be careful that a GET
>>> /api/1.4/cacheassignmentgroups?id=4
>>>>>>>>> doesn't
>>>>>>>>>>>>>>> return a filtered list of delivery services because of
>>> tenancy
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> {"id": 1,
>>>>>>>>>>>>>>> "name": "name1",
>>>>>>>>>>>>>>> "description": "description1",
>>>>>>>>>>>>>>> "cdnId": 1,
>>>>>>>>>>>>>>> "servers": [1,2,...n],
>>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30], <-- maybe there are really
>>> 5
>>>>>>>>>>> delivery
>>>>>>>>>>>>>>> services but 2 of them (40 and 50) are hidden from you due to
>>>>>>>>> tenancy
>>>>>>>>>>>>>>> "lastUpdated": "",
>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> and a subsequent PUT with the same json (plus a new delivery
>>>>>>> service
>>>>>>>>>>>>> that
>>>>>>>>>>>>>>> is added):
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> {"id": 1,
>>>>>>>>>>>>>>> "name": "name1",
>>>>>>>>>>>>>>> "description": "description1",
>>>>>>>>>>>>>>> "cdnId": 1,
>>>>>>>>>>>>>>> "servers": [1,2,...n],
>>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30, 35]
>>>>>>>>>>>>>>> "lastUpdated": "",
>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> doesn't wipe out 40 and 50.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> if you do this, it begs the question. how do you remove ALL
>>> ds
>>>>>>>>>>>>> assignments
>>>>>>>>>>>>>>> from a cache assignment group?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> also, how about
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> DELETE /api/1.4/cacheassignmentgroups?id=
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> instead of
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> DELETE /api/1.4/cacheassignmentgroups/{id}
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> jeremy
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Wed, May 15, 2019 at 12:22 PM Eric Friedrich -X (efriedri
>>> -
>>>>>>>>> TRITON
>>>>>>>>>>> UK
>>>>>>>>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
>>>>>>>>>>>>>>> <efrie...@cisco.com.invalid> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Feature description
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> --------------------
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Mail Thread:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>> https://lists.apache.org/thread.html/35ee49f4be1c30ff4a12c71e02897aee0e0d3d2f356640ab69ba247e@%3Cdev.trafficcontrol.apache.org%3E
>>>>>>>>>>>>>>>> <
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>> https://lists.apache.org/thread.html/35ee49f4be1c30ff4a12c71e02897aee0e0d3d2f356640ab69ba247e@
>>>>>>>>>>>>>>>> <dev.trafficcontrol.apache.org>>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Github Issue:
>>>>>>> https://github.com/apache/trafficcontrol/issues/3557
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> API Proposal
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> ------------
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> POST,GET /api/1.4/cacheassignmentgroups/
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> PUT /api/1.4/cacheassignmentgroups/{id}
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> {"id": 1,
>>>>>>>>>>>>>>>> "name": "name1",
>>>>>>>>>>>>>>>> "description": "description1",
>>>>>>>>>>>>>>>> "cdnId": 1,
>>>>>>>>>>>>>>>> "servers": [1,2,...n],
>>>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30],
>>>>>>>>>>>>>>>> "lastUpdated": "",
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> DELETE /api/1.4/cacheassignmentgroups/{id}
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> -- No request body
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> This API is tenant-aware by delivery service.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Query Parameters (all optional)
>>>>>>>>>>>>>>>> If multiple filter parameters are specified, they are AND'd
>>>>>>>>> together
>>>>>>>>>>>>>>>> - id: Filter for a specific entry
>>>>>>>>>>>>>>>> - servers: Filter all entries containing this server
>>>>>>>>>>>>>>>> - deliveryService: Filter all entries containing this DS
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> - limit: Return maximum number of entries (default 20)
>>>>>>>>>>>>>>>> - page: Return page n, with each page having limit number of
>>>>>>>>> entries
>>>>>>>>>>>>>>>> (default 0)
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Body Parameters:
>>>>>>>>>>>>>>>> - id: Numeric identifier, automatically assigned on
>>> creation.
>>>>>>>>>>>>> [Read-Only,
>>>>>>>>>>>>>>>> not allowed in PUT/POST]
>>>>>>>>>>>>>>>> - name: Name of the cache assignment group
>>>>>>>>>>>>>>>> - description Description of the cache assignment group
>>>>>>>>>>>>>>>> - cdnId: ID of the CDN the cache assignment group belongs to
>>>>>>>>>>>>>>>> - servers: List of server IDs.
>>>>>>>>>>>>>>>> - deliveryServices: List of delivery service IDs. All caches
>>>>>>> in the
>>>>>>>>>>>>>>>> servers list will be assigned to these delivery services
>>>>>>>>>>>>>>>> - lastUpdated: Timestamp this cache assignment group was
>>> last
>>>>>>>>>>> updated.
>>>>>>>>>>>>>>>> [Read-Only, not allowed in PUT/POST]
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>> 
>>> 
> 

  • ... Jeremy Mitchell
  • ... Rawlin Peters
  • ... Jeremy Mitchell
  • ... Chris Lemmons
  • ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
  • ... Fieck, Brennan
  • ... Rawlin Peters
  • ... Jeremy Mitchell
  • ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
  • ... Fieck, Brennan
  • ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
  • ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
  • ... Fieck, Brennan
  • ... Jeremy Mitchell
  • ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
  • ... Chris Lemmons
  • ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
  • ... Chris Lemmons

Reply via email to