@@ -117,6 +117,15 @@ function validate_user_params(action, params) {
117117 case iam_constants . IAM_ACTIONS . LIST_USERS :
118118 validate_list_users ( params ) ;
119119 break ;
120+ case iam_constants . IAM_ACTIONS . TAG_USER :
121+ validate_tag_user_params ( params ) ;
122+ break ;
123+ case iam_constants . IAM_ACTIONS . UNTAG_USER :
124+ validate_untag_user_params ( params ) ;
125+ break ;
126+ case iam_constants . IAM_ACTIONS . LIST_USER_TAGS :
127+ validate_list_user_tags_params ( params ) ;
128+ break ;
120129 default :
121130 throw new RpcError ( 'INTERNAL_ERROR' , `${ action } is not supported` ) ;
122131 }
@@ -478,6 +487,49 @@ function translate_rpc_error(err) {
478487 throw err ;
479488}
480489
490+ /**
491+ * validate_tag_user_params checks the params for tag_user action
492+ * @param {object } params
493+ */
494+ function validate_tag_user_params ( params ) {
495+ try {
496+ check_required_username ( params ) ;
497+ validation_utils . validate_iam_tags ( params . tags ) ;
498+ validation_utils . validate_username ( params . username , iam_constants . IAM_PARAMETER_NAME . USERNAME ) ;
499+ } catch ( err ) {
500+ translate_rpc_error ( err ) ;
501+ }
502+ }
503+
504+ /**
505+ * validate_untag_user_params checks the params for untag_user action
506+ * @param {object } params
507+ */
508+ function validate_untag_user_params ( params ) {
509+ try {
510+ check_required_username ( params ) ;
511+ validation_utils . validate_iam_tag_keys ( params . tag_keys ) ;
512+ validation_utils . validate_username ( params . username , iam_constants . IAM_PARAMETER_NAME . USERNAME ) ;
513+ } catch ( err ) {
514+ translate_rpc_error ( err ) ;
515+ }
516+ }
517+
518+ /**
519+ * validate_list_user_tags_params checks the params for list_user_tags action
520+ * @param {object } params
521+ */
522+ function validate_list_user_tags_params ( params ) {
523+ try {
524+ check_required_username ( params ) ;
525+ validate_marker ( params . marker ) ;
526+ validate_max_items ( params . max_items ) ;
527+ validation_utils . validate_username ( params . username , iam_constants . IAM_PARAMETER_NAME . USERNAME ) ;
528+ } catch ( err ) {
529+ translate_rpc_error ( err ) ;
530+ }
531+ }
532+
481533// EXPORTS
482534exports . format_iam_xml_date = format_iam_xml_date ;
483535exports . create_arn_for_user = create_arn_for_user ;
@@ -490,4 +542,7 @@ exports.validate_iam_path = validate_iam_path;
490542exports . validate_marker = validate_marker ;
491543exports . validate_access_key_id = validate_access_key_id ;
492544exports . validate_status = validate_status ;
545+ exports . validate_tag_user_params = validate_tag_user_params ;
546+ exports . validate_untag_user_params = validate_untag_user_params ;
547+ exports . validate_list_user_tags_params = validate_list_user_tags_params ;
493548
0 commit comments