/******************************************************************************* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠGeneral ĠE lectric ĠCompany Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ************************************************************************* ******/ Ċ Ċ package Ġorg . eclipse . ket i . acs . attribute . connector . management Ċ Ċ import Ġio . swagger . annotations . ApiOperation Ċ import Ġio . swagger . annotations . Api Param Ċ import Ġio . swagger . annotations . ApiResponse Ċ import Ġio . swagger . annotations . Api Responses Ċ import Ġorg . eclipse . ket i . acs . commons . web . Base RestApi Ċ import Ġorg . eclipse . ket i . acs . commons . web . RESOURCE _ CON NE CTOR _ URL Ċ import Ġorg . eclipse . ket i . acs . commons . web . Rest ApiException Ċ import Ġorg . eclipse . ket i . acs . commons . web . SUBJECT _ CON NE CTOR _ URL Ċ import Ġorg . eclipse . ket i . acs . commons . web . V 1 Ċ import Ġorg . eclipse . ket i . acs . commons . web . created Ċ import Ġorg . eclipse . ket i . acs . commons . web . no Content Ċ import Ġorg . eclipse . ket i . acs . commons . web . not Found Ċ import Ġorg . eclipse . ket i . acs . commons . web . ok Ċ import Ġorg . eclipse . ket i . acs . rest . Attribute Connector Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation . RequestBody Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . Request Method . DELETE Ċ import Ġorg . springframework . web . bind . annotation . Request Method . GET Ċ import Ġorg . springframework . web . bind . annotation . Request Method . PUT Ċ import Ġorg . springframework . web . bind . annotation . ResponseStatus Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ Ċ @ RestController Ċ class ĠAttribute Connector Controller Ġ: ĠBase RestApi () Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġservice : ĠAttribute Connector ServiceImpl ĊĊĠĠĠ Ġ@ ApiOperation ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Retrie ves Ġconnector Ġconfiguration Ġfor Ġexternal Ġresource Ġattributes Ġfor Ġthe Ġgiven Ġzone .", ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġ[" Attribute ĠConnector ĠManagement "], ĊĠĠĠĠĠĠĠ Ġresponse Ġ= ĠAttribute Connector :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ Api Responses ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( ApiResponse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 4 0 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġnot Ġfound ." ĊĠĠĠĠĠĠĠ Ġ)) ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ RequestMapping ( method Ġ= Ġ[ GET ], Ġvalue Ġ= Ġ[( V 1 Ġ+ ĠRESOURCE _ CON NE CTOR _ URL )]) ĊĠĠĠ Ġfun ĠgetResource Connector (): ĠResponseEntity < Attribute Connector > Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconnector Ġ= Ġthis . service . retrieve Resource Connector () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( connector Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġok ( ob fusc ate Adapter Secret ( connector )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnot Found () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAttribute Connector Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRest ApiException ( HttpStatus . UN PROCESS ABLE _ ENTITY , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ApiOperation ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Retrie ves Ġconnector Ġconfiguration Ġfor Ġexternal Ġsubject Ġattributes Ġfor Ġthe Ġgiven Ġzone .", ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġ[" Attribute ĠConnector ĠManagement "], ĊĠĠĠĠĠĠĠ Ġresponse Ġ= ĠAttribute Connector :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ Api Responses ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( ApiResponse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 4 0 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġnot Ġfound ." ĊĠĠĠĠĠĠĠ Ġ)) ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ RequestMapping ( method Ġ= Ġ[ GET ], Ġvalue Ġ= Ġ[( V 1 Ġ+ ĠSUB JECT _ CON NE CTOR _ URL )]) ĊĠĠĠ Ġfun Ġget Subject Connector (): ĠResponseEntity < Attribute Connector > Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconnector Ġ= Ġthis . service . retrieve Subject Connector () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( connector Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġok ( ob fusc ate Adapter Secret ( connector )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnot Found () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAttribute Connector Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRest ApiException ( HttpStatus . UN PROCESS ABLE _ ENTITY , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ApiOperation ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Creates Ġor Ġupdates Ġconnector Ġconfiguration Ġfor Ġexternal Ġresource Ġattributes Ġfor Ġthe Ġgiven Ġ" Ġ+ Ġ" zone .", ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġ[" Attribute ĠConnector ĠManagement "] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ Api Responses ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( ApiResponse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 2 0 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġsuccessfully Ġcreated ." ĊĠĠĠĠĠĠĠ Ġ)) ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ RequestMapping ( ĊĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ[ PUT ], ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( V 1 Ġ+ ĠRESOURCE _ CON NE CTOR _ URL )], ĊĠĠĠĠĠĠĠ Ġconsume s Ġ= Ġ[( MediaType . APPLICATION _ JSON _ VALUE )] ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġput Resource Connector ( ĊĠĠĠĠĠĠĠ Ġ@ Api Param ( value Ġ= Ġ" New Ġor Ġupdated Ġconnector Ġconfiguration Ġfor Ġexternal Ġresource Ġattributes ", Ġrequired Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ@ RequestBody ĊĠĠĠĠĠĠĠ Ġconnector : ĠAttribute Connector ĊĠĠĠ Ġ): ĠResponseEntity < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconnector Created Ġ= Ġthis . service . upsert Resource Connector ( connector ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( connector Created ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġreturn Ġ 2 0 1 Ġwith Ġempty Ġresponse Ġbody ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreated ( V 1 Ġ+ ĠRESOURCE _ CON NE CTOR _ URL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġok () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġreturn Ġ 2 0 0 Ġwith Ġempty Ġresponse Ġbody ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAttribute Connector Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRest ApiException ( HttpStatus . UN PROCESS ABLE _ ENTITY , Ġe . message !! , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ApiOperation ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Deletes Ġconnector Ġconfiguration Ġfor Ġexternal Ġresource Ġattributes Ġfor Ġthe Ġgiven Ġzone .", ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġ[" Attribute ĠConnector ĠManagement "] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ ResponseStatus ( value Ġ= ĠHttpStatus . NO _ CONTENT ) ĊĠĠĠ Ġ@ Api Responses ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( ApiResponse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 2 0 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġsuccessfully Ġdeleted ." ĊĠĠĠĠĠĠĠ Ġ)), Ġ( ApiResponse ( code Ġ= Ġ 4 0 4 , Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġnot Ġfound .")) ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ RequestMapping ( method Ġ= Ġ[ DELETE ], Ġvalue Ġ= Ġ[( V 1 Ġ+ ĠRESOURCE _ CON NE CTOR _ URL )]) ĊĠĠĠ Ġfun Ġdelete Resource Connector (): ĠResponseEntity < Void > Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeleted Ġ= Ġthis . service . delete Resource Connector () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( deleted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Content () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnot Found () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAttribute Connector Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRest ApiException ( HttpStatus . UN PROCESS ABLE _ ENTITY , Ġe . message !! , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ApiOperation ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Creates Ġor Ġupdates Ġconnector Ġconfiguration Ġfor Ġexternal Ġsubject Ġattributes Ġfor Ġthe Ġgiven Ġ" Ġ+ Ġ" zone .", ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġ[" Attribute ĠConnector ĠManagement "] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ Api Responses ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( ApiResponse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 2 0 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġsuccessfully Ġcreated ." ĊĠĠĠĠĠĠĠ Ġ)) ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ RequestMapping ( ĊĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ[ PUT ], ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( V 1 Ġ+ ĠSUB JECT _ CON NE CTOR _ URL )], ĊĠĠĠĠĠĠĠ Ġconsume s Ġ= Ġ[( MediaType . APPLICATION _ JSON _ VALUE )] ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġput Subject Connector ( ĊĠĠĠĠĠĠĠ Ġ@ Api Param ( value Ġ= Ġ" New Ġor Ġupdated Ġconnector Ġconfiguration Ġfor Ġexternal Ġsubject Ġattributes ", Ġrequired Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ@ RequestBody ĊĠĠĠĠĠĠĠ Ġconnector : ĠAttribute Connector ĊĠĠĠ Ġ): ĠResponseEntity < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconnector Created Ġ= Ġthis . service . upsert Subject Connector ( connector ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( connector Created ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġreturn Ġ 2 0 1 Ġwith Ġempty Ġresponse Ġbody ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreated ( V 1 Ġ+ ĠSUB JECT _ CON NE CTOR _ URL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġok () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġreturn Ġ 2 0 0 Ġwith Ġempty Ġresponse Ġbody ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAttribute Connector Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRest ApiException ( HttpStatus . UN PROCESS ABLE _ ENTITY , Ġe . message !! , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ApiOperation ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Deletes Ġconnector Ġconfiguration Ġfor Ġexternal Ġsubject Ġattributes Ġfor Ġthe Ġgiven Ġzone .", ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġ[" Attribute ĠConnector ĠManagement "] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ ResponseStatus ( value Ġ= ĠHttpStatus . NO _ CONTENT ) ĊĠĠĠ Ġ@ Api Responses ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ[( ApiResponse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 2 0 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġsuccessfully Ġdeleted ." ĊĠĠĠĠĠĠĠ Ġ)), Ġ( ApiResponse ( code Ġ= Ġ 4 0 4 , Ġmessage Ġ= Ġ" Connector Ġconfiguration Ġfor Ġthe Ġgiven Ġzone Ġis Ġnot Ġfound .")) ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ RequestMapping ( method Ġ= Ġ[ DELETE ], Ġvalue Ġ= Ġ[( V 1 Ġ+ ĠSUB JECT _ CON NE CTOR _ URL )]) ĊĠĠĠ Ġfun Ġdelete Subject Connector (): ĠResponseEntity < Void > Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeleted Ġ= Ġthis . service . delete Subject Connector () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( deleted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Content () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnot Found () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAttribute Connector Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRest ApiException ( HttpStatus . UN PROCESS ABLE _ ENTITY , Ġe . message !! , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġob fusc ate Adapter Secret ( connector : ĠAttribute Connector ): ĠAttribute Connector Ġ{ ĊĠĠĠĠĠĠĠ Ġconnector . adapters !!. forEach Ġ{ Ġadapter Ġ-> Ġadapter . u aa Client Secret Ġ= Ġ" ******** ** " Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġconnector ĊĠĠĠ Ġ} Ċ } Ċ