// snippet - source description :[ Create Grant . kt Ġdemonstrates Ġhow Ġto Ġadd Ġa Ġgrant Ġto Ġan ĠAWS ĠKey ĠManagement ĠService Ġ( AWS ĠK MS ) Ġkey .] č Ċ // snippet - keyword :[ AWS ĠSDK Ġfor ĠKotlin ] č Ċ // snippet - keyword :[ Code ĠSample ] č Ċ // snippet - service :[ AWS ĠKey ĠManagement ĠService ] č Ċ // snippet - s ourc etype :[ full - example ] č Ċ // snippet - s ourced ate :[ 1 1 / 0 4 / 2 0 2 1 ] č Ċ // snippet - source author :[ sc mac don - aws ] čĊč Ċ /* čĊĠĠ ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . čĊĠĠ ĠSPDX - License - Identifier : ĠApache - 2 . 0 č Ċ */ čĊč Ċ package Ġcom . kotlin . kms čĊč Ċ // Ġsnippet - start :[ kms . kotlin _ create _ grant . import ] č Ċ import Ġaws . sdk . kotlin . services . kms . K ms Client č Ċ import Ġaws . sdk . kotlin . services . kms . model . Create Grant Request č Ċ import Ġaws . sdk . kotlin . services . kms . model . Grant Operation č Ċ import Ġaws . sdk . kotlin . services . kms . model . K ms Exception č Ċ import Ġkotlin . system . exit Process č Ċ // Ġsnippet - end :[ kms . kotlin _ create _ grant . import ] čĊč Ċ /** č Ċ To Ġrun Ġthis ĠKotlin Ġcode Ġexample , Ġensure Ġthat Ġyou Ġhave Ġsetup Ġyour Ġdevelopment Ġenvironment , č Ċ including Ġyour Ġcredentials . čĊč Ċ For Ġinformation , Ġsee Ġthis Ġdocumentation Ġtopic : č Ċ https :// docs . aws . amazon . com / sdk - for - kotlin / latest / developer - guide / setup . html čĊ Ġ*/ čĊč Ċ suspend Ġfun Ġmain ( args : ĠArray < String >) Ġ{ čĊčĊĠĠĠ Ġval Ġusage Ġ= Ġ""" čĊĠĠĠĠĠĠĠ ĠUsage : čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< key Id > Ġ< gr ante e Principal > Ġ< operation > čĊĠĠĠĠĠĠĠ ĠWhere : čĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Id Ġ- Ġthe Ġunique Ġidentifier Ġfor Ġthe ĠAWS ĠK MS Ġkey Ġthat Ġthe Ġgrant Ġapplies Ġto Ġ( for Ġexample , Ġx xxxx bcd - 1 2 ab - 3 4 cd - 5 6 ef - 1 2 3 4 5 6 7 8 9 0 ab ). čĊĠĠĠĠĠĠĠĠĠĠĠ Ġgr ante e Principal Ġ- Ġthe Ġprincipal Ġthat Ġis Ġgiven Ġpermission Ġto Ġperform Ġthe Ġoperations Ġthat Ġthe Ġgrant Ġpermit s . ĠčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ- Ġan Ġoperation Ġ( for Ġexample , ĠEncrypt ). ĠčĊĠĠĠ Ġ""" čĊčĊĠĠĠ Ġif Ġ( args . size Ġ!= Ġ 3 ) Ġ{ čĊĠĠĠĠĠĠĠ Ġprintln ( usage ) čĊĠĠĠĠĠĠĠ Ġexit Process ( 0 ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġval Ġkey Id Ġ= Ġargs [ 0 ] čĊĠĠĠ Ġval Ġgr ante e Principal Ġ= Ġargs [ 1 ] čĊĠĠĠ Ġval Ġoperation Ġ= Ġargs [ 2 ] čĊĠĠĠ Ġval Ġkey Client Ġ= ĠK ms Client { region =" us - west - 2 "} čĊĠĠĠ Ġval Ġgrant Id Ġ= Ġcreate New Grant ( key Client , key Id , gr ante e Principal , operation Ġ) čĊĠĠĠ Ġprintln (" Successfully Ġcreated Ġa Ġgrant Ġwith ĠID Ġ$ grant Id ") čĊĠĠĠ Ġkey Client . close () č Ċ } čĊč Ċ // Ġsnippet - start :[ kms . kotlin _ create _ grant . main ] č Ċ suspend Ġfun Ġcreate New Grant ( kms Client : ĠK ms Client , Ġkey Id Val : ĠString ?, Ġgr ante e Principal Val : ĠString ?, Ġoperation : ĠString ): ĠString ? Ġ{ čĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoperation Ob Ġ= ĠGrant Operation . from Value ( operation ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrant Operation List Ġ= ĠArrayList < Grant Operation >() čĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrant Operation List . add ( operation Ob ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrant Request Ġ= ĠCreate Grant Request Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Id Ġ= Ġkey Id Val čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgr ante e Principal Ġ= Ġgr ante e Principal Val čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperations Ġ= Ġgrant Operation List čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġk ms Client . create Grant ( grant Request ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse . grant Id čĊčĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠK ms Exception ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( ex . message ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġk ms Client . close () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġexit Process ( 0 ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠ Ġ} č Ċ // Ġsnippet - end :[ kms . kotlin _ create _ grant . main ] čĊ