For viewing, shall we use a single scope: apim:mediation_policy_view
But, it make sense to have the apim:api_view scope to view mediation
policies of an api IMO
If not, a user with apim:api_view scope can see the api but unable to see
the mediation policies due to missing apim:mediation_policy_view scope. Do
we need a separation here?

Also for the tag: shall we simplify as "Mediation Policies"
+1

Thanks & Regards,
Ishara Cooray
Associate Technical Lead
Mobile : +9477 262 9512
WSO2, Inc. | http://wso2.com/
Lean . Enterprise . Middleware


On Thu, Aug 15, 2019 at 2:32 PM Malintha Amarasinghe <malint...@wso2.com>
wrote:

> Hi Ishara,
>
> +1 for the overall approach.
>
> For viewing, shall we use a single scope: apim:mediation_policy_view
>
> Also for the tag: shall we simplify as "Mediation Policies"
>
> Thanks!
>
>
> On Tue, Aug 13, 2019 at 1:18 PM Ishara Cooray <isha...@wso2.com> wrote:
>
>> Hi,
>> I have started working on the $Subject and below is the rest api
>> definitions.
>>
>>
>>    - To avoid string manipulations, Mediation policy post is done as a
>>    file upload. Hence we can provide the sequence file(xml content) as an
>>    input in the form of multipart/form-data
>>    ex:
>>
>>    curl -X POST 
>> https://localhost:9443/api/am/publisher/v1.0/apis/2a3d5469-5394-4576-974a-5f8bf7e400bd/mediation-policies
>>    -H "Authorization: Bearer 5cbc7d4f-d4f1-33c9-87e4-68a22ae7e602"
>>    -F file=@sampleSeq2.xml
>>    -H "Content-Type: multipart/form-data"
>>    -F "type=in"
>>
>>    - To retrieve a mediation sequence, a new REST api has been
>>    introduced which will download sequence as a file. Where as in APIM 2.x
>>    REST API it was returning as a string.
>>    Please refer
>>    /apis/{apiId}/mediation-policies/{mediationPolicyId}/content:
>>
>>
>> ######################################################
>> # The "specific mediation policy" resource APIs
>> ######################################################
>> '/apis/{apiId}/mediation-policies':
>>
>>   
>> #-----------------------------------------------------------------------------------------
>>   # Retrieving the list of all API specific mediation sequences under a 
>> given search condition
>>   
>> #-----------------------------------------------------------------------------------------
>>   get:
>>     security:
>>       - OAuth2Security:
>>         - apim:mediation_policy_view
>>     x-examples:
>>         $ref: docs/examples/apis/apis_id_mediationpolicies_get.yaml
>>     summary: |
>>       Get all mediation policies of an API
>>     operationid:  apisApiIdMediationPoliciesGet
>>     description: |
>>       This operation provides you a list of available mediation policies of 
>> an API.
>>     parameters:
>>       - $ref: '#/parameters/apiId'
>>       - $ref : '#/parameters/limit'
>>       - $ref : '#/parameters/offset'
>>       - name : query
>>         in: query
>>         description: "-Not supported yet-"
>>         type: string
>>       - $ref : "#/parameters/If-None-Match"
>>     tags:
>>       - Mediation Policies of an API
>>     responses:
>>       200:
>>         description: |
>>           OK.
>>           List of qualifying APIs is returned.
>>         schema:
>>           $ref: '#/definitions/MediationList'
>>         headers:
>>           Content-Type:
>>             description: The content type of the body.
>>             type: string
>>           ETag:
>>             description: |
>>               Entity Tag of the response resource. Used by caches, or in 
>> conditional requests (Will be supported in future).
>>             type: string
>>       304:
>>         description: |
>>           Not Modified.
>>           Empty body because the client has already the latest version of 
>> the requested resource (Will be supported in future).
>>       406:
>>         description: |
>>           Not Acceptable.
>>           The requested media type is not supported
>>         schema:
>>           $ref: '#/definitions/Error'
>>
>>   
>> #----------------------------------------------------------------------------
>>   # Upload an API specific mediation policy
>>   
>> #----------------------------------------------------------------------------
>>   post:
>>     consumes:
>>     - multipart/form-data
>>     security:
>>       - OAuth2Security:
>>         - apim:mediation_policy_create
>>     x-examples:
>>       $ref: docs/examples/apis/apis_id_mediationpolicies_post.yaml
>>     summary: Add an API specific mediation policy
>>     operationid: apisApiIdMediationPoliciesPost
>>     description: |
>>       This operation can be used to add an API specifc mediation policy.
>>     parameters:
>>       - in: formData
>>         name: file
>>         description: Mediation Policy to upload
>>         type: file
>>         required: false
>>       - in: formData
>>         name: inlineContent
>>         description: Inline content of the Mediation Policy
>>         type: string
>>         required: false
>>       - in: formData
>>         name: type
>>         description: Type of the mediation sequence
>>         required: true
>>         type: string
>>       - $ref: '#/parameters/apiId'
>>       - $ref: '#/parameters/If-Match'
>>     tags:
>>       - Mediation Policies of an API
>>     responses:
>>       201:
>>         description: |
>>           OK.
>>           mediation policy uploaded
>>         schema:
>>           $ref : '#/definitions/Mediation'
>>         headers:
>>           Location:
>>             description: |
>>               The URL of the uploaded mediation policy of the API.
>>             type: string
>>           Content-Type:
>>             description: |
>>               The content type of the body.
>>             type: string
>>           ETag:
>>             description: |
>>               Entity Tag of the response resource.
>>               Used by caches, or in conditional requests (Will be supported 
>> in future).
>>             type: string
>>           Last-Modified:
>>             description: |
>>               Date and time the resource has been modifed the last time.
>>               Used by caches, or in conditional requests (Will be supported 
>> in future).
>>             type: string
>>       400:
>>         description: |
>>           Bad Request.
>>           Invalid request or validation error.
>>         schema:
>>           $ref: '#/definitions/Error'
>>       404:
>>         description: |
>>           Not Found.
>>           The resource to be updated does not exist.
>>         schema:
>>           $ref: '#/definitions/Error'
>>       412:
>>         description: |
>>           Precondition Failed.
>>           The request has not been performed because one of the 
>> preconditions is not met.
>>         schema:
>>           $ref: '#/definitions/Error'
>>
>> ######################################################
>> # The "Individual API specific mediation sequence" resource
>> ######################################################
>> /apis/{apiId}/mediation-policies/{mediationPolicyId}:
>>
>>   #-----------------------------------------------------
>>   # Retrieve a particular API specific mediation squence
>>   #-----------------------------------------------------
>>   get:
>>     security:
>>       - OAuth2Security:
>>         - apim:api_view
>>     x-examples:
>>       $ref: docs/examples/apis/apis_id_mediationpolicies_id_get.yaml
>>     summary: Get an API specific mediation policy
>>     operationid:  apisApiIdMediationPoliciesMediationPolicyIdGet
>>     description: |
>>       This operation can be used to retrieve a particular API specific 
>> mediation policy.
>>     parameters:
>>       - $ref: '#/parameters/apiId'
>>       - $ref: '#/parameters/mediationPolicyId'
>>       - $ref: '#/parameters/If-None-Match'
>>     tags:
>>       - Mediation Policy of an API
>>     responses:
>>       200:
>>         description: |
>>           OK.
>>           Mediation policy returned.
>>         schema:
>>           $ref: '#/definitions/Mediation'
>>         headers:
>>           Content-Type:
>>             description: |
>>               The content type of the body.
>>             type: string
>>           ETag:
>>             description: |
>>               Entity Tag of the response resource.
>>               Used by caches, or in conditional requests (Will be supported 
>> in future).
>>             type: string
>>           Last-Modified:
>>             description: |
>>               Date and time the resource has been modifed the last time.
>>               Used by caches, or in conditional requests (Will be supported 
>> in future).
>>             type: string
>>       304:
>>         description: |
>>           Not Modified.
>>           Empty body because the client has already the latest version of 
>> the requested resource (Will be supported in future).
>>       404:
>>         description: |
>>           Not Found.
>>           Requested Document does not exist.
>>         schema:
>>           $ref: '#/definitions/Error'
>>       406:
>>         description: |
>>           Not Acceptable.
>>           The requested media type is not supported
>>         schema:
>>           $ref: '#/definitions/Error'
>>
>>   #-----------------------------------------------------
>>   # Delete the mediation policy
>>   #-----------------------------------------------------
>>   delete:
>>     security:
>>       - OAuth2Security:
>>         - apim:mediation_policy_manage
>>     x-examples:
>>       $ref: docs/examples/apis/apis_id_mediationpolicies_id_delete.yaml
>>     summary: Delete an API specific mediation policy
>>     operationid:  apisApiIdMediationPoliciesMediationPolicyIdDelete
>>     description: |
>>       This operation can be used to delete an existing API specific 
>> mediation policy providing the Id of the API and the Id of the mediation 
>> policy.
>>     parameters:
>>       - $ref: '#/parameters/apiId'
>>       - $ref: '#/parameters/mediationPolicyId'
>>       - $ref: '#/parameters/If-Match'
>>     tags:
>>       - Mediation Policy of an API
>>     responses:
>>       200:
>>         description: |
>>           OK.
>>           Resource successfully deleted.
>>       403:
>>         description: |
>>           Forbidden.
>>           The request must be conditional but no condition has been 
>> specified.
>>         schema:
>>           $ref: '#/definitions/Error'
>>       404:
>>         description: |
>>           Not Found.
>>           Resource to be deleted does not exist.
>>         schema:
>>           $ref: '#/definitions/Error'
>>       412:
>>         description: |
>>           Precondition Failed.
>>           The request has not been performed because one of the 
>> preconditions is not met.
>>         schema:
>>           $ref: '#/definitions/Error'
>>
>>   #-----------------------------------------------------
>>   # Update a mediation policy
>>   #-----------------------------------------------------
>>   put:
>>     consumes:
>>     - multipart/form-data
>>     security:
>>       - OAuth2Security:
>>         - apim:mediation_policy_manage
>>     x-examples:
>>       $ref: docs/examples/apis/apis_id_mediationpolicies_id_put.yaml
>>     summary: Update an API specific mediation policy
>>     operationid:  apisApiIdMediationPoliciesMediationPolicyIdPut
>>     description: |
>>       This operation can be used to update an existing mediation policy of 
>> an API.
>>     parameters:
>>       - in: formData
>>         name: file
>>         description: Mediation Policy to upload
>>         type: file
>>         required: false
>>       - in: formData
>>         name: inlineContent
>>         description: Inline content of the Mediation Policy
>>         type: string
>>         required: false
>>       - in: formData
>>         name: type
>>         description: Type of the mediation sequence(in/out/fault)
>>         required: true
>>         type: string
>>       - $ref: '#/parameters/apiId'
>>       - $ref: '#/parameters/mediationPolicyId'
>>       - $ref: '#/parameters/If-Match'
>>     tags:
>>       - Mediation Policy of an API
>>     responses:
>>       200:
>>         description: |
>>           OK.
>>           Successful response with updated API object
>>         schema:
>>           $ref: '#/definitions/Mediation'
>>         headers:
>>           Location:
>>             description: |
>>               The URL of the newly created resource.
>>             type: string
>>           Content-Type:
>>             description: |
>>               The content type of the body.
>>             type: string
>>           ETag:
>>             description: |
>>               Entity Tag of the response resource. Used by caches, or in 
>> conditional requests (Will be supported in future).
>>             type: string
>>           Last-Modified:
>>             description: |
>>               Date and time the resource has been modifed the last time.
>>               Used by caches, or in conditional requests (Will be supported 
>> in future).
>>             type: string
>>       400:
>>         description: |
>>           Bad Request.
>>           Invalid request or validation error
>>         schema:
>>           $ref: '#/definitions/Error'
>>       403:
>>         description: |
>>           Forbidden.
>>           The request must be conditional but no condition has been 
>> specified.
>>         schema:
>>           $ref: '#/definitions/Error'
>>       404:
>>         description: |
>>           Not Found.
>>           The resource to be updated does not exist.
>>         schema:
>>           $ref: '#/definitions/Error'
>>       412:
>>         description: |
>>           Precondition Failed.
>>           The request has not been performed because one of the 
>> preconditions is not met.
>>         schema:
>>           $ref: '#/definitions/Error'
>> ###################################################################
>> # The "Individual API specific mediation sequence content" resource
>> ###################################################################
>> /apis/{apiId}/mediation-policies/{mediationPolicyId}/content:
>>
>>   #---------------------------------------------------------------
>>   # Retrieve a particular API specific mediation sequence content
>>   #---------------------------------------------------------------
>>   get:
>>     security:
>>     - OAuth2Security:
>>       - apim:api_view
>>     x-examples:
>>       $ref: docs/examples/apis/apis_id_mediationpolicies_id_content_get.yaml
>>     summary: Downloadt an API specific mediation policy
>>     operationid:  apisApiIdMediationPoliciesMediationPolicyIdContentGet
>>     description: |
>>       This operation can be used to download a particular API specific 
>> mediation policy.
>>     parameters:
>>     - $ref: '#/parameters/apiId'
>>     - $ref: '#/parameters/mediationPolicyId'
>>     - $ref: '#/parameters/If-None-Match'
>>     tags:
>>     - Mediation Policy content of an API
>>     responses:
>>       200:
>>         description: |
>>           OK.
>>           Mediation policy returned.
>>         headers:
>>           Content-Type:
>>             description: |
>>               The content type of the body.
>>             type: string
>>           ETag:
>>             description: |
>>               Entity Tag of the response resource.
>>               Used by caches, or in conditional requests (Will be supported 
>> in future).
>>             type: string
>>           Last-Modified:
>>             description: |
>>               Date and time the resource has been modifed the last time.
>>               Used by caches, or in conditional requests (Will be supported 
>> in future).
>>             type: string
>>       304:
>>         description: |
>>           Not Modified.
>>           Empty body because the client has already the latest version of 
>> the requested resource (Will be supported in future).
>>       404:
>>         description: |
>>           Not Found.
>>           Requested file does not exist.
>>         schema:
>>           $ref: '#/definitions/Error'
>>
>>
>> Thanks & Regards,
>> Ishara Cooray
>> Associate Technical Lead
>> Mobile : +9477 262 9512
>> WSO2, Inc. | http://wso2.com/
>> Lean . Enterprise . Middleware
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>
>
> --
> Malintha Amarasinghe
> *WSO2, Inc. - lean | enterprise | middleware*
> http://wso2.com/
>
> Mobile : +94 712383306
>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to