docs: def _add_common_args(parser, is_create=True):
      """If is_create is True, protocol and action become mandatory arguments.
  
      CreateCommand = is_create : True
      UpdateCommand = is_create : False
      """
      parser.add_argument(
          '--name',
          help=_('Name for the firewall rule.'))
      parser.add_argument(
          '--description',
          help=_('Description for the firewall rule.'))
      parser.add_argument(
          '--source-ip-address',
          help=_('Source IP address or subnet.'))
      parser.add_argument(
          '--destination-ip-address',
          help=_('Destination IP address or subnet.'))
      parser.add_argument(
          '--source-port',
          help=_('Source port (integer in [1, 65535] or range in a:b).'))
      parser.add_argument(
          '--destination-port',
          help=_('Destination port (integer in [1, 65535] or range in '
                 'a:b).'))
      utils.add_boolean_argument(
          parser, '--enabled', dest='enabled',
          help=_('Whether to enable or disable this rule.'))
      parser.add_argument(
          '--protocol', choices=['tcp', 'udp', 'icmp', 'any'],
          required=is_create,
          type=utils.convert_to_lowercase,
          help=_('Protocol for the firewall rule.'))
      parser.add_argument(
          '--action',
          required=is_create,
          type=utils.convert_to_lowercase,
          choices=['allow', 'deny', 'reject'],
          help=_('Action for the firewall rule.'))